如何使用CNVkit进行CNV分析

发布时间:2021-09-09 14:53:02 作者:chen
来源:亿速云 阅读:712

本篇内容主要讲解“如何使用CNVkit进行CNV分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用CNVkit进行CNV分析”吧!

CNVkit是一款CNV预测软件,适用于全外显子,目的区域靶向测序等数据的CNV检测,官网如下

https://cnvkit.readthedocs.io/en/stable/

被很多高分文章引用, 示意如下

如何使用CNVkit进行CNV分析

文章发表在PLos上,链接如下

https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1004873

和Excavator类似,CNVKit也将基因组划分为in-target和off-target两部分,流程图示意如下

如何使用CNVkit进行CNV分析

将in-target和off-target区域划分成小的bin区间,统计bin区间内的测序深度,综合考虑GC含量,目的区域的大小和分布密度, 重复元件等因素,对原始测序深度进行校正,然后计算相对对照样本的log2 ratio, 通过segmentation算法来划分segment, 支持cbs, haar, flasso多种segmentation算法。

CNVkit采用python进行开发,使用方便,集成了可视化功能,可以直观的展示分析结果,支持导出多种格式的结果文件,可以很好的与下游软件相结合。采用了模块化的开发思想,按照功能拆分成了独立的模块,示意如下

如何使用CNVkit进行CNV分析

每个功能模块对应一个子命令,为了方便调用,将pipeline的完整功能封装在batch子命令中,只通过这一个命令来运行整个pipeline。整个数据分析的过程可以分为以下几个部分

1.  输入区域文件

对于靶向测序而言,肯定需要输入目的区域的文件,格式为bed, target子命令用于处理目的区域的bed文件,可以添加对应的基因注释等信息,用法如下

cnvkit.py target \
my_baits.bed \
--annotate refFlat.txt \
-o my_targets.bed

除了目的区域in-target,还需要计算off-set区域,也称之为antitarget,  in-target和off-target区域加起来就是基因组上所有可覆盖的区域。二测测序并不能达到100%的覆盖度,基因组上的高重复区域,端粒,着丝粒等区域就无法覆盖,所以cnvkit通过access子命令来计算基因组上可以覆盖到的区域,命令如下

cnvkit.py access \
hg19.fa \
-x excludes.bed \
-o access.hg19.bed

计算出可覆盖的区域之后,减去in-target区域, 就可以得到off-target区域,通过antitarget子命令来实现,代码如下

cnvkit.py antitarget \
my_targets.bed \
-g access.hg19.bed \
-o my_antitargets.bed
2. 计算样本的测序深度

coverage和autobin两个子命令都可以用来计算测序深度,以coverage为例,用法如下

cnvkit.py coverage \
Sample.bam \
my_targets.bed \
-o Sample.targetcoverage.cnn

cnvkit.py coverage \
Sample.bam \
my_antitargets.bed \
-o Sample.antitargetcoverage.cnn

分别统计target和antitarget区域的测序深度信息,输出结果后缀为cnn,是cnvkit中定义的一种格式,专门用来存储测序深度信息。

3. 构建正常基因组的测序分布模型

通过reference子命令来构建正常基因组的测序分布模型,采用对照样本的测序深度,校正GC含量等系统误差。有多个对照样本时,可以将所有的对照样本合并来创建,用法如下

cnvkit.py reference \
*coverage.cnn \
-f hg19.fa \
-o Reference.cnn

当没有对照样本时,软件可以模拟出一个正常的测序深度分布模型,用法如下

cnvkit.py reference \
-o FlatReference.cnn \
-f hg19.fa \
-t my_targets.bed \
-a my_antitargets.bed
4. 计算实验样本相对正常对照的log2 ratio

通过fix子命令计算log2 ratio,用法如下

cnvkit.py fix \
Sample.targetcoverage.cnn \
Sample.antitargetcoverage.cnn \
Reference.cnn \
-o Sample.cnr

输出结果后缀为cnr, 是cnvkit中定义的一种格式,专门用来存储log2ratio的信息。

5. 划分segment, 计算拷贝数

通过segment子命令进行segment的划分,用法如下

cnvkit.py segment \
Sample.cnr \
-o Sample.cns

输出结果后缀为cns, 是cnvkit中定义的一种格式,和SEG格式类似,用来存储CNV分析的结果。接下来还可以通过call子命令,计算每个segment区域的绝对拷贝数,用法如下

cnvkit.py call \
Sample.cns \
-o Sample.call.cns

关于各种文件格式的具体解释可以参考以下链接

https://cnvkit.readthedocs.io/en/stable/fileformats.html

6. 结果可视化

提供了以下3种可视化的子命令

  1. diagram

  2. scatter

  3. heatmap


diagram用于展示单个样本的CNV在染色体上的分布,用法如下

cnvkit.py diagram \
-s Sample.cns \
Sample.cnr

可视化结果如下

如何使用CNVkit进行CNV分析

scatter子命令展示单个样本染色体区域上log2 ratio值的分布,用法如下

cnvkit.py scatter \
-s Sample.cns \
Sample.cnr

可视化结果示意如下

如何使用CNVkit进行CNV分析

heatmap子命令展示多个样本的CNV分布情况,用法如下

cnvkit.py heatmap *.cns

可视化结果示意如下

如何使用CNVkit进行CNV分析

分布运行步骤繁琐,上面的代码可以通过batch一个子命令搞定,用法如下

cnvkit.py batch \
*Tumor.bam \
--normal *Normal.bam \
--targets my_baits.bed \
--annotate refFlat.txt \
--fasta hg19.fasta \
--access access.hg19.bed \
--output-reference my_reference.cnn \
--output-dir results/ \
--diagram --scatter

到此,相信大家对“如何使用CNVkit进行CNV分析”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. 如何使用XML文档进行分析
  2. 如何使用TCGAbiolinks进行生存分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:Android如何仿QQ微信未读消息小红点BadgeHelper

下一篇:怎么通过重启路由的方法切换IP地址

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》