次の名前のフォルダにファイルセットがあります。
AM11_BW415_R1.fastq.gz NAM13_BW968_R2.fastq.gz NAM17_AC_Barrie_R1.fastq.gz NAM3_PI648600_R2.fastq.gz NAM7_Glenlea_R1.fastq.gz PI648598_R2.fastq.gz
NAM11_BW415_R2.fastq.gz NAM13_Frontana_R1.fastq.gz NAM17_AC_Barrie_R2.fastq.gz NAM3_PI648842_R1.fastq.gz NAM7_Glenlea_R2.fastq.gz PI648611_R1.fastq.gz
NAM11_Reeder_R1.fastq.gz NAM13_Frontana_R2.fastq.gz NAM17_BW388_R1.fastq.gz NAM3_PI648842_R2.fastq.gz NAM7_Laura_R1.fastq.gz PI648611_R2.fastq.gz
NAM11_Reeder_R2.fastq.gz NAM14_BW874_R1.fastq.gz NAM17_BW388_R2.fastq.gz NAM4_PI613279_R1.fastq.gz NAM7_Laura_R2.fastq.gz PI648672_R1.fastq.gz
NAM11_Webill_R1.fastq.gz NAM14_BW874_R2.fastq.gz NAM17_RedFife_R1.fastq.gz NAM4_PI613279_R2.fastq.gz NAM7_Marquis_R1.fastq.gz PI648672_R2.fastq.gz
NAM11_Webill_R2.fastq.gz NAM14_Glenn_R1.fastq.gz NAM17_RedFife_R2.fastq.gz NAM4_PI613280_R1.fastq.gz NAM7_Marquis_R2.fastq.gz PI648724_R1.fastq.gz
NAM12_BW431_L002_R1.fastq.gz NAM14_Glenn_R2.fastq.gz NAM1_PI648517_R1.fastq.gz NAM4_PI613280_R2.fastq.gz NAM8_FL62R1_R1.fastq.gz PI648724_R2.fastq.gz
NAM12_BW431_L002_R2.fastq.gz NAM14_Unity_R1.fastq.gz NAM1_PI648517_R2.fastq.gz NAM4_PI648524_R1.fastq.gz NAM8_FL62R1_R2.fastq.gz PI648768_R1.fastq.gz
NAM12_BW431_L008_R1.fastq.gz NAM14_Unity_R2.fastq.gz NAM1_PI648519_R1.fastq.gz NAM4_PI648524_R2.fastq.gz NAM8_Muchmore_R1.fastq.gz PI648768_R2.fastq.gz
NAM12_BW431_L008_R2.fastq.gz NAM15_BW881_R1.fastq.gz NAM1_PI648519_R2.fastq.gz NAM5_PI648523_R1.fastq.gz NAM8_Muchmore_R2.fastq.gz PI648860_R1.fastq.gz
NAM12_Penhold_L002_R1.fastq.gz NAM15_BW881_R2.fastq.gz NAM1_PI648541_R1.fastq.gz NAM5_PI648523_R2.fastq.gz NAM8_Stettler_R1.fastq.gz PI648860_R2.fastq.gz
NAM12_Penhold_L002_R2.fastq.gz NAM15_Lillian_R1.fastq.gz NAM1_PI648541_R2.fastq.gz NAM5_PI648585_R1.fastq.gz NAM8_Stettler_R2.fastq.gz PI648862_R1.fastq.gz
NAM12_Penhold_L008_R1.fastq.gz NAM15_Lillian_R2.fastq.gz NAM2_PI648493_R1.fastq.gz NAM5_PI648585_R2.fastq.gz PI277012_R1.fastq.gz PI648862_R2.fastq.gz
NAM12_Penhold_L008_R2.fastq.gz NAM15_PT245_R1.fastq.gz NAM2_PI648493_R2.fastq.gz NAM5_PI648622_R1.fastq.gz PI277012_R2.fastq.gz PI648864_R1.fastq.gz
NAM12_Sumai3_L002_R1.fastq.gz NAM15_PT245_R2.fastq.gz NAM2_PI648602_R1.fastq.gz NAM5_PI648622_R2.fastq.gz PI648478_R1.fastq.gz PI648864_R2.fastq.gz
NAM12_Sumai3_L002_R2.fastq.gz NAM16_BA51B92_R1.fastq.gz NAM2_PI648602_R2.fastq.gz NAM6_Neepawa_R1.fastq.gz PI648478_R2.fastq.gz run_701_150904_7001410_0194_BC79VNANXX_NAM.list
NAM12_Sumai3_L008_R1.fastq.gz NAM16_BA51B92_R2.fastq.gz NAM2_PI648609_R1.fastq.gz NAM6_Neepawa_R2.fastq.gz PI648487_R1.fastq.gz run_760_160912_7001343F_0065_AC9EV0ANXX_NAM.list
NAM12_Sumai3_L008_R2.fastq.gz NAM16_BW928_R1.fastq.gz NAM2_PI648609_R2.fastq.gz NAM6_PI648532_R1.fastq.gz PI648487_R2.fastq.gz
NAM13_BW462_R1.fastq.gz NAM16_BW928_R2.fastq.gz NAM3_PI648511_R1.fastq.gz NAM6_PI648532_R2.fastq.gz PI648566_R1.fastq.gz
NAM13_BW462_R2.fastq.gz NAM16_BW963_R1.fastq.gz NAM3_PI648511_R2.fastq.gz NAM6_Thatcher_R1.fastq.gz PI648566_R2.fastq.gz
NAM13_BW968_R1.fastq.gz NAM16_BW963_R2.fastq.gz NAM3_PI648600_R1.fastq.gz NAM6_Thatcher_R2.fastq.gz PI648598_R1.fastq.gz
したがって、同じ名前の2つのファイル(NAM11_Reeder_R1.fastq.gzなど)を使用できるforループまたは単一のforループを実行し、次のようにそのフォルダの外側のスクリプトに引数として送信しようとしています。
scripts/PipelineHaplo.sh raw/NAM13_BW968_R1.fastq.gz raw/NAM13_BW968_R2.fastq.gz 2 &
2は読み取る深さを指定しますが、単純化のためにこれが定数であり、さまざまなパラメータであるとします。ほぼハードコーディングできます。
次に、次の2つのパラメータ(ソースファイル)R1とR2を使用して同じことをしたいと思います。スクリプトが誤ったフォルダにパラメータを適用しない場合はどうすればよいですか?デフォルトでは、すべてが1つのデフォルトフォルダにあり、その中にあるフォルダは次のとおりです。ネイティブファイルスクリプトサブディレクトリを含むケース{001...008}というほとんどの空のディレクトリの大規模セット
これがスクリプトが機能したい場所なので、基本的にR1とR2をrawというフォルダに移動することでスクリプトが起動し、rawでは次のスクリプトがそのフォルダを制御してそのタスクを実行します。
両方のファイルの名前が似ている場合、このループはどのように見えますか?
答え1
GNU Parallelを使用すると、次のようになります。
parallel scripts/PipelineHaplo.sh {} '{=s/_R1/_R2/=}' 2 ::: raw/*R1.fastq.gz