拷贝数变化CNV分析神器:CNVpytor简介
概要
- 根据RD(Read Depth)来检测CNV(copy number variations)和CNA(copy number alterations)
- 是CNVnator的进化版
- 用SNPs信息里的BAF(B-allele frequency) likehood 作为验证CNV和CNA的首要证据
- Python内核,所以该工具可以在Google Colab, Jupyter Notebook等平台运行
介绍
CNV分析里比较常用到的一款工具是10年前开发的CNVnator。因为这款工具的高精度和高感度受到广泛的欢迎和应用。CNVpytor就是基于这款工具开发的,基于Python内核,强化了CNVnator的可视化,模块化,功能和计算能力。CNVpytor用到了RD和BAF信息,可以更加准确的计算CNV和CNA。
结果
RD信号分析
CNVpytor继承了CNVnator的RD信号分析功能。这个步骤大概包含了一下几步。
- 读取拼接数据(BAM,SAM,CRAM)的RD,合并RD (图1.A)
- 根据GC含量进行GC矫正(图1.A & D)。该程序自带人类基因组GRCh37, GRCh38的GC数据,如果需要分析的不是人类基因组的话需要另行计算。具体操作会另外写一篇文章。
- 用mean-shift算法计算出CNV (图1.A)
图.1 核心算法的步骤
-
A: 先以100bp为单位进行数据处理和分析,Binning步骤里的长度支持用户指定。然后GC矫正,Mean-shift计算出CNVs
B:根据SNPs, Indels计算出BAF来估计杂合度Heterozygous variants(HETs)。二倍体物种的话BAF的分布会已0.5位中心散开分布。
C:根据计算出来的BAF我们可以看出符合高斯分布。
D:一个GC矫正的例子,GC含量越高,RD信号会越强。
E:这是一个分析的实例(NA12878)。上半部分是RD信号,下面是BAF比例分布。明显看出中间的一段发生了倍数变化。
再举一个例子,如图2所示,可以通过可视化CNVpytor结果来看出是Deletion,还是Duplation还是LOH
图.2 CNVpytor结果可视化
总结一下,整个分析流程可以参照图.3。可以理解成分成独立的两步,一步是图3左边,分析BAM数据里的RD,另外一步是图3右边, 分析VCF数据里的BAF。其实功能和另外一篇文章里R平台的VcfR有点类似。但是功能更加强大,是专业的CNVs分析工具。
图.3 分析流程图
最后可以根据自己的格式需求导出数据,并同时得到可视化结果。CNVpytor也可以被当作Python的一个包在各种平台上简单安装和操作。之后会专门花篇幅整理如何On Command或者On Python来操作这个工具。图4是另外一个例子,可以看出颜值很高。CNVpytor不仅支持分染色的分析,也支持全局分析和可视化操作。
图.4 分析示例
流程和思路都理出来了,你以为可就以自己看着官方github一步一步操作了?道理都懂,却活不好这一生。首先安装,环境构建就成问题(大概率),这一点就继承了CNVnator的缺点。然后非人类基因组得自己整合参考序列,自定义参考序列的话操作和官方说明会有不一样。不过,没有关系,Jason会在后续文章里给出完整的操作手册。