CNVnator是一款CNV检测软件,基于Read-Depth的分析策略,通过对全基因组测序数据进行分析来预测CNV, 源代码保存在github上,网址如下

​https://github.com/abyzovlab/CNVnator​

这个软件的安装比较复杂,我这里直接使用别人装好的docker镜像进行处理,这也是docker的方便之处,直接从源中下载别人已经装好的cnvnator的镜像,代码如下

docker pull diploid/cnvnator

具体的分析步骤如下

1.  EXTRACTING READ MAPPING FROM BAM/SAM FILES

CNVnator中依赖​​ROOT​​这个软件包,这个软件包是专门针对大数据的处理进行开发的,提供了统计分析,可视化,数据存储等一系列功能,基于这个体系可以极大的加快运行速度,所以将原始的信息都存在root文件中,便于分析。

这一步将比对的信息存储到后缀为root的文件中,代码如下

cnvnator -root file.root -tree chr1.bam  -chrom 1

​-tree​​​参数指定输入的bam文件的名称,​​-root​​​文件指定输出的root文件的名称,​​-chrom​​指定需要分析的染色体,默认情况下分析所有的染色体,这里我是测试,只分析了1号染色体。

2.  GENERATING A READ DEPTH HISTOGRAM

这一步是按照固定大小的窗口对基因组进行划分,统计每个窗口内的read depth, 代码如下

cnvnator -root file.root -his 1000 -chrom 1 -d genome_fa_dir

​-his​​​参数指定窗口的大小,单位为bp, ​​-d​​参数指定参考基因组fasta文件所在的目录。

3.  CALCULATING STATISTICS

这一步是必须的,代码如下

cnvnator -root file.root -stat 1000

​-stat​​​指定窗口的大小,和第二步的​​-his​​参数的取值相同。

4. Partition

这一步进行segmentation,代码如下

cnvnator -root file.root -partition 1000

​-partition​​​指定窗口的大小,和第二步的​​-his​​参数的取值相同。

5. Call CNVs

这一步分析每个segment区域的CNV, 代码如下

cnvnator -root file.root -call 1000 > cnv.call.txt

​-call​​​指定窗口的大小,和第二步的​​-his​​参数的取值相同, 输出结果默认打印到屏幕上,这里重定向到文件中。

输出文件的内容如下

使用CNVnator进行CNV检测_归一化

第一列为CNV的类型,包括了deletion和duplication两种类型,第二列为CNV的染色体区域,第三列为CNV的长度,第四列为归一化之后的read depth, 归一化到0-1的范围,第五列到第八列为不同的evalue值,最后一类为q0,  后五列对应的解释如下

使用CNVnator进行CNV检测_docker_02

对于原始的cnv call的输出,还可以通过软件自带的脚本转换为VCF格式,代码如下

cnvnator2VCF.pl cnv.call.txt >cnv.vcf

CNVnator的功能强大,运行速度快,更多用法请参考官方文档。

·end·

使用CNVnator进行CNV检测_归一化_03