Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将plink剂量(.raw)格式转换为ped格式_Linux_Unix - Fatal编程技术网

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。