13、基因组的拼接原理(转载沈梦圆的博客)

最近学习了一下基因组的拼接原理,以下是我的学习笔记和一些思考。基因组的拼接原理是高通量测序技术的基础知识吧,我个人认为即使不做基 因组拼接工作,也可以学习一下几个主流拼接软件的算法和原理。我主要是学习了两个网上教程,其教程出处为https://github.com/ TGAC/361Division/tree/master/de_novo_2016https://github.com/ lexnederbragt/INF-BIO9120_fall2013_de_novo_assembly/tree/master/presentations

拼接是个啥?

A hierarchical data structure that maps the sequence data to a putative reconstruction of the target.(Miller et al 2010,Genomics 95(6):315-327) 基因组拼接可以类比成一本书被碎纸机碎个稀巴烂,然后用胶水把他们一片片给拼回去的过程。

  • 拼接的过程就像一个黑箱处理过程,reads序列输入,经过拼接黑盒,输出就是基因组拼接好的结果。正确的拼接应该是The right motifs,the correct number of times,in correct order and position。我个人认为是尽可能得还原真实的基因组是拼接的终极目的。
  • 另外,拼接的算法分为试探型和穷举型两种,一般都用试探型算法,因为它更好更快更简单(在绝大多数时候)。穷举型算法局限性强、运行速度 慢、召回率低,并且数据类型不尽相同,因此没有很好的模型适合全部的数据类型。
  • 在拼接之前,我们确保输入的数据是去除接头、污染等的good data,并且要大概知道拼接的原理。最后完成拼接后,要检查拼接结果的可靠性和完整性。

测序技术

测序长度越长,覆盖度越高,带来的拼接结果也会越好。并且根据研究目的的不同,我们使用不同测序技术,产生不同类型的数据,得到不同的测序 信息。

拼接算法

None of which is assessed by length stats.

  • Overlap Layout Consensus 找到重叠区域并且定义他们是key。layout有点难度。这种方法tracks每一条read。Consensus是由reads构建而成的。
  • De Bruijn Graphs
  • OLC VS DE bruijn

拼接实验前

  • 有时候一次测序拼接结果可能很难达到预设的拼接目标,可能需要多次补测样品来完善拼接结果。我们在测序拼接前,需要知道所研究对象的基因 组的大小、倍型、杂合性、GC含量、是否有污染物/ 共生者、数据集的类型、是否线粒体还是叶绿体的细胞器基因组。其实这些内容在测序之前就需要考虑了,下面一些点进行进行较为详细的介绍 :

(1)基因组大小的获取关系到对以后组装结果的大小的正确与否判断;基因组太大(>10Gb),可能会超出了目前denovo组装基因组软件的对机器存 的要求,从客观条件上讲是无法实现组装的。一般物种的基因组大小可以从公共数据库查到。如果没有搜录,需要考虑通过实验(流式细胞仪福尔根 染色/定量pcr/)或Kmer估计法来获得基因组大小。

(2)杂合度对基因组组装的影响主要体现在不能合并姊妹染色体,杂合度高的区域,会把两条姊妹染色单体都组装出来,从而造成组装的基因组偏 大于实际的基因组大小。一般是通过SSR在测序亲本的子代中检查SSR的多态性。杂合度如果高于0.5%,则认为组装有一定难度。杂合度高于1%则很难 组装出来。杂和度估计一般通过kmer分析来做,降低杂合度可以通过很多代近交来实现。杂合度高,并不是说组装不出来,而是说,装出来的序列不 适用于后续的生物学分析。比如拷贝数、基因完整结构。

(3)随着测序对质量要求越来越高和相关技术的逐渐成熟,遗传图谱也快成了denovo基因组的必须组成。

(4)实验设计需要考虑的问题:1.明确我们的生物学问题;2.设计数据处理方案;3.设置实验条件和生物/技术重复数;4.选择测序平台和覆盖度。

为啥拼接挺难的

  • 重复序列
  • 二倍体
  • 多倍性
  • 可供选择的软件多

两个拼接软件

  • A modern assembler-SOAPdenovo2
  • Trinity运行的原理和过程 1 Trinity 如何运作 a. 序列延伸 (inchworm) ——虫子 将 reads切为 k-mers (k bp长度的短片段) 拆分K-mer的目的:节省内存,降低测序错误对拼接的影响;利用Overlap关系对k-mers进行延伸 ( 贪婪算法);输出所有的序列 (“ contigs”)。 b. 构建 de Bruijn graph (chrysalis)—— 成蛹 聚类所有相似区域大于1kbp的 contigs;构图 (区分不同的 “components”); 将reads比对回 components,进行验证 c. 解图,列举转录本 (butterfly)——化蝶 拆分graph 为线性序列;使用reads以及 pairs关系消除错误序列。 2 组装质量评估与去冗余 d. 组装质量: 组装完整性、组装准确性、后续定量准确性、组装冗余度 N50长度,可以初步评估组装质量;但并非越长越好,应该参照相关的研究(同物种或近缘种);通过统计Unigene对近缘种编码基因的覆盖度分, 也可以从整体评估组装质量。 3 注释与其他

组装评估

(1) kmer spectra,可用软件KAT、CEGMA; (2)使用生物学知识去进行评估验证

  • Direct experimental evidence: the reads、Genome size、ploidy、GC content、Symbionts、Plastids、ESTs、cDNAs、peptides、genome walking
  • Indirect experimental evidence: genomes in general(Genes! (They have structure,Repeats),Chromosome macrostructure ,(circular?, number, telomeres, …))、other species(Close relatives: proteins, transcripts, genomes; Distant relatives: single-copy genes,?phylogeny, HGT)

误差和质控

样本的准备和建库:样品未纯化,PCR偏差(没有化学反应是perfect、complete的)

N50并不是那么可靠、敏感,我们要注意。

其他参考资料

https://www.cbcb.umd.edu/research/assembly_primer

时间: 2024-10-26 10:03:11

13、基因组的拼接原理(转载沈梦圆的博客)的相关文章

HTML中META属性详解 转载自 hero_213的博客

HTML中META属性详解 meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码: <head> <meta   http-equiv= "content-Type "   content= "text/html;   charset=gb2312 "> </head>         也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,例如加

前端路由实现原理 - 王汉镇的博客

前端路由的方式有两种 history路由:history.pushState()+popState事件 hash路由:location.hash+hashchange事件 history路由 history API是HTML5新增的API,跟路由有关的两个API是 history.pushState()和history.repalceState() 这两个api都可以操作浏览器的历史记录,而且不会引起刷新.不过前者会向浏览器新增一条历史记录,而后者是直接替换当前的历史记录. 这两个api都接受三

【转载】国内网站博客数据统计选免费Google Analytics还是百度统计

[转载]国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具,当然现在也一直在用.Google Analytics凭借其强大的功能和超强的稳定性.快速的反应能力.广泛的数据应用功能,受到了广大站长的追捧. 使用Google Analytics的站长们应该不在少数吧,每天登录Google Analytics免费网站上查看网站的流量也是我们这些站长们必须做的事情,认真分析Google Analytics当中的数据信

为什么原创博客被认为是转载?对51cto博客有点小失望

寒假时候,打算从博客园转移到51cto博客,于是满心欢喜的把几篇博客转接到这边来,以后打算长此在这边发表博文.可是今天发现了"原创博客文章被判为转载"扣除了四次.那么我有几个问题 1.为何我的原创文章只有3篇,会被扣除4次? 2.为何原创文章被判定为转载,我在其他博客上面发表的,不能拿到这边来吗. 3.被判定为转载的文章, 十二生肖查询网页版制作(php) 今天无聊做了一个十二生肖查询器: 预览网址效果:http://hongxing01.hktd02u.me48.com/03Sxcx

MD5算法在PB中的实现(转载自 - 阿多米 - 博客园)

注:转载请写明出处.本文转载自--阿多米,原链接:http://www.cnblogs.com/zzjder/archive/2008/10/23/1317505.html 目的是防止原链接失效,好文章要保存起来. MD5算法自从1991开发出来以后广泛用于数字签名和加密解密领域.目前使用PB外的语言可以较为简单地实现了MD5加密,使用PB来实现的比较鲜见,这可能有如下两方面的原因:一,PB在位运算方面未提供直接使用的函数,要实现位运算比较麻烦:二,在PB(PB10之前的版本)中无法直接获取字符

来自转载小任猿博客 二十三个设计模式导图

创建型 1. Factory Method(工厂方法) 意图: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.Factory Method 使一个类的实例化延迟到其子类. 适用性: 当一个类不知道它所必须创建的对象的类的时候. 当一个类希望由它的子类来指定它所创建的对象的时候. 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候. 2. Abstract Factory(抽象工厂) 意图: 提供一个创建一系列相关或相互依赖对象的接口,

.Net 为什么叫.Net 转载自 jerrylsxu 的博客

微软开发.NET Framework是在20世纪90年代后期,最初是叫做“下一代Windows服务”(Next Generation Windows Services 简称 NGWS). 那么为什么微软会选择.NET这个名字呢? 这确实是有点神秘,但下面的答案是我到目前为止认为最好的解释: 1).NET是由微软营销人员提出的,认为它代表着“网络”技术,同时Sun公司的营销人员也提出了他们的主题:“ 网络就是计算机“.当时“Dot COM”成为了互联网的代名词,而“Dot Net”则是对这个词的扩

WinForm 分辨率自适应--转载自博雅居博客

我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观.实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可.因为窗体上控件的位置和大小是相对于自己所在的窗体的,也就是所谓的窗口坐标. 在这里我们只考虑相对于自己窗体的窗口坐标更简单,也就是成比例变化.为了多个窗体共用,我在这里创建一个类AutoSizeFormClass ,1.使用它去记录窗体和其控件的初始位置和大小,2.判断窗体中的控件是否为容器控件,如果

转载自jguangyou的博客,XML基本属性大全

android:layout_width 指定组件布局宽度 android:layout_height 指定组件布局高度 android:alpha 设置组件透明度 android:background 设置组件背景颜色 android:clickable  设置组件是否可以激发单击事件 android:contentDescription  设置组件的描述信息,在界面上不显示,可以用来存储一些信息 android:drawingCacheQuality  设置组件所使用的绘制缓存的质量 and