从WGS测序得到的VCF文件里面提取位于外显子区域的【直播】我的基因组84
时间:2022-05-03
本文章向大家介绍从WGS测序得到的VCF文件里面提取位于外显子区域的【直播】我的基因组84,主要内容包括首先要下载并且得到人类基因组的外显子坐标记录文件、从VCF文件里面根据BED文件进行抽提、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
首先要下载并且得到人类基因组的外显子坐标记录文件
这里我用的参考基因组版本仍然是hg19,所以去CCDS数据库里面下载对应版本,并且格式化成BED文件。
wget ftp://ftp.ncbi.nlm.nih.gov/pub/CCDS/archive/Hs37.3/CCDS.20110907.txtcat CCDS.20110907.txt |perl -alne '{/[(.*?)]/;next unless $1;$exons=$1;$exons=~s/s//g;$exons=~s/-/t/g;print "$F[0]t$" foreach split/,/,$exons;}' >hg19exon.bed
制作好的bed格式的人类全部的exon区域坐标文件如下:
1 801942 8024331 861321 8613921 865534 8657151 866418 8664681 871151 8712751 874419 8745081 874654 8748391 876523 8766851 877515 8776301 877789 877867
从VCF文件里面根据BED文件进行抽提
这里就不自己造轮子了,用现成的工具,而且是我们用过很多次的SnpEff套件,代码如下
cat snp.vcf | java -jar ~/biosoft/SnpEff/snpEff/SnpSift.jar intervals hg19exon.bed >hg19exon.snp.vcfcat indel.vcf | java -jar ~/biosoft/SnpEff/snpEff/SnpSift.jar intervals hg19exon.bed >hg19exon.indel.vcf
可以把我经由GATK best practice流程得到的SNP/INDEL记录的VCF文件都进行提取,用代码 wc -l *vcf
简单统计一下提取的效果,如下:
1042 hg19_exon.indel.vcf 25067 hg19_exon.snp.vcf 754755 indel.vcf 3784343 snp.vcf
很明显可以看到,位于外显子区域的mutation毕竟是少数,这时候还可以继续看看那些在外显子上面却没有被dbSNP数据库记录的mutation还有多少:
cat hg19_exon.snp.vcf |grep -v "^#"
|cut -f 3
|grep '.'
|wc
仍然有2315个SNV在外显子区域,却没有被dbSNP数据库记录,可能是我的家族特异性的位点,属于正常的基因型多样性,也有极小的可能性这些位点是后发突变,也就是通常癌症研究领域的somatic mutation 。
用下面的代码可以简单浏览一下这些在外显子上面的未知突变的情况。
cat hg19_exon.snp.vcf |perl -alne '{print if $F[2] eq "."}' |less -Scat hg19_exon.indel.vcf |perl -alne '{print if $F[2] eq "."}' |less -S
- 不给“爸爸”添麻烦 - iTOP iOS 动态库改造
- 移动SEO分享:php自动提交复合型Sitemap到百度搜索
- 《Android外部存储》
- Android JNI出坑指南
- 《iPhone X ARKit Face Tracking》
- 结合标签广告,定制一个QQ邮箱订阅
- SecureCRT全局发送相同命令,快速抓取服务器信息的方法
- [不定期更新]简单的shell脚本练习实例
- 超简单的MySQL主从复制配置步骤
- 解决Centos下vsftp无法上传文件的问题,附vsftp配置详解
- 为iFrame添加动态载入效果,提高用户体验
- 分享超炫的表白页面和爱的纪念日源码
- 分享WordPress Mobile Pack汉化精简版及隐藏指定插件更新提示的方法
- Tomcat重启脚本For Windows
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- slenium模拟登陆知乎2020
- Android两种轮询的实现方法
- 汉诺塔问题
- Android实现雷达View效果的示例代码
- Android Studio 创建自定义控件的方法
- Android实现轮询的三种方式
- Flutter 状态管理的实现
- Android FTP服务器上传文件攻略(代码详解)
- Android 集成 google 登录并获取性别等隐私信息的实现代码
- android通过servlet上传文件到服务器
- 面向对象语言的三大特征: 封装 继承 多态(一)——封装
- Android EditText随输入法一起移动并悬浮在输入法之上的示例代码
- 突击并发编程JUC系列-并发容器ConcurrentHashMap
- android通过servlet服务器保存文件到手机
- Android开发疫情查询app(实例代码)