前言

"龙星计划"始于2002年,是计算机科学技术学术交流系列活动,组织一批在美国学术界已有成就、有一定地位的杰出海外华人教授回国授课,就某一领域,系统地讲授一门美国研究生课程。

2017年龙星计划《生物信息学》课程将在7月31日-8月4日于哈尔滨工业大学举行,课程特邀美国卡内基梅隆大学Jian Ma教授,系统讲授主题为"Recent Algorithms for Genomic Big Data"的系列课程。本期课程由哈尔滨工业大学承办,面向全国招收学员150名。

小编有幸能参加学习,并为大家带来了其中的学习内容小结,让我们来看一看第一天的学习内容吧。


1 序列比对 


首先了解什么是序列数据。

2017龙星课程系列(一)_Java

序列数据的说明:http://en.wikipedia.org/wiki/FASTQ_format


短序列映射:

2017龙星课程系列(一)_Java_02


以搜索GATTACA位置示例:

2017龙星课程系列(一)_Java_03


1 序列比对原理 


2017龙星课程系列(一)_Java_04


何谓相似性(similar):序列a与b之间的编辑距离(Edit distance)=将a转化为b所需以下操作的最少操作数:1、突变(替换)一个碱基;2、删除一个碱基;3、插入一个碱基;例如:

2017龙星课程系列(一)_Java_05


参数:1、”gap”表示插入一个“-”的代价,表示一个插入或缺失;2、cost(x,y)表示将x与y进行比对的代价,cost(x,x) = 0 and cost(x,y) = 错配处罚(mismatchpenalty)。

目标:通过发现最低代价比对(lowest cost alignment);比对代价(Cost of analignment)定义为sum of the cost(x,y) for the pairs of characters that are aligned + gap × number of - characters inserted.


序列比对得分函数:

2017龙星课程系列(一)_Java_06

2017龙星课程系列(一)_Java_07


TheNeedleman-Wunsch Matrix

2017龙星课程系列(一)_Java_08


TheNeedleman-Wunsch Algorithm

2017龙星课程系列(一)_Java_09

2017龙星课程系列(一)_Java_10

2017龙星课程系列(一)_Java_11

1 局部匹配问题 


2017龙星课程系列(一)_Java_12


基于索引的局部匹配:

2017龙星课程系列(一)_Java_13

SuffixArrays

对每个基因组后缀进行排序:

2017龙星课程系列(一)_Java_14


为参考基因组编索引:Suffix Array

按照字典编纂的顺序存储序列后缀起始位置的数组,前缀相同的后缀分在一起。

2017龙星课程系列(一)_Java_15

搜索索引:

2017龙星课程系列(一)_Java_16

2017龙星课程系列(一)_Java_17


总运行时间:O(m log n),更复杂,但更快;查询循环32次;

查询数组速度快,但需要时间构建,一次运行,永久使用。

为参考基因组编好索引并存入数组中,通过序列比对算法将目标序列比对到参考基因组上,从而实现序列的组装拼接。



本文中的图片,均来自授课老师的讲课教材,感谢授课老师的精彩的课程安排与无私的分享。感谢哈工大的老师及工作人员在课程期间的精心准备与辛苦组织,提供了我们一个非常棒的学习机会。规格严格,功夫到家!!!