文章

我们用于实战的数据集来自于2019年发表于NG的西瓜文章,它提供了GATK过滤后的SNP数据集用于分析,并且附录提供了完整的样本信息。该SNP数据集包括414个西瓜,2000万个SNP信息,数据大小为22G.

数据准备

根据文章提供的下载地址,我们分别下载西瓜的基因组,GFF注释文章和存放的VCF的数据集。

ftp://cucurbitgenomics.org/pub/cucurbit/genome/watermelon/97103/v2/97103_genome_v2.fa.gz
ftp://cucurbitgenomics.org/pub/cucurbit/genome/watermelon/97103/v2/97103_gene_gff_v2.gz
ftp://cucurbitgenomics.org/pub/cucurbit/reseq/watermelon/v2/watermelon_414acc_SNP.vcf.gz

需要注意的是,他们提供的SNP文件存在一些问题,不能用BCFtools进行解析,不过很容易解决,只需要运行如下命令

zgrep -v '##INFO' watermelon_414acc_SNP.vcf.gz | bgzip -c > watermelon_414acc_SNP2.vcf.gz &

使用SnpEff注释VCF文件

在文章的第二部分Genome variation map and phylogeny of Citrullus species.,作者对414个重测序结果分析得到SNP信息做了如下描述。

These accessions were sequenced to an average depth of 14.5× and coverage of 92.2% of the ‘97103’ genome. In total, 19,725,853 SNPs were identified, of which 1,100,803 were located in coding regions, causing 502,028 nonsynonymous mutations, 589,735 synonymous mutations, 1,031 start codon changes and 6,808 stop codon changes. Furthermore, 6,675,290 small indels were identified, of which 56,115 were located in coding regions.

很可惜,作者并没有在文章中指出他是使用什么软件对SNP进行注释,可能是自己写了一个脚本进行分析,而我为了偷懒,直接用一个现成的软件,snpEFF,对VCF文件中的SNP进行注释。

参考使用snpEff对VCF进行注释,我们需要先建立西瓜的注释数据库。

第一步,修改snpEff/snpEff.config,增加西瓜基因组信息

# watermelon
watermelon.genome : watermelon

第二步,在snpEff/data/新建一个watermelon文件夹,并存放基因组序列和GFF文件

mkdir -p snpEff/data/watermelon
cp  97103_genome_v2.fa.gz snpEff/data/watermelon/sequences.fa.gz
cp 97103_gene_gff_v2.gz  snpEff/data/watermelon/genes.gff.gz

第三步,运行构建命令

java -jar snpEff/snpEff.jar build -gff3 -v watermelon
``最后,我们就可以对VCF进行注释了```bash
java -jar /opt/biosoft/snpEff/snpEff.jar ann -no-utr -no-downstream -no-upstream -no-intergenic watermelon watermelon_414acc_SNP2.vcf.gz > watermelon_414acc_eff.vcf &

这一步会很久,最终会得到一个204G文件,这就是我们的注释结果。而另外的snpEff_genes.txt和snpEff_summary.html则是用来了解SNP的分布情况。

SNP分布图

根据SnpEff的注释结果(如下),落在编码区有1,168,139个。

Type (alphabetical order) Count Percent
DOWNSTREAM 7,325,679 20.41%
EXON 1,168,139 3.254%
INTERGENIC 16,068,984 44.769%
INTRON 3,719,155 10.362%
SPLICE_SITE_ACCEPTOR 1,317 0.004%
SPLICE_SITE_DONOR 1,415 0.004%
SPLICE_SITE_REGION 78,665 0.219%
UPSTREAM 7,530,074 20.979%
UTR_5_PRIME 3 0%

对于落在编码区域的SNP而言,大约有533,656个位点是非同义突变,638,879个位点是同义突变。

Type (alphabetical order) Count Percent
MISSENSE 533,656 45.277%
NONSENSE 6,120 0.519%
SILENT 638,879 54.204%

相比较于文章,我们的各个位置上的SNP信息都比较多,但是整体在一个数量级上,接下来就是利用这些SNP位点做更加深入的分析

  • 系统发育分析
  • 主成分分析
  • 群体结构分析
  • 基因流
  • ...

这些都会在将来慢慢更新。

「群体遗传学实战」第一课: 对SNP位点进行注释相关推荐

  1. 「群体遗传学实战」第二课: 画出和文章几乎一样的PCA图

    主成分分析(PCA)是一种线性降维方法,能从纷繁复杂的数据中抽离出关键因素,用来区分不同的样本.这里我们不谈PCA背后的数学原理,只谈哪些软件能够处理数据,我找到了以下三款 Plink: https: ...

  2. 「群体遗传学实战」第三课: 如何对SNP位点进行过滤

    往期教程 「群体遗传学实战」第一课: 对SNP位点进行注释 「群体遗传学实战」第二课: 画出和文章几乎一样的PCA图 SNP过滤有两种情况,一种是仅根据位点质量信息(测序深度,回帖质量等)对SNP进行 ...

  3. 「Vue实战」武装你的前端项目

    1. 接口模块处理 1.1 axios二次封装 很基础的部分,已封装好的请跳过.这里的封装是依据 JWT import axios from 'axios'import router from '.. ...

  4. 教育界「拼多多」卖课套路解析

    01 跟谁学的引流套路有多野? 如果用 3 个词来概括「跟谁学」的引流课打法,是账号贼多.免费噱头.交叉引流.简单来说就是用超多的账号,加上免费送资料的噱头,将用户拉到不同的社群中,反复触达,不停转化 ...

  5. 怎么查询redis缓存的数据_阿里开发十年写出这份「Redis简明教程」+「Redis实战」请你查收...

    Redis是啥?用Redis官方的话来说就是: Redis is an open source (BSD licensed), in-memory data structure store, used ...

  6. 「Nginx实战」中学到的东西用在面试上,面试官都被怼得哑口无言

    Nginx到底是什么? Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的http://Rambl ...

  7. 「建议收藏」第一人称视角带你走进 Vue 源码世界

    前言 本文不引战,成熟的人应该脱离框架的范畴,而不是纠结谁更好或者谁更不好.有道是黑猫白猫,抓到老鼠就是好猫. 所以本文会带大家读源码.简单易懂,大佬小白都能看明白.并收获益处. 从 new 一个 V ...

  8. springboot redis 刷新时间_「SpringBoot实战」SpringCache + Redis实现数据缓存

    关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...

  9. 「项目实战」一文读懂思科网络设备IOS系统

    今天给大家带来的小知识是一文读懂思科的IOS系统,相信大家都有了解,但是今天呢给大家把完整的流程梳理出来,这样有助于大家记笔记哦! IOS是被用来传送网络服务并启动网络应用的.Cisco路由器的IOS ...

最新文章

  1. 页面是可以这样设计的
  2. 蓝牙-HCI错误码列表
  3. 朱建辉php,朱建辉/laravel-bjyblog
  4. DataTable相关
  5. python writelines_Python文件writelines()方法
  6. sqoop导入与导出总结
  7. halcon联合C#开发--连接大华相机读取二维码附源码
  8. python 文件夹操作_Python之路(第九篇)Python文件操作
  9. 使用jmeter自动化证据切图后预览操作
  10. 教你制作一张漂亮的城市分布图 比如加油站分布地图
  11. 10----编程分苹果
  12. 两个主要问题将决定微信支付成败
  13. 休闲经营的农场小游戏推荐,果蔬连连看h5版游戏玩法技巧
  14. 水塔流量的估计matlab,估计水塔的水流量
  15. 集成ci jenkins_使用jenkins fastlane第1 2部分将ci cd集成到多个环境中
  16. 西南大学计算机考研808真题分享
  17. ndows 10,win10系统 win10系统下载 windows10系统下载-大地系统官网
  18. 腾讯调架构:MIG总裁离任 重点放在平台型业务
  19. java计算机毕业设计汉字幼教系统源码+mysql数据库+系统+lw文档+部署
  20. 电气安装与维修实训设备

热门文章

  1. java 判断fibonacci_Java程序检查给定的数字是否是斐波纳契数
  2. P8196 [传智杯 #4 决赛] 三元组
  3. Flask外部访问服务器最简单的操作
  4. TOEFL战地手记听力FAQ
  5. 《鸟哥的Linux私房菜》chapter7 20180827~20180831
  6. SH7218T拆解手记(4)修改外屏大时钟
  7. 利用反射动态修改 EasyPoi 导出Excel表格标题名称
  8. 华为分析联运活动,助您提升游戏总体付费
  9. 《数》孙溟㠭先生篆刻
  10. HMACSHA加密方法