短序列组装Sequence Assembly(转载)

转载:http://blog.sina.com.cn/s/blog_4af3f0d20100fq5i.html

短序列组装(Sequence assembly)几乎是近年来next-generation sequencing最热门的话题。简单来说,就是把基因组长长的序列打断(shotgun sequencing),因为我们不知道基因组整条序列是如何排列(成一条链,最后成为一条染色体)组合(如何区分不同染色体)的,而我们又无法实现一次 把整条长序列完整测序(现在有单子测序可能是一个新的sunlight)。然后,我们通过算法,计算机的帮助,把这些短的序列组装起来成为一条完整有序的序列。

就好比我们有这样一句话:

it
is just a hypothesis, so don‘t be seriously!

假设,我们现在不知道这句话到底是什么,就像我们有一个box,我们抽到一张纸,但没打开,我们把这张纸撕成pieces,当然可能还发生了变化,所有的空格和标点都消失了(魔术!)我们得到:

itis ypo stah the sodo eriou siss ju ntbes sly……

因为我们测了几次,为了增加覆盖度,这样我们能通过高覆盖度而提高置信度:

itis ypo stah the sodo eriou siss ju ntbes sly tis yopth sodon
beser beser ssod iti sju……

另外,我们又发明了一种称作为paired-ends的序列测序方法,即两头定长,中间插入片段一定的序列,像这样:

iti*****ahyp
sju*****pot the*****don sod*****ser bes*****sly ……

这样我们根据如下图的方法,我们可以把这句话拼回来:

itisjustahypothesissodontbeseriously

但它不是最终结果,我们根据我们的现有的语法习惯,我们给它们加上空格(gap)和标点(遗漏的关键东西),我们能够还原原话!

第一:介绍一下组装的方法:
方法一:对序列进行组装,如果是重测序,可以用MAQ进行组装:Map to reference genome
方法二:如果是对新物种进行(de novo)测序,用velvet进行组装:De novo
assembly
第二:组装的原理和流程图:

方法一和方法二的区别是有无参考基因组(reference genome):下面是有参考基因组的一个结果显示

Mapping short reads to a reference
Eland
aligner for Illumina data
alignment policies:
•?allows up to 2 mismatches/alignment
•?non-unique alignments are discarded
Maq
•?quality aware - takes seq quality into
  account
•?allows non-unique alignments
Index methods
•?reference genome is loaded into active
 memory as k-mers
•?very fast alignments
•?SOAP
•?Bowtie
SNP detection, paired-end mapping, RNA-seq, ChIP-seq, etc.

Analysis depends on application
Mapping to reference genome
•?useful for interrogating the “known” genome
•?RNA sequencing
•?ChIP sequencing
•?SNP detection (targeted and whole-genome)
•?methyl-seq
•?CNV detection (sometimes)
De novo assembly
•?no genome sequence
•?unbiased ascertainment of variation in
  known genome by whole-genome reseq

第三:short reads alignment by MAQ

第四:velvet示意图:

通过上述两种方法可以完成高通量短序列数据的组装,但事实它并不简单,因为基因组中含有大量的重复序列(Repeats),多态性变异(Polymorphism),测序错误(Sequencing
error),这三个方面就是组装过程中出现组装错误的主要来源.

参考资料:http://blog.sina.com.cn/s/blog_4860086b0100dnos.html

http://seqanswers.com/forums/showthread.php?t=1024

时间: 2024-10-02 08:39:40

短序列组装Sequence Assembly(转载)的相关文章

简单DNA序列组装(贪婪算法)

生物信息学原理作业第四弹:DNA序列组装(贪婪算法) 原理:生物信息学(孙啸) 大致思想: 1. 找到权值最大的边: 2. 除去以最大权值边的起始顶点为起始顶点的边: 3. 除去以最大权值边为终点为终点的边: 4. 重复上述步骤,得到所有符合条件的边: 5. 拼接得到的边: 6. 加入孤立点(如果有). 附上Python代码,如果有问题我会及时更正(确实不太熟算法) 简单DNA序列组装(贪婪算法) 转载请保留出处! 1 # -*- coding: utf-8 -*- 2 """

【BZOJ1345】[Baltic2007]序列问题Sequence 贪心+单调栈

[BZOJ1345][Baltic2007]序列问题Sequence Description 对于一个给定的序列a1, …, an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列.这一操作的代价是max(ai,ai+1).进行n-1次该操作后,可以得到一个长度为1的序列.我们的任务是计算代价最小的reduce操作步骤,将给定的序列变成长度为1的序列. Input 第一行为一个整数n( 1 <= n

【BZOJ 1345】 [Baltic2007]序列问题Sequence

1345: [Baltic2007]序列问题Sequence Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 618  Solved: 307 [Submit][Status][Discuss] Description 对于一个给定的序列a1, -, an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列.这一操作的代价是max(ai,ai+1).进行

单调栈 BZOJ1345 [Baltic2007]序列问题Sequence

1345: [Baltic2007]序列问题Sequence Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 899  Solved: 471[Submit][Status][Discuss] Description 对于一个给定的序列a1, -, an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列.这一操作的代价是max(ai,ai+1).进行n-

UML之序列图(Sequence Diagram)

类图描述的是类之间的静态关系,而序列图展示的是对象之间的沟通方法,描述运行时的交互关系. OOP编程语言里面合理的直接交互方式只有一种,方法调用(Event通讯是间接的).所以序列图也可以 理解为方法调用交互图.方法调用有四个元素,参与者(两个,调用者和被调用者),方法名称,输入 和输出. 参与者 参与者用一个Lifeline来表示,图像为一个矩形外加底部的一条竖线.矩形里面显示对象名,格式为 name:ClassType的样式,都为可选项,Martin Fowler推荐a Handler的格式

bzoj1345[Baltic2007]序列问题Sequence*

bzoj1345[Baltic2007]序列问题Sequence 题意: n个数,合并ai和ai+1可以得到max(ai,ai+1),代价为max(ai,ai+1).问合并n-1次最小代价为多少.n≤1000000. 题解: (来自题解,因为我不知道为什么这样做)维护一个单调递减栈.对于每个加入的元素,若加入后不满足单调性质,则让其与栈顶-1的元素比较:如果加入的数大,则合并栈顶和栈顶-1的数(把栈顶去掉),费用为栈顶-1:否则合并当前与栈顶的数(把栈顶去掉),费用为当前数.重复上述操作,直到满

Oracle修改序列(Sequence)起始值的方法

Oracle修改序列(Sequence)起始值的方法 Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多. 但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来修改:alter sequence sequencename start with xxxxxxxx.但是,在Oracle DB中,修改序列没有这样的语法.下面介绍几种修改方式: 1.先删除序列,然后重新创建.不过这不是当前要讲的重点.这个方法比较暴

Tablet:Next Generation Sequence Assembly Visualization

Tablet is a lightweight, high-performance graphical viewer for next-generation sequence assemblies and alignments Download Tablet : Information & Computational Sciences   http://ics.hutton.ac.uk/tablet/download-tablet/ Tablet features: High-performan

【转】Python数据类型之“文本序列(Text Sequence)”

[转]Python数据类型之“文本序列(Text Sequence)” Python中的文本序列类型 Python中的文本数据由str对象或字符串进行处理. 1.字符串 字符串是Unicode码值的不可变序列.字符串字面量有多种形式: 单引号:'允许嵌入"双"引号' 双引号:"允许嵌入'单'引号" 三引号:'''三个单引号''', """三个双引号""" 说明: a) 三引号的字符串可以跨越多行,所关联的空