读取两个包含文件名的列表

读取两个包含文件名的列表

我正在获取两个具有文件名和路径的列表,并使用 gnu-parallel 处理这两个列表中的文件。但是,当我检查输出时,该命令只能使用第一个列表中的文件,而不能使用第二个列表中的文件。我尝试了此中的各种选项。例如给出文件类型--readFilesIn(这是错误所在)

reads_list=/comb_fastq/fq1.list
reads_list2=/comb_fastq/fq2.list

for fastq in `cat $reads_list`;do
  rsync -av $fastq $TMPDIR/input/ 
done

for fastq in `cat $reads_list2`;do
     rsync -av $fastq $TMPDIR/input2/
done

parallel -j $NSLOTS --xapply \
  "STAR \
--genomeDir $TMPDIR/reference_genome \
--genomeLoad LoadAndKeep \
--runThreadN 4 \
--readFilesIn ../input/{1} ../input2/{1}

答案1

您没有告诉 GNU Parallel $reads_list 和 $reads_list2。所以我很困惑你怎么会期望 GNU Parallel 猜测它应该使用这些。

通过并行同步(而不是运行第一个作业之前的所有内容),它也可能会更快。我的猜测是这已经足够了:

parallel -j $NSLOTS --xapply \
  "rsync {1} $TMPDIR/input/{1};\
  rsync {2} $TMPDIR/input2/{2};\
  STAR \
  --genomeDir $TMPDIR/reference_genome \
  --genomeLoad LoadAndKeep \
  --runThreadN 4 \
  --readFilesIn ../input/{1} ../input2/{2}" :::: $reads_list $reads_list2

考虑完成本教程http://www.gnu.org/software/parallel/parallel_tutorial.html其中涵盖了这一点以及更多内容。您的命令行会因此而喜欢您。

相关内容