赞
踩
大家好,我是邓飞。
平时在分析时,也有时候需要将外部准备好的数据,更新到plink数据中。plink有两种格式类型,二进制文件(bed,bim,fam)在fam文件的第六列,文本文件(ped,map)在ped文件的第六列。数据量小时,可以用excel打开,直接手动增加,如果数据量大,就需要编程实现,比如R语言,Perl或者Python。其实,plink自己有一个参数,可以自动更新表型数据,只需要将所要更新的表型数据准备好就行了。下面介绍一下操作流程。
下面我们用plink示例数据来进行演示,这个数据很小,也可以自己生成。
map数据:
$ cat toy.map
1 rs0 0 1000
1 rs10 0 1001
ped数据:
$ cat toy.ped
1 1000000000 0 0 1 1 0 0 A A
1 1000000001 0 0 1 2 C C A G
上面的ped数据第六列就是表型数据,这里有两个个体,分别是1和2,这里我们将其更改为2和1。
如果想要用plink进行更新数据,需要提前准备好表型数据,格式:FID,IID,y,三列数据,没有行头,缺失值用-9,分隔符是空格或者tab。
注意,跟新的个体要和ped一样,顺序可以变化,但是数目要对得上。
表型数据:
$ cat phenotype.txt
1 1000000000 2
1 1000000001 1
更新命令:
plink --file toy --pheno phenotype.txt --recode --out re1
结果生成re1的plink文件,看一下ped的第六列,可以看到,已经更新了:
$ cat re1.ped
1 1000000000 0 0 1 2 0 0 A A
1 1000000001 0 0 1 1 C C G A
首先,用toy生成二进制的plink文件
plink --file toy --make-bed --out b
查看b.fam文件,里面第六列是表型数据。
$ cat b.fam
1 1000000000 0 0 1 1
1 1000000001 0 0 1 2
表型数据整理,和文本格式的phenotype.txt格式一样。这里我们将其变为连续性状。
注意:表型数据可以是1-2的case-contral,也可以是连续性状,操作方法没有区别
$ cat phenotype.txt
1 1000000000 2.5
1 1000000001 1.8
更细代码:
plink --bfile b --pheno phenotype.txt --make-bed --out re2
查看re2.fam文件,看看表型数据已经更新成功:
$ cat re2.fam
1 1000000000 0 0 1 2.5
1 1000000001 0 0 1 1.8
初学者看到plink的ped第六列或者fam的第六列是表型数据,就想把自己的数据加进去。其实我们可以额外定义一个表型数据txt文件,自己整理数据就行,它的优势:
这一篇就是plink如何更新表型数据的教程。感觉不错,三连走起呀!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。