我如何表示参数是相关的?

时间:2015-04-09 19:30:55

标签: gnu-parallel

我有以下参数chr1 chr2 chr3+ -2 3

对于每个chr,我想要+2一次,-3一次,就像这样:

parallel --whatflags-to-use?? echo {} {} {} ::: + - ::: 2 3 ::: chr1 chr2 chr3
+ 2 chr1
+ 2 chr2
+ 2 chr3
- 3 chr1
- 3 chr2
- 3 chr3

我最接近的是:

parallel --xapply echo {} {} {} ::: + - ::: 2 3 ::: chr1 chr2 chr3
+ 2 chr1
+ 2 chr3
- 3 chr2

我该怎么做?无法看到精彩教程中的内容,所以也许这是不可能的......

2 个答案:

答案 0 :(得分:3)

parallel echo {} ::: '+ 2' '- 3' ::: chr1 chr2 chr3

如果你需要参数split,那就更难了:你想要一个参数依赖另一个:

parallel echo strand='{=1 $_=$_==2?"+":"-"=}' read={1} chrom={2} ::: 2 3 ::: chr1 chr2 chr3

可替换地:

parallel --xapply echo str={1} read={2} chrom={3}  ::: + - ::: 2 3 ::: chr{1,1,2,2,3,3}
parallel --colsep ' ' echo str={1} read={2} chrom={3}  ::: '+ 2' '- 3' ::: chr{1..3}

答案 1 :(得分:0)

parallel --xapply echo {} {} {} ::: + - + - + - ::: 2 3 2 3 2 3 ::: chr1 chr2 chr3
+ 2 chr1
- 3 chr1
+ 2 chr3
- 3 chr2
+ 2 chr2
- 3 chr3

是解决它的一种方法,但它相当愚蠢,因为我有25条染色体(chr)所以我必须每次写+ -2 3 25次。