当前课程知识点:算法设计与分析 >  6 Dynamic Programming >  6.4 RNA Secondary Structure >  RNA Secondary Structure

返回《算法设计与分析》慕课在线视频课程列表

RNA Secondary Structure在线视频

RNA Secondary Structure

下一节:Sequence Alignment

返回《算法设计与分析》慕课在线视频列表

RNA Secondary Structure课程教案、知识点、字幕

再来看一下RNA次级结构问题

RNA记录了生命的密码

它可以表达成

一个由碱基构成的字符串B=b_1b_2...b_n

碱基共有四种

记为{ A, C, G, U }

RNA是一个单股的结构

决定它特征的

首先是碱基的排列顺序

然后就是它的次级结构

RNA会回转回来

元素之间构成碱基对

RNA的这种结构

对于理解分子行为至关重要

比如 如下的RNA序列

通过碱基配对的方式形成如下的结构

下面我们给出次级结构的定义

它是RNA序列中碱基

按照某些规则进行配对的集合S

配对需要满足几条基本准则

第一条 称为Watson-Crick准则

A-U, U-A, C-G, G-C是可以进行配对的

第二个准则是没有急促的弯转

这里指的是任何的一个配对(b_i, b_j)∈S

它们之间至少间隔4个元素

也就是i

第三个准则是配对不能够有交叉

如果(b_i, b_j)和(b_k, b_l)是两组配对

那么它们的顺序不能够有交叉

不能够有i

生物学中一个通常的假设

RNA分子形成具有最优自由能的次级结构

自由能可以有配对的碱基对数量来近似

我们的目标就是给定一个RNA分子

B=b_1b_2...b_n

求一个次级结构S

最大化配对的碱基对数量

下面来看几个例子

用红色的虚线表示配对的碱基对

第一个例子是合法的次级结构

满足我们的三条准则

第二个例子是不合法的

因为这里我们注意到

G和C标示红色的这一对

它们中间只间隔了3个碱基

是急促的弯转

再来看第三个例子

它也不是一个合法的次级结构

因为这里出现了交叉的碱基对

按照动态规划的想法

我们尝试把问题分为n个阶段

在j这个阶段定义OPT(j)

是考虑碱基序列b_1b_2...b_j

所能得到的最大匹配数量

比如在这样一个例子中

如果最优解中碱基t和n匹配

因为碱基对不能够交叉的准则

那么问题被分为两个子问题

一个是要去求从1到t-1

对应的最优次级结构

另一个要求t+1到n的最优次级结构

第一个子问题对应的目标值就是OPT(t-1)

但是 对于第二个子问题来说

它不满足我们所定义的最优结构

我们可以把刚才的想法进一步细化

得到了下面的结构

定义OPT(i, j)是考虑序列

从b_ib_i+1...b_j时所对应的最优值

我们还是分几种情况来讨论

第一种情况

如果i≥j-4

根据不能够急促弯转的要求

在这个范围内没有任何的碱基配对

目标值为零

第二种情况

碱基bj没有获得配对

那么OPT(i, j)=OPT(i, j-1)

最后一种情况

最优解中碱基b_j和某一个碱基b_t配对

因为有碱基对不能够交叉的限制

那我们可以把问题分为两段

第一段从i到t-1这段

第二段从t+1到j-1这段

对应的目标值OPT(i, j)为

b_j和b_t匹配

得到了一个匹配

加上第一段对应的目标值OPT(i, t-1)

再加上第二段的目标值OPT(t+1, j-1)

那么到底j和哪个碱基配在一起呢

我们遍历所有的可能

最优解一定是其中的最大值

那么我们按照什么顺序来求解子问题呢

我们先去求最小区间对应的最优值

下面就可以给出

RNA次级结构问题的

动态规划算法的伪代码

它有两重循环构成

k从5到n-1

i从1到n-k

由动态规划基本方程

我们依次计算M[i,j]

最后返回M[1,n]

即为问题的最优值

循环的次数是O(n^2)

每次循环需要t从i到j-4

计算动态规划基本方程

因为按照区间从小到大的顺序计算

因此每次的运算时间都是O(1)的

总共的运行时间是O(n^3)

总结一下我们学习过的动态规划算法

首先我们要刻画问题的结构

把问题进行阶段的划分

定义最优解的结构

建立动态规划基本方程

然后递归求解问题的最优值

最后可以从求解的信息

返回问题的最优解

通过几个例子

我们给大家展示了

一些常用的技术

比如在加权的区间排序中

用变量是0-1选择的

在分段最小二乘问题中

变量是多元选择的

背包问题中增加了一个新的变量

在RNA次级结构问题中

我们对于一系列区间

建立动态规划基本方程

在动态规划算法的设计分析中

我们用两种方式

一种是从前向后

一种是从后向前

这两种方式没有优劣之分

可根据问题结构的不同

或个人的喜好

采用不同的方式

算法设计与分析课程列表:

1 Introduction of Algorithm

-1.1 Introduction

--Introduction

-1.2 A First Problem: Stable Matching

--A First Problem: Stable Matching

-1.3 Gale-Shapley Algorithm

--Gale-Shapley Algorithm

-1.4 Understanding Gale-Shapley Algorithm

--Understanding Gale-Shapley Algorithm

-Homework1

-Lecture note 1

--Lecture note 1 Introduction of Algorithm

2 Basics of Algorithm Analysis

-2.1 Computational Tractability

--Computational Tractability

-2.2 Asymptotic Order of Growth

--Asymptotic Order of Growth

-2.3 A Survey of Common Running Times

--A Survey of Common Running Times

-Homework2

-Lecture note 2

--Lecture note 2 Basics of Algorithm Analysis

3 Graph

-3.1 Basic Definitions and Applications

--Basic Definitions and Applications

-3.2 Graph Traversal

--Graph Traversal

-3.3 Testing Bipartiteness

--Testing Bipartiteness

-3.4 Connectivity in Directed Graphs

--Connectivity in Directed Graphs

-3.5 DAG and Topological Ordering

--DAG and Topological Ordering

-Homework3

-Lecture note 3

--Lecture note 3 Graph

4 Greedy Algorithms

-4.1 Coin Changing

--Coin Changing

-4.2 Interval Scheduling

--Interval Scheduling

-4.3 Interval Partitioning

--Interval Partitioning

-4.4 Scheduling to Minimize Lateness

--Scheduling to Minimize Lateness

-4.5 Optimal Caching

--Optimal Caching

-4.6 Shortest Paths in a Graph

--Shortest Paths in a Graph

-4.7 Minimum Spanning Tree

--Minimum Spanning Tree

-4.8 Correctness of Algorithms

--Correctness of Algorithms

-4.9 Clustering

--Clustering

-Homework4

-Lecture note 4

--Lecture note 4 Greedy Algorithms

5 Divide and Conquer

-5.1 Mergesort

--Mergesort

-5.2 Counting Inversions

--Counting Inversions

-5.3 Closest Pair of Points

--Closest Pair of Points

-5.4 Integer Multiplication

--Integer Multiplication

-5.5 Matrix Multiplication

--Video

-5.6 Convolution and FFT

--Convolution and FFT

-5.7 FFT

--FFT

-5.8 Inverse DFT

--Inverse DFT

-Homework5

-Lecture note 5

--Lecture note 5 Divide and Conquer

6 Dynamic Programming

-6.1 Weighted Interval Scheduling

--Weighted Interval Scheduling

-6.2 Segmented Least Squares

--Segmented Least Squares

-6.3 Knapsack Problem

--Knapsack Problem

-6.4 RNA Secondary Structure

--RNA Secondary Structure

-6.5 Sequence Alignment

--Sequence Alignment

-6.6 Shortest Paths

--Shortest Paths

-Homework6

-Lecture note 6

--Lecture note 6 Dynamic Programming

7 Network Flow

-7.1 Flows and Cuts

--Flows and Cuts

-7.2 Minimum Cut and Maximum Flow

--Minimum Cut and Maximum Flow

-7.3 Ford-Fulkerson Algorithm

--Ford-Fulkerson Algorithm

-7.4 Choosing Good Augmenting Paths

--Choosing Good Augmenting Paths

-7.5 Bipartite Matching

--Bipartite Matching

-Homework7

-Lecture note 7

--Lecture note 7 Network Flow

8 NP and Computational Intractability

-8.1 Polynomial-Time Reductions

--Polynomial-Time Reductions

-8.2 Basic Reduction Strategies I

--Basic Reduction Strategies I

-8.3 Basic Reduction Strategies II

--Basic Reduction Strategies II

-8.4 Definition of NP

--Definition of NP

-8.5 Problems in NP

--Problems in NP

-8.6 NP-Completeness

--NP-Completeness

-8.7 Sequencing Problems

--Sequencing Problems

-8.8 Numerical Problems

--Numerical Problems

-8.9 co-NP and the Asymmetry of NP

--co-NP and the Asymmetry of NP

-Homework8

-Lecture note 8

--Lecture note 8 NP and Computational Intractability

9 Approximation Algorithms

-9.1 Load Balancing

--Load Balancing

-9.2 Center Selection

--Center Selection

-9.3 The Pricing Method: Vertex Cover

--The Pricing Method: Vertex Cover

-9.4 LP Rounding: Vertex Cover

--LP Rounding: Vertex Cover

-9.5 Knapsack Problem

--Knapsack Problem

-Homework9

-Lecture note 9

--Lecture note 9 Approximation Algorithms

10 Local Search

-10.1 Landscape of an Optimization Problem

--Landscape of an Optimization Problem

-10.2 Maximum Cut

--Maximum Cut

-10.3 Nash Equilibria

--Nash Equilibria

-10.4 Price of Stability

--Price of Stability

-Homework10

-Lecture note 10

--Lecture note 10 Local Search

11 Randomized Algorithms

-11.1 Contention Resolution

--Contention Resolution

-11.2 Linearity of Expectation

--Linearity of Expectation

-11.3 MAX 3-SAT

--MAX 3-SAT

-11.4 Chernoff Bounds

--Chernoff Bounds

-Homework11

-Lecture note 11

--Lecture note 11 Randomized Algorithms

Exam

-Exam

RNA Secondary Structure笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。