Matlab:DNA序列比较

时间:2015-12-08 16:10:52

标签: matlab dna-sequence

我想比较两个DNA序列。但是,我想将第一个蛋白质作为第一个序列,并将其与第二个序列的全长进行比较,依此类推。

E.g。

DNASequence1:ABCDEFGHIJKA

DNASequence2:ABCHIKABTIYO

因此它需要序列A中的第一个蛋白质并将其与第二个序列进行比较,产生两个匹配。然后它需要B并比较它,产生另外两个匹配。等等,直到比较所有蛋白质。

1 个答案:

答案 0 :(得分:2)

您可以使用循环执行此操作,但bsxfun更简洁(可能更快)并提供相同的结果:

A = 'ABCDEFGHIJKA';   %// I shortened the variable names...
B = 'ABCHIKABTIYO';   %// because I don't like typing.

C = bsxfun(@eq, B, A')

C =

   1   0   0   0   0   0   1   0   0   0   0   0
   0   1   0   0   0   0   0   1   0   0   0   0
   0   0   1   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   1   0   0   0   0   0   0   0   0
   0   0   0   0   1   0   0   0   0   1   0   0
   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   1   0   0   0   0   0   0
   1   0   0   0   0   0   1   0   0   0   0   0

C的每一行都是1,其中A中的相应元素出现在B中。例如,行9按顺序I给出了B字母的所有出现次数。

这也适用于序列长度不同的情况:

>> D = [B B]
D = ABCHIKABTIYOABCHIKABTIYO

>> bsxfun(@eq, D, A')
ans =

   1   0   0   0   0   0   1   0   0   0   0   0   1   0   0   0   0   0   1   0   0   0   0   0
   0   1   0   0   0   0   0   1   0   0   0   0   0   1   0   0   0   0   0   1   0   0   0   0
   0   0   1   0   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   1   0   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   0   0   0   0
   0   0   0   0   1   0   0   0   0   1   0   0   0   0   0   0   1   0   0   0   0   1   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   1   0   0   0   0   0   0   0   0   0   0   0   1   0   0   0   0   0   0
   1   0   0   0   0   0   1   0   0   0   0   0   1   0   0   0   0   0   1   0   0   0   0   0