CNV简介和分析工具

举报
benymorre 发表于 2019/05/27 18:58:43 2019/05/27
【摘要】 CNV的全称是Copy number variation ,是指在不同的人的基因组上出现的大片段的拷贝数增加或缺失,一般是5kb 以上的片段。在人类的染色体上,各个基因是线性的形式排列在染色体上, 比如说正常的一个染色体包含了A-B-C-D-E-F 这几个基因,如果D基因发生了拷贝数增加。那么该染色体的形式就是A-B-C-D-D-E-F了,这种情况在肿瘤病人的基因组中比较常见。因为肿瘤细胞的...


CNV的全称是Copy number variation ,是指在不同的人的基因组上出现的大片段的拷贝数增加或缺失,一般是5kb 以上的片段。


在人类的染色体上,各个基因是线性的形式排列在染色体上, 比如说正常的一个染色体包含了A-B-C-D-E-F 这几个基因,如果D基因发生了拷贝数增加。

那么该染色体的形式就是A-B-C-D-D-E-F了,这种情况在肿瘤病人的基因组中比较常见。因为肿瘤细胞的基因组是很不稳定的,在细胞分裂,染色体复制的时候容易出错,就会产生拷贝数变异。


对于NGS(Next generation sequencing)产生的数据,可以通过序列比对,然后根据不同基因所在区域的测序深度估计CNV是否存在。


目前对于基因组的测序,都是通过打断后,进行扩增或杂交,再进行建库进行测序的,发生拷贝数变异的区域,测得的深度会与正常的区域有比较明显的区别。

比对的原理如下:


33.PNG


将短片段的reads 回贴到参考基因组上, 确定它们的位置,产生BAM文件(reads的堆叠信息)或者pileup文件(碱基的堆叠信息)


可视化BAM文件,采用BamView (http://sanger-pathogens.github.io/Artemis/BamView/ )   或者IGV,效果如图:


11.png

注: 该图显示的是测序数据在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比对信息产生的测序深度(图片上方的曲线)示意图:22.PNG




对于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


作图结果如下:

ss.PNG


tt.PNG


另外一个作图工具 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包。

主要有以下几步:

  1. 创建bed 

  2. 计算RPKM (输入数据是bed和bam文件)

  3. 进行CNV的分析和作图


参考 http://conifer.sourceforge.net/tutorial.html


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。