파일 이름과 경로가 포함된 두 개의 목록을 얻고 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여기에는 더 많은 내용이 포함되어 있습니다. 당신의 명령줄은 당신을 좋아할 것입니다.