使用conifer进行WES的CNV分析

Conifer是一款利用外显子组测序(WES)数据检测拷贝数变异(CNV)的软件,通过SVD奇异值分解降噪,适合检测1kb以上、跨越至少3个外显子区域的CNV。处理流程包括比对参考基因组、计算RPKM值、构建SVD-ZRPKM矩阵及CNV预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欢迎关注”生信修炼手册”!

和xhmm类似,conifer也是一款利用WES的数据来检测CNV的软件。不同的是,xhmm利用PCA算法达到降噪的目的,而conifer则通过SVD奇异值分解的算法来降噪,对应的文章链接如下

https://genome.cshlp.org/content/early/2012/05/14/gr.138115.112.full.pdf

官网如下

http://conifer.sourceforge.net/index.html

该软件的处理步骤示意如下

首先比对参考基因组,得到目标区域的测序深度,这里做了一个特殊的处理,借鉴了RNA_seq中定量的算法,计算了每个目标区域的RPKM值, 得到了所有样本每个目标区域RPKM值的矩阵,然后对矩阵进行标准化,计算z-score值,转换后的值称之为ZRPKM。

对于ZRPKM矩阵,采用SVD进行分解,认为奇异值大的子矩阵为系统噪声,去除奇异值大的子矩阵之后重新构建SVD-ZRPKM矩阵, 然后通过threshold calling算法预测CNV区域,图示如下

绿色线条表示阈值,大于1.5的认为是duplication, 小于1.5的认为是deletion。具体的步骤如下

1. 创建目标区域文件

首先基于芯片的捕获区域,创建目的区域对应的文件,内容如下

每一行代表一个捕获的目标区域,前三列对应目标区域的染色体位置,第四列为对应的基因名称,如果没有则为空。不同的捕获芯片对应的目的区域不同,自己写脚本整理成这种格式即可,下文中该文件称之为probes.txt。

2.  计算目标区域RPKM值

对于每个样本,计算目标区域的RPKM值,用法如下

python conifer.py  rpkm  \
--probes probes.txt \
 --input sample1.bam \
 --output RPKM/sample1.rpkm.txt

输入文件为比对产生的bam文件,生物学重复的输出文件保存在同一个目录下。

3.  计算SVD-ZRPKM矩阵

读取所有样本的rpkm值,进行SVD奇异值分解,构建SVD-ZRPKM矩阵,用法如下

python conifer.py  analyze \
--probes probes.txt \
--rpkm_dir ./RPKM/ \
--output analysis.hdf5 \
--svd 6 \
--write_svals singular_values.txt \
--plot_scree screeplot.png \
--write_sd sd_values.txt

输出文件为hdf5格式的文件,--svd参数指定需要去除的奇异值最大的topN个成分,这个值是需要动态调整的。

4. CNV calling

进行cnv calling, 用法如下

python conifer.py call \
--input analysis.hdf5 \
----threshold 1.5 \
--output calls.txt

输出文件内容示意如下

5. 可视化

对感兴趣的CNV区域进行可视化,用法如下

python conifer.py plot \
--input analysis.hdf5 \
--region chr1:878657-889417 \
--output image.png \
--sample sampleA.rpkm

可视化结果示意如下

conifer用法简便, 适合检测1kb以上的CNV,软件要求CNV至少跨越3个exon区域,所以很短的CNV无法检测出来。

·end·

—如果喜欢,快分享给你的朋友们吧—

扫描关注微信号,更多精彩内容等着你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值