小编Mat*_*eck的帖子

使用"|"进行grepping 替代运营商

以下是名为AT5G60410.gff的大文件示例:

Chr5    TAIR10  gene    24294890    24301147    .   +   .   ID=AT5G60410;Note=protein_coding_gene;Name=AT5G60410
Chr5    TAIR10  mRNA    24294890    24301147    .   +   .   ID=AT5G60410.1;Parent=AT5G60410;Name=AT5G60410.1;Index=1
Chr5    TAIR10  protein 24295226    24300671    .   +   .   ID=AT5G60410.1-Protein;Name=AT5G60410.1;Derives_from=AT5G60410.1
Chr5    TAIR10  exon    24294890    24295035    .   +   .   Parent=AT5G60410.1
Chr5    TAIR10  five_prime_UTR  24294890    24295035    .   +   .   Parent=AT5G60410.1
Chr5    TAIR10  exon    24295134    24295249    .   +   .   Parent=AT5G60410.1
Chr5    TAIR10  five_prime_UTR  24295134    24295225    .   +   .   Parent=AT5G60410.1
Chr5    TAIR10  CDS 24295226    24295249    .   +   0   Parent=AT5G60410.1,AT5G60410.1-Protein;
Chr5    TAIR10  exon    24295518    24295598    .   + …
Run Code Online (Sandbox Code Playgroud)

regex linux grep

79
推荐指数
3
解决办法
5万
查看次数

非法转发参考和枚举

我正在编写一个java游戏,它由一块瓷砖组成.我不能直观地定义瓷砖的边缘以及它们如何相互关联,例如为了获得瓷砖的相对边缘,我希望能够只输入TOP.opposite().但是,当使用枚举来定义这些边时,我最终必须在contstructor中至少引用其中两个:

public enum Edge {

   TOP(Edge.BOTTOM), //illegal forward reference
   BOTTOM(Edge.TOP),
   LEFT(Edge.RIGHT), //illegal forward reference
   RIGHT(Edge.LEFT);

   private Edge opposite;

   private Edge(Edge opp){
      this.opposite = opp;
   }

   public Edge opposite(){
      return this.opposite;
   }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使用枚举来解决这个问题,这很简单?

java enums

58
推荐指数
6
解决办法
1万
查看次数

由于javadoc错误无法构建maven项目?

有没有人遇到过下面的simlar maven错误?

由于下面的错误,我无法构建我的项目.在我开始编写代码之前,一切都工作得很好.

我甚至没有在下面定义的接口上工作,它似乎与javadoc有关?

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (attach-javadocs) on project jonney-project: MavenReportException: Error while creating archive:

[ERROR] Exit code: 1 - /Users/me/Work/myProject/library/src/main/java/com/me/someInterface.java:45: warning: no @return
[ERROR] public abstract boolean searchForDevce();
[ERROR] ^
[ERROR] /Users/me/Work/myProject/src/main/java/com/me/someInterfaceAgain.java:52: warning: no @return
[ERROR] public abstract boolean selectDevice(int pos);
[ERROR] ^
Run Code Online (Sandbox Code Playgroud)

javadoc maven

37
推荐指数
5
解决办法
4万
查看次数

将geom_line与多个分组一起使用

我有一张表如下:

> testsizes
    size value replicate lane
361   16  6898         1   L1
362   17 10707         1   L1
363   18  1786         1   L1
364   19  1721         1   L1
365   20  2454         1   L1
421   16  8486         2   L1
422   17 26691         2   L1
423   18  3241         2   L1
424   19  5068         2   L1
425   20  7579         2   L1
481   16  4152         3   L1
482   17  4452         3   L1
483   18   899         3   L1
484   19  1973         3   L1
485   20  2595 …
Run Code Online (Sandbox Code Playgroud)

grouping r ggplot2

19
推荐指数
2
解决办法
3万
查看次数

使用不等式和变量列名过滤data.table

我有一个data.table我想根据一些不平等标准过滤:

dt <- data.table(A=letters[1:3], B=2:4)
dt
#    A B
# 1: a 2
# 2: b 3
# 3: c 4

dt[B>2]
#    A B
# 1: b 3
# 2: c 4
Run Code Online (Sandbox Code Playgroud)

以上可以作为矢量扫描解决方案.但我无法弄清楚如何将其与列的变量名称结合起来:

mycol <- "B"
dt[mycol > 2]
#    A B      // Nothing has changed
# 1: a 2
# 2: b 3
# 3: c 4
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我知道我可以通过设置密钥使用二进制搜索,setkeyv(dt, mycol)但我看不到根据一些不等式标准进行二进制搜索的方法.

inequality r data.table

15
推荐指数
3
解决办法
3094
查看次数

更改直方图条颜色大于某个值

到目前为止,我已经成功地改变颜色直方图单杆下面的例子在这里

test <- rnorm(100);
h <- hist(test);
b <- cut(1, h$breaks);
clr <- rep("grey", length(h$counts));
clr[b] <- "red";
plot(h, col=clr);
Run Code Online (Sandbox Code Playgroud)

我希望能够更改高于某个x轴值的直方图箱的颜色 - 例如,在示例中的分布函数中高于1.我遇到麻烦的部分原因是我并不完全理解cut()返回的因素.

r histogram

13
推荐指数
2
解决办法
1万
查看次数

在ggplot2堆积条形图中按大小排序堆栈

所以我有一些数据,我已经采样如下:

Sequence  Abundance   Length
CAGTG    3       25
CGCTG    82      23
GGGAC    4       25
CTATC    16      23
CTTGA    14      25
CAAGG    9       24
GTAAT    5       24
ACGAA    32      22
TCGGA    10      22
TAGGC    30      21
TGCCG    25      21
TCCGG    2       21
CGCCT    22      24
TTGGC    4       22
ATTCC    4       23
Run Code Online (Sandbox Code Playgroud)

我只是在这里显示每个序列的前4个单词,但实际上它们的长度是"长度".我正在查看我在这里的每个大小类的序列的丰富程度.另外,我想要想象一个特定序列在其大小等级中所代表的丰度比例.目前,我可以制作如下堆叠条形图:

ggplot(tab, aes(x=Length, y=Abundance, fill=Sequence)) 
  + geom_bar(stat='identity') 
  + opts(legend.position="none")
Run Code Online (Sandbox Code Playgroud)

ggplot堆积样本数据的条形图

这对于像这样的小数据集来说很好,但我的实际数据集中有大约170万行.它看起来非常丰富多彩,我可以看到特定的序列在一个大小的类中占多数,但它非常混乱.

我希望能够按照该序列的丰度为每个尺寸订购彩色堆叠条.即堆叠中堆积丰度最高的钢筋位于每个堆叠的底部,丰度最低的钢筋位于顶部.它应该看起来更加流畅.

有关如何在ggplot2中执行此操作的任何想法?我知道aes()中有一个"order"参数但是我无法弄清楚它应该用我所拥有的格式做数据.

r bar-chart ggplot2 stackedbarseries

12
推荐指数
1
解决办法
7193
查看次数

当X值相同时,在小平面网格中的两个图形上强制X轴

我有两组X轴约30个类别的数据用于刻面.我将用一些随机数据显示:

dataf <- data.frame(x=c(1:30), A=rnorm(30,20,5), B=rnorm(30,15,0.5))
datam <- melt(dataf, id="x")
ggplot(datam, aes(factor(x), value)) + 
  geom_bar(stat="identity") + 
  facet_grid(variable ~ .)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这很可爱,但如果在该图表上再现x轴,则更容易快速读取顶部分组上的类别.然而

ggplot(datam, aes(factor(x), value)) + 
  geom_bar(stat="identity") + 
  facet_grid(variable ~ ., scales="free")
Run Code Online (Sandbox Code Playgroud)

对x轴没有影响,因为我猜两个分组的值都是相同的.

如何强制为顶部组和条形图重现X轴?

r facet bar-chart ggplot2

11
推荐指数
1
解决办法
3437
查看次数

防止perl打印相同的警告消息

以下面的无意义脚本为例:

use strict;
use warnings;

my $uninitialisedValue;

while(<>){
  print ${$uninitialisedValue}{$_},"\n";
}
Run Code Online (Sandbox Code Playgroud)

哪个从命令行运行:

$ perl warningPrinter.pl < longfile.txt
Run Code Online (Sandbox Code Playgroud)

无论STDIN包含什么,STDOUT都将充满:

Use of uninitialized value in print at warningPrinter.pl line 16, <> line 1.

Use of uninitialized value in print at warningPrinter.pl line 16, <> line 2.

Use of uninitialized value in print at warningPrinter.pl line 16, <> line 3.

Use of uninitialized value in print at warningPrinter.pl line 16, <> line 4.
...
Run Code Online (Sandbox Code Playgroud)

我使用非常长的文件,所以在测试我的脚本时接收它作为输出至少是有点刺激性的.该过程可能需要一段时间才能响应CTRL-c终止信号,并且我的终端突然充满了相同的错误消息.

有没有办法让perl只打印一个相同且重复出现的警告消息的第一个实例,或者仅仅为执行脚本制作致命的警告消息?虽然我从来没有制作过一个尽管有警告的脚本,我也会接受.但是如果我能让perl只打印一次相同的警告,它可能会更方便.

perl warnings

10
推荐指数
1
解决办法
675
查看次数

使用另一个包中的排序子例程

我有一个脚本和一个像这样的包:

# file: sortscript.pl
use strict;
use warnings;
use SortPackage;

my @arrays = ([1,"array1"],[10,"array3"],[4,"array2"]);

print "Using sort outside package\n";
foreach (sort SortPackage::simplesort @arrays){
    print $_->[1],"\n";
}

print "\nUsing sort in same package\n";
SortPackage::sort_from_same_package(@arrays);
Run Code Online (Sandbox Code Playgroud)

-

# file: SortPackage.pm
use strict;
use warnings;
package SortPackage;

sub simplesort{
    return ($a->[0] <=> $b->[0]);
}

sub sort_from_same_package{
    my @arrs = @_;
    foreach (sort simplesort @arrs){
        print $_->[1],"\n";
    } 
}
1;
Run Code Online (Sandbox Code Playgroud)

运行脚本会生成输出:

$ perl sortscript.pl
Using sort outside package
Use of uninitialized value in numeric comparison …
Run Code Online (Sandbox Code Playgroud)

sorting perl package subroutine

8
推荐指数
3
解决办法
1479
查看次数