DNA序列剖面

1、在随机生成的7个长为32个核苷酸的DNA序列中,在每个DNA序列中的随机位点插入相同的序列,长度为8的模式P=ATGCAACT,你不知道模式P是怎样的序列,或者不知道在每条序列中它插入在哪里,DNA允许这个模式P在某些核苷酸位点上出现突变,突变后形成不完全相同的7个模式。要求:通过对DNA序列的分析重构模式P。

2、算法:

考虑一组t条DNA序列,每条序列中含有n个核苷酸。在这t条序列中,每条都选择一个位点,形成了一个数组S=(S1,S2,...,St),其中1<=Si<=n-l+1。从这些位点起始的l-元组片段编码在一个t*l阶的联配矩阵,第(i,j)处的元素表示元素为第i条序列上的第Si+j-1个元素的对应的核苷酸。基于这个联配矩阵计算4*l阶的剖面矩阵,其中第(i,j)处的元素表示核苷酸i在联配矩阵中第j列中出现的次数,i从1到4,表示A、T、G、C。取剖面矩阵中具有最大记录数的核苷酸序列片段,形成共有字符串

如1所述的7个突变的模式中,假设我们知道位置(...表示模式前后的DNA序列)。

......ATCCAGCT.......

......GGGCAACT.......

......AAGCAACC.......

......TTGGAACT.......

......ATGCCATT.......

......ATGGCACT.......

首先形成联配矩阵。

ATCCAGCT

GGGCAACT

AAGCAACC

TTGGAACT

ATGCCATT

ATGGCACT

接着形成剖面矩阵

A 5 1 0 0 5 50 0

T1 5 0 0 01 1 6

G1 1 63 0 1 0 0

C 0 0 1 4 2 06 1

最后得出共有字符串

A T G C A A C T

你可能感兴趣的:(C++,c,算法,C#,J#)