私の人口プロフィールは次のとおりです
pop.file
HG1W
HG2W
HG3W
HG4W
...
別のファイルには、個人ID(各個人ごとに2行、R1およびR2)が含まれています。
ind.file
HI.2613.007.Index_18.ED17_HG1W26-7_353_R1.fastq.gz
HI.2613.007.Index_18.ED17_HG1W26-7_353_R2.fastq.gz
HI.2613.007.Index_14.ED14_HG1W35-2_310_R1.fastq.gz
HI.2613.007.Index_14.ED14_HG1W35-2_310_R2.fastq.gz
HI.2622.001.Index_16.ED16_HG2W9-3_342_R1.fastq.gz
HI.2622.001.Index_16.ED16_HG2W9-3_342_R2.fastq.gz
HI.2613.007.Index_1.ED1_HG2W12-3_33_R1.fastq.gz
HI.2613.007.Index_1.ED1_HG2W12-3_33_R2.fastq.gz
...
各母集団の個人を別々のファイルに保存し、次の出力ファイルを取得したいと思います。
head HG1.population
HI.2613.007.Index_18.ED17_HG1W26-7_353_R1.fastq.gz
HI.2613.007.Index_18.ED17_HG1W26-7_353_R2.fastq.gz
HI.2613.007.Index_14.ED14_HG1W35-2_310_R1.fastq.gz
HI.2613.007.Index_14.ED14_HG1W35-2_310_R2.fastq.gz
head HG2.population
HI.2622.001.Index_16.ED16_HG2W9-3_342_R1.fastq.gz
HI.2622.001.Index_16.ED16_HG2W9-3_342_R2.fastq.gz
HI.2613.007.Index_1.ED1_HG2W12-3_33_R1.fastq.gz
HI.2613.007.Index_1.ED1_HG2W12-3_33_R2.fastq.gz
答え1
そしてawk
:
awk -F_ '
NR==FNR {ind[substr($1,1,3)]++}
{i = substr($3,1,3); f = i ".population"}
i in ind {print >> f; close(f)}
' pop.file ind.file
それから
$ head HG*
==> HG1.population <==
HI.2613.007.Index_18.ED17_HG1W26-7_353_R1.fastq.gz
HI.2613.007.Index_18.ED17_HG1W26-7_353_R2.fastq.gz
HI.2613.007.Index_14.ED14_HG1W35-2_310_R1.fastq.gz
HI.2613.007.Index_14.ED14_HG1W35-2_310_R2.fastq.gz
==> HG2.population <==
HI.2622.001.Index_16.ED16_HG2W9-3_342_R1.fastq.gz
HI.2622.001.Index_16.ED16_HG2W9-3_342_R2.fastq.gz
HI.2613.007.Index_1.ED1_HG2W12-3_33_R1.fastq.gz
HI.2613.007.Index_1.ED1_HG2W12-3_33_R2.fastq.gz
答え2
この試み、
for i in `cat pop.file | cut -c -3`
do
grep $i ind.file > $i.population
done