Linux 将plink剂量(.raw)格式转换为ped格式
原始)文件,看起来像这样Linux 将plink剂量(.raw)格式转换为ped格式,linux,unix,Linux,Unix,原始)文件,看起来像这样 FID IID FA MO SEX PHENO SNP1 SNP2 SNP3 1 1 0 0 1 1 0 2 1 1 2 0 0 1 1 0 2 1 1 3 0 0 1 1 0 2 1 和映射文件 1 SNP1 20 A G 1 SNP2 45 T C 1 SNP3 56 A G 我想将我的剂量文件重新编码为ped格式,使其如下所示: FID IID FA MO SEX PHENO SNP1 SNP2 SNP3 1 1 0 0 1 1 AA CC AG
FID IID FA MO SEX PHENO SNP1 SNP2 SNP3
1 1 0 0 1 1 0 2 1
1 2 0 0 1 1 0 2 1
1 3 0 0 1 1 0 2 1
和映射文件
1 SNP1 20 A G
1 SNP2 45 T C
1 SNP3 56 A G
我想将我的剂量文件重新编码为ped格式,使其如下所示:
FID IID FA MO SEX PHENO SNP1 SNP2 SNP3
1 1 0 0 1 1 AA CC AG
1 2 0 0 1 1 AA CC AG
1 3 0 0 1 1 AA CC AG
谢谢
Manav使用awk
awk 'NR==FNR {a[$2,0]=$4$4 ; a[$2,1]=$4$5 ; a[$2,2]=$5$5 ; next}
$7~/^[0-2]$/ {$7=a["SNP1",$7] ; $8=a["SNP2",$8] ; $9=a["SNP3",$9]} 1'
map_file raw_file
输出:
FID IID FA MO SEX PHENO SNP1 SNP2 SNP3
1 1 0 0 1 1 AA CC AG
1 2 0 0 1 1 AA CC AG
1 3 0 0 1 1 AA CC AG
转换算法是什么?你能详细说明一下吗?SNP1、SNP2和SNP3列代表0、1或2个次要等位基因副本(map文件的第5列)。所以如果SNP1为0,这意味着它没有任何次要的等位基因,所以没有G。因此它会转化为AA。SNP2是2,这意味着它有两个副等位基因拷贝,将转化为CC。