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
表示染色体,BP1
和BP2
分别表示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位点的集合。