好的,这就是我想要做的:
获取两个以上的字符串并“对齐”它们(没有 DNA/RNA 序列等,只是常规字符串,每个字符串都不像 1000 个项目)
我已经完成了一些成对对齐(对齐两个字符串)的工作,但是当我尝试对齐多个字符串时,“间隙”给我带来了一些问题。
示例(我目前正在测试的一个):
ABCDEF
ABGHCEEF
AJKLBCDYEOF
AB--CDEF
ABGHCEEF
=======================
AB--C-EF
A-B--C--E-F
AJKLBCDYEOF
=======================
A----C--E-F
还有另一个(更具说明性的)示例:
http://nest.drkameleon.com
http://www.google.com
http://www.yahoo.com
http://nest.drkameleon.com
http://-www.--google--.com
=======================
http://----.------le--.com
http://----.------le--.com
http://-www.-----yahoo.com
=======================
http://----.----------.com
我目前在做什么:
- 对字符串进行排序(较长的字符串在列表中排在第一位)
- 对齐第一对:AB 并得到结果(比方说
R1
) - 然后对齐第二对:
R1
和C
(结果R2
) - 然后对齐第三对:
R2
和D
- 等等...
那么你的想法是什么?我怎么能去呢?有没有更好的办法?(当然,必须有……)
我宁愿在 Perl/Python 或类似的东西中这样做,但是任何类型的代码/参考都会受到欢迎!:-)