|
|
1
2
我想你对一些事情感到困惑。即便如此,我也找不到任何解析器来匹配尽可能长的回文,我认为这是您的目标。
第一
第二
第三
第四,你打电话
以下是修改后的程序:
结果如下:
请注意,结果是最小的初始回文,而不是整个字符串。虽然我不认为这是你的目标,但我希望我的改变能让你更接近。 编辑: 如果您的目标是确定字符串是否为回文(与“搜索较大字符串中的回文”形成对比),那么这个程序可能更容易使用:
|
|
2
1
在仔细考虑了这个问题之后,我意识到,除非你从整个字符串开始,并不断地删掉结尾,直到找到回文或没有更多的字符串,否则你真的不知道你是否找到了最长的回文。
现在找到回文
我不确定我在寻找重叠回文方面是否有正确的选择。不要只增加loc,否则你会得到所有退化的情况-也就是说,对于AAGAATTCTT的回文,你也会得到AGAATTCT、GAATTC、AATT和AT。 这里有一种将其缝合到pyparsing解析器中的方法:
给出结果:
编辑 我刚刚在这个FASTA文件的多处理版本中使用6个工作进程运行了这个脚本( http://toxodb.org/common/downloads/Current_Release/Tgondii/fasta/ToxoDB-28_Tgondii_ESTs.fasta ),首先处理FASTA格式以将每个包裹的多行序列转换为单个字符串。在147151个序列中,脚本在22分钟内发现了超过1000个回文,长度为20个或更多个核苷酸。以下是一些示例回文:
|
|
Max Koretskyi · 该语法是否通过右递归定义右结合性 8 年前 |
|
|
David Yi · NLTK、Python中的FCFG错误。语法问题 11 年前 |
|
|
Zhao · 困惑于将模棱两可的语法转换为明确的语法 11 年前 |
|
|
Kvass · 这两条上下文无关的语法规则是一样的吗? 12 年前 |
|
|
Jason Kleban · 语法规范解决移位/减少冲突 13 年前 |