大家好,我是邓飞,今天分享一下GWAS定位到显著性位点,如何注释基因。
关于基因注释,之前写过一些博客,可以用到的软件有:ANNOVAR、Bedtools,其实excel也可以做基因注释。
1,显著性SNP位点
做完GWAS分析后,确定阈值,然后小于阈值的位点都是显著性位点,显著性位点最重要的两个信息:
- 染色体
- 物理位置
有时候还包括snp的名称,但是不是必填项,只需要上面两个信息,就可以知道显著snp在基因组上的位置了。
2,gff文件
一般,有基因组数据的物种,有基因组的版本,还有配套的gff或者gff3格式的文件,文件的内容里面有:
- 染色体
- 基因起始位置
- 基因终止位置
- 基因功能描述
- ……
3,LD衰减距离
为何要计算LD衰减距离呢,是为了知道显著snp代表的区间,因为存在连锁,所以衰减距离就是确定snp所代表的有效区间,可以代表这个有效区间的变异。虽然snp不在基因上,但是如果snp的衰减距离区间内(比如上下50kb)包含基因,那也可以说明这个基因是显著影响性状的。具体方法见:(如何计算LD衰减一半的距离?)
所以,计算了LD衰减距离,显著性snp的信息,就变成了:
- 染色体
- 有效区间起始位置
- 有效区间终止位置
4,如何用Excel注释显著性SNP?
我们把gff文件,简化一下,整理成excel格式:
怎么用excel表格呢,可以手动查看,也可以编写一个函数,一共就6个SNP,手动搞就行了。
第一个snp,区间是1染色体,5-15,这个区间有:gene1
第二个snp,区间是1染色体,10-20,这个区间有:gene2,不是完全包括,但是有交集,也算是
第三个snp,没有基因
第四个snp,gene4
第五个snp:没有基因
第六个snp:没有基因
所以这些snp,一共注释的基因有:gene1, gene2, gene4
5,我有1000个显著性位点,谢谢
如果位点很多,这就需要用到软件了:`bedttols`
下面,用一个例子,来介绍一下操作的方法:
下图1左边是SNP的上下游区间,右边图2是基因的上下游区间,想以图1为标准,将区间内有基因的行放到右边。
换到基因注释的领域,看一下相关需求
- 1,显著性的SNP位点,取上下游50k的位点,作为候选的区间
- 2,将候选区间有基因的,匹配到SNP的右边
处理注意:
- 1,显著SNP在上下游区间时,可能会有交叉,所以要先合并(merge)
- 2,匹配基因时,一个SNP区间可能会有多个基因
SNP区间文件:
$ cat snp_infor.ped
chr1 5 15
chr1 10 20
chr1 30 40
chr1 80 90
chr1 110 120
chr1 115 125
基因区间文件:
$ cat gene_infor.ped
chr1 1 14 gene1
chr1 17 19 gene2
chr1 45 82 gene3
chr1 88 93 gene4
chr1 100 105 gene5
操作1:提取每个SNP上面的基因
bedtools intersect -a snp_infor.ped -b gene_infor.ped -loj
结果日志:
2025年8月23~24,有两天的GWAS培训直播课,感兴趣的老师点击链接参看详情: