【直播】我的基因组62:用Delly检测SV
人类单体型(Haplotype)及单核苷酸多态性位点(Single Nucleotide Polymorphism, SNP),能够揭示对药物和环境因子的个体反应差异,是将健康和疾病研究深入到分子水平的重要遗传信息。
以前我对全基因组重测续的研究也大多是找到SNV即可。但这次毕竟是我自己的基因,虽然以前没有做过SV,但还是想看看。
SV(结构变异)指基因组水平上大片段的插入、缺失、倒置、易位等序列。
详细的生物学解释,还有图文并茂的讲述大家可以自行阅读下面的课件和综述。人类基因组中很多结构变异(Structure Variation, SV)是正常的,这种良性 SV 不会导致疾病发生。
http://www.mi.fu-berlin.de/wiki/pub/ABI/GenomicsLecture10Materials/structural-variation.pdf
工具也挺多,去omictools搜索可以看到一大把,而且看最新的综述(Structural variation detection using next-generation sequencing data A comparative technical review) 里面也有详细列出这些工具和工具的比较!
插入(Insertion, INS)
缺失(Deletion, DEL)
反转(Inversion, INV)
染色体内部易位(Intra-chromosomal Translocation, ITX)
染色体间易位(Inter-chromosomal Translocation, CTX)
我们就是要从PE150bp的测序数据里面找到上面的5种的现象!
使用Delly检测SV
Delly软件的下载地址为https://github.com/dellytools/delly,下载后可以直接使用,无需安装,同时delly支持多线程运算,只需在运行命令行前加 export OMP_NUM_THREADS=8
我的代码如下:
export OMP_NUM_THREADS=5
bam=/home/jianmingzeng/data/project/myGenome/fastq/jmzeng.filter.rmdup.bam
excl=/home/jianmingzeng/biosoft/delly/delly/excludeTemplates/human.hg19.excl.tsv
genome=/home/jianmingzeng/reference/genome/hg19/hg19.fa
~/biosoft/delly/delly_v0.7.6_linux_x86_64bit call -t DEL -g $genome -o DEL.bcf -x $excl $bam
~/biosoft/delly/delly_v0.7.6_linux_x86_64bit call -t DUP -g $genome -o DUP.bcf -x $excl $bam
~/biosoft/delly/delly_v0.7.6_linux_x86_64bit call -t INV -g $genome -o INV.bcf -x $excl $bam
~/biosoft/delly/delly_v0.7.6_linux_x86_64bit call -t TRA -g $genome -o TRA.bcf -x $excl $bam
~/biosoft/delly/delly_v0.7.6_linux_x86_64bit call -t INS -g $genome -o INS.bcf -x $excl $bam
ls *bcf|while read id ;do bcftools view $id >${id%%.*}.vcf ;done
不大记得耗时多久了,反正时间对我来说无所谓,因为读懂它的结果耗时更长,结果如下:
对检测到的SV进行genomic feature的注释
根据样品检测得到的SV变异在参考基因组上的位置信息,对比参考基因组的基因、CDS位置等信息(一般在gff文件中),可以注释SV变异是否发生在基因间区、基因区或CDS区等。对缺失(DEL)、插入(INS)、反转(INV)3种类型的结构变异注释进行注释!
这里我选择的是Bioconductor 的intansv包!
https://bioconductor.org/packages/release/bioc/html/intansv.html
反正我只会用了软件,会跑流程,至于结果怎么看,我真心不懂,还需要持续学习,估计等过了100讲,我会推出SV的续集,敬请期待~
这个,就后续再介绍咯!
文:Jimmy
图文编辑:吃瓜群众
- 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 数组属性和方法
- Java中多线程的使用(超级超级详细) Thead类的使用 3
- Java Properties集合基础解析
- File 类基础解析3 文件过滤器优化
- 原创 | 我在git merge的时候遇到了冲突,怎么解决?
- protobuffer的前世今生(一)——简介
- protobuffer的前世今生(二)——编码
- Java中多线程的使用(超级超级详细)+多线程的实现原理 2
- protobuffer的前世今生(三)——序列化和反序列化性能比较
- 女生勿扰,只适合男孩子的 Python 爬虫,里面东西不给钱统统白送
- LTP 4来了!
- protobuffer的前世今生(五)——在Java中的两种使用方式之注解模式
- Java File类基础解析 1
- jit即使编译语言调用c++
- java JDBC系列1 JDBC类的简析与JDBC的基础操作
- TRTC Android端开发接入学习之常见问题(十一)