我们在研究过程中,经常需要提取基因附近指定范围内的SNP标记进行下一步的分析验证,如果用Excel一个一个去根据位置筛选会非常麻烦,所以小编写了一个小工具,帮助大家批量提取基因上下游指定范围内的SNP标记。使用工具前,我们需要先安装bedtools。
## 下载bedtools
wget -c https://github.com/arq5x/bedtools2/releases/download/v2.29.2/bedtools-2.29.2.tar.gz
## 解压
tar -zxvf bedtools-2.29.0.tar.gz
## 编译
cd bedtools2
make
之后把bedtools添加到环境变量中。
我们需要准备两个输入文件,一个是需要提取上下游SNP标记的基因。
![f70102b8b25f3374209c59d306253e4c.png](https://i-blog.csdnimg.cn/blog_migrate/dd4caead80474b9f0263c218c0bd2739.png)
第一列为染色体编号,第二列为基因起始位置,第三列为基因终止位置,第四列为基因编号。以制表符"Tab"分隔。
另一个文件就是包含标记信息的vcf文件。
![78a421ad940411b62f77993bcd2f2ade.png](https://i-blog.csdnimg.cn/blog_migrate/4d1a9cc67ca1ca686ce2a30c1281fc2b.jpeg)
准备好输入文件后,我们就可以开始提取标记啦!
## 下载
git clone https://github.com/biozhp/snp_get.git
## 进入目录
cd snp_get
## 提取标记
python ./snp_get.py -gene input.gene.txt -vcf snp.vcf -length 500000 -out out_prefix
-gene:输入包含基因位置的文件。
-vcf:输入包含标记的vcf文件。
-length:设置提取SNP标记的基因上下游范围。
-out:输出文件前缀。
运行完毕后会生成两个输出文件。
输出文件一的第一列表示标记,第二列表示该标记位于哪些基因的上下游。
![9e544b69cdb0f7df1acbe57433717343.png](https://i-blog.csdnimg.cn/blog_migrate/c4f983faeae76a8ca882f511841357d6.png)
输出文件二即为位于基因上下游标记的vcf文件。使用过程中有任何疑问,可以写在https://github.com/biozhp/snp_get/issues上,或者给我发邮件。
![9e287a7824482e65f72f0b78a6f657cd.png](https://i-blog.csdnimg.cn/blog_migrate/65df1c2fa087107dd756d003f31e1ff6.jpeg)