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参数的取值相同, 输出结果默认打印到屏幕上,这里重定向到文件中。
输出文件的内容如下
第一列为CNV的类型,包括了deletion和duplication两种类型,第二列为CNV的染色体区域,第三列为CNV的长度,第四列为归一化之后的read depth, 归一化到0-1的范围,第五列到第八列为不同的evalue值,最后一类为q0, 后五列对应的解释如下
对于原始的cnv call的输出,还可以通过软件自带的脚本转换为VCF格式,代码如下
cnvnator2VCF.pl cnv.call.txt >cnv.vcfCNVnator的功能强大,运行速度快,更多用法请参考官方文档。
·end·