热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

全基因组数据CNV分析简介

欢迎关注”生信修炼手册”!除了利用aCGH和snp芯片来检测CNV之外,也可以通过NGS数据来分析CNV,比如全基因组和全外显子测序。针对全基因组CNV的检测

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

除了利用aCGH和snp芯片来检测CNV之外,也可以通过NGS数据来分析CNV, 比如全基因组和全外显子测序。针对全基因组CNV的检测,还针对开发了一种称之为CNV_seq的测序策略,指的是低深度全基因组测序,只需要5X的测序深度,就可以有效的检测CNV。

本文根据一篇2015年的综述来简单介绍下全基因组CNV分析的策略,文章标题如下

Whole-genome CNV analysis: advances in computational approaches

链接如下

https://www.frontiersin.org/articles/10.3389/fgene.2015.00138/full

根据软件的基本原理,可以分为以下4大类别,图示如下

1. Read-Pair(RP)

RP是最早出现的算法,利用双端测序插入片段长度分布来检测CNV, 也称之为PEM,pair end mapping方法。双端测序插入片段长度分布如下图所示

当插入片段长度过长或者过短时,都代表着基因组发生了结构变异,如上图中的两个阈值,图示如下

以上两幅图来自文献Jan O. Korbel et al.Science 318, 420 (2007)

当计算出来的插入片段长度小于cutoff I时,说明相比reference, 实际检测样本中对应区域插入了部分碱基,相反地,如果计算出来的插入片段长度大于cutoff D时,说明相比reference, 实际检测样本对应区域插入了部分碱基。

受到测序读长的影响,该方法适用于检测中等长度的insertion和deletion, 对过小的插入不敏感,而且比较依赖比对的准确性,无法分析低复杂度的segmental duplication区域。

采用该策略的部分软件列表如下

  1. BreakDancer

  2. PEMer

  3. Ulysses

2. Split-read(SR)

SR方法利用一端能够比对,另外一端比对不上的reads来识别CNV。另外一端比对不上,可能是存在CNV, 通过将单独的reads进行拆分,使其能够正确比对到参考基因组上,拆分的点就是CNV的断裂点。

只利用了单端reasd, 读长进一步受到限制,所以该方法只适用于检测小规模的插入和缺失,采用该策略的部分软件列表如下

  1. Pindel

  2. PRISM

  3. SVseq2

  4. Gustaf

3. Read-Depth(RD)

RD方法利用拷贝数和对应区域测序深度的相关性来进行分析,基本模型是缺失区域的测序深度相对低,而插入区域的测序深度相对高。该算法采用滑动窗口的方式,统计每个窗口内的测序深度分布,然后根据不同窗口测序深度的分布来预测CNV区域,图示如下

上图来自文献Genome Res. 2011. 21: 974-984

类似芯片中的log ratio值,在RD方法中,会根据区域对应的测序深度来判断对应的CNV数目。在该类方法中,滑动窗口的大小对结果影响较大,当窗口很大时,一些长度很短的small  cnv信号就会被掩盖。

相比RP和SR两种方法,RD可以进行CNV分型,明确CNV的数目,RP和SR只能检测断点的位置, 而且RD可以检测大规模的CNV, 是目前较为主流的算法。采用该策略的部分软件列表如下

  1. CNVnator

  2. ERDS

  3. ReadDepth

  4. CNVrd2

4. Assembly(AS)

AS方法利用测序得到的短序列进行组装,将组装的contig与参考基因组进行比较,从而确定发生了结构变异的区域。组装的精确依赖测序读长和算法的准确度,而且组装对硬件资源的消耗特别大,并不是一个理想的CNV检测的算法,这里就不做过多的介绍了。

以上4种是最基本的算法理念,还有很多软件会综合其中的某几种算法来检测CNV, 比如speedseq中集成的lumpy软件,综合利用RP,SR, RD三种方式来检测CNV。

比对准确性是基于NGS的策略检测结果准确的前提,mapping的准确率和二代测序对基因组的覆盖度都会影响到CNV的检测结果,同时在计算测序深度时GC含量差异带来的PCR扩增偏移,也需要进行校正,通过设置对照样本,能够有效的减少系统误差的干扰,更好的进行CNV的检测。

综上所述,每种算法各有其优缺点,综合使用多种策略有助于提高检测结果的准确性和敏感性,同时设置对照样本,可以更加有效的分析拷贝数的变化。

·end·

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

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


推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了解决Facebook脸书面试题中插入区间的方法,通过模拟遍历的方式判断当前元素与要插入元素的关系,找到插入点并将新区间插入。同时对算法的时间复杂度和空间复杂度进行了分析。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
author-avatar
真实的阿凯123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有