我在文件中的目录中有一个配对文件列表(使用
paste
)
cat list.files.r12.txt | head -n3
./ID1_L2_R1_001.fastq.gz ./ID1_L2_R2_001.fastq.gz
./ID2_L3_R1_001.fastq.gz ./ID2_L3_R2_001.fastq.gz
./ID3_L2_R1_001.fastq.gz ./ID3_L2_R2_001.fastq.gz
你可以看到这对在R1和R2之间。
这只是为了测试,因为这将被传递给另一个命令。下面的命令只是逐行粘贴。
parallel -j 1 "echo {}" :::: <(cat list.files.r12.txt | head -n3)
这个复制文件
parallel -j 1 "echo {} {}" :::: <(cat list.files.r12.txt | head -n3)
这行不通:
parallel -j 1 "echo {1} {2}" :::: <(cat list.files.r12.txt | head -n3)
基本上,我想要的是
list.files.r12.txt
文件的每一行都可以并行执行。这是所需的输出:
program ... ./ID1_L2_R1_001.fastq.gz ./ID1_L2_R2_001.fastq.gz
program ... ./ID2_L2_R1_001.fastq.gz ./ID2_L2_R2_001.fastq.gz
program ... ./ID3_L2_R1_001.fastq.gz ./ID3_L2_R2_001.fastq.gz
cat list.files.r12.txt | head -n3 |
parallel --colsep '\t' echo
cat list.files.r12.txt | head -n3 |
parallel --colsep '\t' echo one:{1} two:{2}
当你有配对结束阅读时,你通常可以做:
parallel --plus echo read:{} paired:{/_R1_/_R2_/} ::: *__R1_*
这样可以避免粘贴。