CNV简介和分析工具
CNV的全称是Copy number variation ,是指在不同的人的基因组上出现的大片段的拷贝数增加或缺失,一般是5kb 以上的片段。
在人类的染色体上,各个基因是线性的形式排列在染色体上, 比如说正常的一个染色体包含了A-B-C-D-E-F 这几个基因,如果D基因发生了拷贝数增加。
那么该染色体的形式就是A-B-C-D-D-E-F了,这种情况在肿瘤病人的基因组中比较常见。因为肿瘤细胞的基因组是很不稳定的,在细胞分裂,染色体复制的时候容易出错,就会产生拷贝数变异。
对于NGS(Next generation sequencing)产生的数据,可以通过序列比对,然后根据不同基因所在区域的测序深度估计CNV是否存在。
目前对于基因组的测序,都是通过打断后,进行扩增或杂交,再进行建库进行测序的,发生拷贝数变异的区域,测得的深度会与正常的区域有比较明显的区别。
比对的原理如下:
将短片段的reads 回贴到参考基因组上, 确定它们的位置,产生BAM文件(reads的堆叠信息)或者pileup文件(碱基的堆叠信息)
可视化BAM文件,采用BamView (http://sanger-pathogens.github.io/Artemis/BamView/ ) 或者IGV,效果如图:
注: 该图显示的是测序数据在hg19 chr17: 7571200 - 7580800 之间的reads堆叠信息,蓝色横线即为reads(“chr17" 未在图中展示)
目前检测CNV的软件有很多,比较常见的是CNVnator或cnvkit, 当然最新版本的GATK( Genome Analysis ToolKit ) 也已经能够检测CNV了。
参考: Whole-genome CNV analysis: advances in computational approaches 这篇文献
在基因组上,不同区域比对上的reads是不一样的,所以测序深度不一样,可以据此绘制测序深度图,由于某些实验方法,GC含量高的区域更容易捕获到更多DNA片段,产生的reads更多,所以需要对GC含量高的基因组区域进行一定的矫正。
以下展示的是未矫正的Reads比对信息产生的测序深度(图片上方的曲线)示意图:
对于CNV的分析一般是从bam文件开始,以下是采用samtools 截取某些区域产生更小的BAM的方法:
samtools view -h test_A.bam chr17:7572800-7600000 > test.sam samtools view -bS test.sam | samtools sort - -o test.bam samtools index test.bam
以下是对某些区域的测序深度作图的方法
samtools depth -r chr10:123237000-123360000 -d 10000000 -a test_A.bam > results.cov samtools depth -r chr17:7572800-7600000 -d 10000000 -a test_A.bam > results_1.cov ## 采用以下R脚本 #!/usr/bin/env Rscript opts <- commandArgs(TRUE) dep.data <- read.table(opts[1] , header=FALSE, sep="\t", na.strings="NA", strip.white=T RUE) colnames(dep.data) <- c("Chr", "locus", "depth" ) library(lattice, pos = 0) pdf("res_1.pdf", width= 20, height = 8) xyplot(depth ~ locus, type="p", pch=16, auto.key=list(border=TRUE), par.settings=simple Theme(pch=16), scales=list(x=list(relation='same'), y=list(relation='same')), data=dep. data, main="depth by locus - Chr10 (Test_Sample)") dev.off() ## R脚本使用方法 Rscript test.R results.cov
作图结果如下:
另外一个作图工具 ngsplot
https://github.com/shenlab-sinai/ngsplot
附录(samtools安装方法和CoNIFER使用说明)
查看系统版本信息
cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04 LTS"
安装samtools等
apt-get install samtools pip2 install numpy pip2 install tables pip2 install pysam pip2 install matplotlib
查看python版本信息
python –version Python 2.7.15rc1
CoNIFER是一个检测外显子数据CNV的工具,采用的是奇异值分解的方法,该分析工具依赖于以上的PyTable, Numpy, Matplotlib, Pysam这些python包。
主要有以下几步:
创建bed
计算RPKM (输入数据是bed和bam文件)
进行CNV的分析和作图
参考 http://conifer.sourceforge.net/tutorial.html
- 点赞
- 收藏
- 关注作者
评论(0)