他のスクリプトから呼び出されたスクリプトのforループをGNUパラレルコマンドに変換する

他のスクリプトから呼び出されたスクリプトのforループをGNUパラレルコマンドに変換する

現在私が作成した繰り返し可能な環境のUnixシステムでHaploTypeCallerプログラムを使用するための次のスクリプトがあります。

#!/bin/bash
#parallel call SNPs with chromosomes by GATK
for i in 1 2 3 4 5 6 7
do
  for o in A B D
  do
    for u in _part1 _part2
    do 
      (gatk HaplotypeCaller \
        -R /storage/ppl/wentao/GATK_R_index/genome.fa \
        -I GATK/MarkDuplicates/ApproachBsortedstettler.bam \
        -L chr$i$o$u \
        -O GATK/HaplotypeCaller/HaploSample.chr$i$o$u.raw.vcf &)
    done
  done
done

gatk HaplotypeCaller \
    -R /storage/ppl/wentao/GATK_R_index/genome.fa \
    -I GATK/MarkDuplicates/ApproachBsortedstettler.bam \
    -L chrUn \
    -O GATK/HaplotypeCaller/HaploSample.chrUn.raw.vcf&

このコードを少なくとも部分的に並列に変更するにはどうすればよいですか?それだけの価値はありますか?スクリプト全体を別の質問で表示できる別のスクリプトにマージしようとしています。ここ すべきですか?私のパフォーマンスは大幅に向上しますか?

ベストアンサー1

parallel echo HaploSample.chr{1}{2}{3}.raw.vcf ::: 1 2 3 4 5 6 7 ::: A B D ::: _part1 _part2

おすすめ記事