采用plink挑选tagSNPs

2020-05-11 10:15:48 浏览数 (1)

tagSNPs叫做标签SNP, 用来代表一组高度连锁不平衡的SNP位点。对于一组高度连锁不平衡的SNP位点而言,在遗传时这些位点往往同时遗传,其包含的信息是冗余的,只需要选取其中几个SNP位点作为代表即可,这个选出来的代表位点就叫做tagSNPs, 而这些一起遗传的高度连锁不平衡的SNP位点构成了haplotype。简而言之,tagSNP可以代表单倍型中所有的SNP位点。

tagSNPs在关联分析中具有重要作用,大大减少了分析的工作量,由于tagSNP可以代表一组SNP位点,所以只需要分析tagSNP就可以了,不必对所有的SNP位点都进行分析。

plink 软件可以用于识别tagSNPs。由于tagSNPs是建立在haplotype的基础上的,所以首先需要识别haplotype block。命令如下

代码语言:javascript复制
plink --bfile mydata --blocks

这条命令会产生两个文件,plink.blocks 和 plink.blocks.det 。

plink.blocks 内容如下

代码语言:javascript复制
* rs7527871 rs2840528 rs7545940
* rs2296442 rs2246732
* rs10752728 rs897635
* rs10489588 rs9661525 rs2993510

每一行以*开头,代表一个haplotype block,后面是属于这个haplotype的所有SNP位点。

plink.blocks.det 内容如下

代码语言:javascript复制
CHR BP1 BP2 KB NSNPS SNPS
1 2313888 2331789 17.902 3 rs7527871|rs2840528|rs7545940
1 2462779 2482556 19.778 2 rs2296442|rs2246732
1 2867411 2869431 2.021  2 rs10752728|rs897635
1 2974991 2979823 4.833  3 rs10489588|rs9661525|rs2993510

CHR表示染色体,BP1BP2分别表示haplotype block的起始和终止位置;KB表示haplotype block的长度;NSNPS表示haplotype block中的SNP位点个数;SNPS表示属于这个haplotype的所有SNP位点。

基于haplotype的结果,我们就可以去分析某个haplotype block中的tagSNPs位点了,用法如下

代码语言:javascript复制
plink --bfile mydata --show-tags mysnps.txt

mysnps.txt 文件中每一行是一个SNP位点,示例如下

代码语言:javascript复制
rs7527871
rs2840528
rs7545940

plink只会对mysnps.txt文件指定的一组SNP位点挑选tagSNPs。这一步会生成两个文件,plink.list和plink.tags.list。

plinks.list和mysnps.txt文件内容类似,只不过在其基础上新增了tagSNP位点的ID。plink.tags.list文件内容如下

代码语言:javascript复制
SNP CHR BP NTAG LEFT RIGHT KBSPAN TAGS
rs2542334  22 16694612 2 16693517 16695440 1.923 rs415170|rs2587108

第一列的SNP位点就是tagSNP, 最后一列是该tagSNP代表的snp位点的集合。

0 人点赞