生信小工具:Plink之实战演练(2)

继续上次的内容,介绍完Plink与其基本格式后,当然就是到动真格的时候,实战演练,下面会通过例子和小伙伴们一起熟悉Plink的使用。

测试数据的下载

下载官方教程中使用的测试软件:

wget http://zzz.bwh.harvard.edu/plink/hapmap1.zip

解压测试文件,看看里面有什么文件:

unzip hapmap1.zip
rm hapmap1.zip
ls -thrl

该测试集含了一下的四个文件:

-rw-rw-r-- 1 hhu hhu  1693668 Jun  6  2006 hapmap1.map
-rw-rw-r-- 1 hhu hhu 29739617 Jun  8  2006 hapmap1.ped
-rw-rw-r-- 1 hhu hhu      979 Jun  8  2006 pop.phe
-rw-rw-r-- 1 hhu hhu     1869 Jun  8  2006 qt.phe

简单介绍一下这些测试文件:这个hapmap粗体文本文件中包含了来自89个个体的随机选择的基因型(大约80,000个常染色体SNP)。qt.phe:数量性状在一个单独的替代表型文件中。 pop.phe文件包含一个虚拟表型,中国人个体编码为1,日本人编码为2。我们将用它来调查群体之间的差异。

将map和ped格式的文件进行格式转换

--file选项中map和ped格式文件的的前缀,这步会生成对应的bed,fam,bin格式的文件。

plink --file hapmap1

当该命令完成时,下面的信息也会出现,我们可以简单地了解到该变异文件含有83534和89个个体。

PLINK v1.90b6.3 64-bit (17 Jul 2018)
Options in effect:
  --file hapmap1

Hostname: zeus-1
Working directory: /scratch/pawsey0149/hhu/test/plink/new
Start time: Sun Jul 28 15:26:17 2019

Random number seed: 1564298777
257868 MB RAM detected; reserving 128934 MB for main workspace.
Scanning .ped file... done.
Performing single-pass .bed write (83534 variants, 89 people).
--file: plink.bed + plink.bim + plink.fam written.

End time: Sun Jul 28 15:26:18 2019

我们可以进一步压缩生成的文件为二进制的PED文件:

plink --file hapmap1 --make-bed --out hapmap1

例如,如果您想创建一个仅包含具有高频率基因分型(至少完整性为95%以上)的个体的新文件,我们可以运行:

plink --file hapmap1 --make-bed --mind 0.05 --out highgeno

总结SNP变异的数据

检查丢失率

准备工作做完后,我们开始统计一些SNP的数据。首先让我们先看看丢失率missing rate

plink --bfile hapmap1 --missing --out miss_stat

这里要注意,因为上面我们已经将文件转为了二进制的bed格式,所以这里要用--bfile选项。

这里会生成两个文件:

-rw-r----- 1 hhu hhu 3.6M Jul 28 15:41 miss_stat.lmiss
-rw-r----- 1 hhu hhu 4.6K Jul 28 15:41 miss_stat.imiss

一个文件是miss_stat.lmiss这里包含着变异的missing rate信息,另一个文件是miss_stat.imiss包含着个提的missing rate信息。简单分布看看这两个文件,让大家更好的理解:

more miss_stat.lmiss

CHR          SNP   N_MISS     F_MISS
1    rs6681049        0          0
1    rs4074137        0          0
1    rs7540009        0          0
1    rs1891905        0          0
1    rs9729550        0          0
1    rs3813196        0          0
1    rs6704013        2  0.0224719
1    rs9439440        2  0.0224719

在这里展示了对于每个SNP,我们看到丢失个体的数量(N_MISS)和丢失个体的比例(F_MISS)。在让我们看看另外一个文件:

more miss_stat.imiss

    FID          IID MISS_PHENO     N_MISS     F_MISS
    HCB181            1          N        671 0.00803266
    HCB182            1          N       1156  0.0138387
    HCB183            1          N        498 0.00596164
    HCB184            1          N        412 0.00493212
    HCB185            1          N        329 0.00393852
    HCB186            1          N       1233  0.0147605
    HCB187            1          N        258 0.00308856

在这里展示了对于每个个体而已,我们看到丢失的SNP的总数量(N_MISS)和每个个体中丢失SNP占总SNP数目的比例(F_MISS),一般来说如果该个体中丢失SNP的比例很高我们会在后续的分析之前选择移除该个体。在这里看来,这个测试数据质量还不错,个体的丢失SNP比例还是非常低的。

另外如果我们只对某一个染色体的丢失率有兴趣,我们也可以这样操作,指定输出对应染色体的丢失率信息:

plink --bfile hapmap1 --chr 1 --out res1 --missing

检查等位基因频率

这里会生成一个freq_stat.frq文件,其中包含每个SNP的次要等位基因频率(MAF)。

plink --bfile hapmap1 --freq --out freq_stat
more freq_stat.frq

CHR         SNP   A1   A2          MAF  NCHROBS
   1   rs6681049    1    2       0.2135      178
   1   rs4074137    1    2      0.07865      178
   1   rs7540009    0    2            0      178
   1   rs1891905    1    2       0.4045      178
   1   rs9729550    1    2       0.1292      178
   1   rs3813196    1    2      0.02809      178

这里也可以对指定的SNP,检查其等位基因的频率

plink --bfile hapmap1 --snp rs1891905 --freq  --out snp1_frq_stat

既然这里讲到MAF,就简单扩展一下什么是MAF,为什么通过MAF进行过滤?

MAF是次要等位基因频率,即频率较低的等位基因的频率。可以出于多种原因对MAF进行过滤。其中之一是,在具有低覆盖量或深度的序列中,具有非常低MAF的样本可能会产生很多噪音,导致假阳性的下游分析。举一个极端的例子,仅存在于一个个体中的等位基因(非常低的等位基因频率)不会在群体结构推中添加任何有用可靠信息。。如果数据将用于全基因组关联研究(GWAS),通常要用比较高的MAF阈值,因为它需要非常强的统计能力来对非常罕见的等位基因做出有意义的陈述。一般常用的阀值有0.05和0.01。但是最佳MAF过滤阈值取决于你的数据类型,还有所计划进行的分析,数据质量和样本大小,可以通过统计分析计算出来。

这里给出一个例子,使用阀值0.05进行过滤:

plink --bfile hapmap1 -maf 0.05 -out test --make-bed

83534 variants loaded from .bim file.
89 people (89 males, 0 females) loaded from .fam.
89 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 89 founders and 0 nonfounders present.
Calculating allele frequencies... done.
Total genotyping rate is 0.99441.
24114 variants removed due to minor allele threshold(s)
(--maf/--max-maf/--mac/--max-mac).
59420 variants and 89 people pass filters and QC.
Among remaining phenotypes, 44 are cases and 45 are controls.
--make-bed to test.bed + test.bim + test.fam ... done.

可以看到过滤后,24114 变异位点被过滤掉,59420变异位点被保留。

除了MAF以为--mind--geno也是常见的过滤参数:

去除基因型丢失率大于10%的个体样本:

plink --file hapmap1 --recode --mind 0.10 --out hapmap1_complete

去除没有大于95%的个体都具有的变异位点:

plink --file hapmap1 --make-bed --geno 0.05

当然所有过滤其实也可以同时进行一步到位:

plink --file hapmap1 --make-bed --mind 0.10 --maf 0.05 --geno 0.05 --out hapmap1_clean

最后简单讲讲Plink也能用于LD的计算,更深入关于LD的计算以后再详细讨论:

plink -bfile hapmap1  -r2 -ld-window-kb 1 -ld-window 1000 -ld-window-r2 0 -out  test

当然有时候一些R包例如adegenet或者画structure图的structure,都需要特殊的输入文件格式(可输出的格式很多,这里只列举了一种,详细可支持回到plink的manual寻找),这时候Plink同时也可以帮上忙:

plink -bfile hapmap1 -aec -out man -recode A

到这里我就把我日常经常使用的Plink功能介绍了一下,但是这些功能其实只是Plink的冰山一角,其强大之处要你仔细阅读其manual才能深刻体会。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容