【plink系列】第1篇-数据格式

因为最近群里有小伙伴问plink使用和数据处理的问题,鉴于plink在SNP数据的处理上发挥的作用那真不是一般大,小Q想着那就更新一个系列来讲解plink以及它在数据处理上的应用吧。以下都是基于小Q实际操作的经验写的,如有缺的地方可以给小Q留言哦!

  • 小建议:
    如果是新手学习plink可以先看看plink1.04的网页版说明文档,http://zzz.bwh.harvard.edu/plink/
    因为这个说明文档是按照特定章节排版的,比plink1.9排版好些,学起来会更方便些。

plink输入文件格式

自从plink更新到1.9/2.0以后,它接受多种输入格式,小Q常用的是它自己的标准格式以及VCF格式,更多其他的格式请见http://www.cog-genomics.org/plink/1.9/input 。这里简单介绍它自己的标准格式,

请注意,以下的文件都是成对同时出现的,即有一个另一个也必须存在,plink才能识别。
假设样本都是二倍体,总共是2个样本,2个SNP

  1. ped & map
    ped: 家庭ID 样本ID 父亲ID 母亲ID 性别 疾病状态 SNP1的基因型 SNP2的基因型
    ind1FID ind1IID 0 0 0 0 A G G T
    ind2FID ind2IID 0 0 0 0 G G T T
    map: 染色体号 SNPID 遗传距离 物理距离
    1 snp1 0 100
    2 snp2 0 1000
  • 为何会有家庭ID和样本ID之分?
    plink最早是为了分析家系数据而生的,在多个家系的情况下,就用家庭编号和样本编号来独特的表示一个样本.另外会记录样本的父母信息。因此:当你的样本不是家系数据的时候,让家庭ID和样本ID相同即可.父母ID用0表示即可。
  • 为什么会有疾病状态?
    plink最早也记录样本的患病状态,患病=2或不患病=1。当你的数据不需要记录这样的信息的时候,用0表示即可。
  • 遗传距离没有怎么办?
    1)没有这个信息且你不想要这个信息的时候,用0表示即可。
    2)如果你需要这个信息,可以根据物种的遗传图谱+插值法进行计算,或者根据1Mb=x cM的换算公式进行换算。
  • 性别信息怎么办?
    1)没有这个信息且你不想要这个信息的时候,用0表示即可。
    2)如果你需要这个信息,1-男性,2-女性,other-unknown(一般我用0表示)
  1. bed & bim & fam
    bed:二进制的基因型数据
    bim:染色体号 SNPID 遗传距离 物理距离 碱基1 碱基2
    1 snp1 0 100 A G
    2 snp2 0 1000 G T
    fam:家庭ID 样本ID 父亲ID 母亲ID 性别 疾病状态
    ind1FID ind1IID 0 0 0 0
    ind2FID ind2IID 0 0 0 0
  2. tped & tfam
    tped: 染色体号 SNPID 遗传距离 物理距离 样本1基因型 样本2基因型
    1 snp1 0 100 A G G G
    2 snp2 0 1000 G T T T
    tfam: 家庭ID 样本ID 父亲ID 母亲ID 性别 疾病状态
    ind1FID ind1IID 0 0 0 0
    ind2FID ind2IID 0 0 0 0

需要注意的点

  1. 对于SNP数据,plink只接受且识别二等位位点,比如A/G,如果是多等位位点,比如A/G/T,plink会报错。
  2. 如果使用vcf文件作为输入,我经常用的参数是:--snps-only --biallelic-only strict --set-missing-var-ids @:# ,大家可以参考,至于每个参数是什么含义,下章我会介绍。

下期预告:

  • 第2篇-如何修改plink里的样本信息
  • 第3篇-如何利用plink提取部分数据
  • 第4篇-如何利用plink合并不同来源的数据
    ......

喜欢的小伙伴,点个喜欢或赞赏下吧!

转载请标明出处和作者 ^+^

撰文 & 编辑:VickieQ
校对:HCLO4 & 花毛

你可能感兴趣的:(【plink系列】第1篇-数据格式)