首页 > 解决方案 > 如何拼凑 DNA 的短片段?匹配序列文件中的碱基对

问题描述

我正在尝试拼凑 DNA 短读。我需要将大约 3 个碱基对与其他短读片段匹配。(碱基对= ex. TCG(基本上只有 3 个字母))

我已经尝试过正则表达式,但是当我尝试读取带有一堆短读的文件时,我需要使核苷酸成为变量,我认为正则表达式不会这样做。我有一个包含一堆这些短读取的文件,我需要将这些碱基对与具有这些相同碱基对序列的其他短读取进行匹配。

前任。我在一个文件中有这两行短读:

AAAGGGTTTCCCGGGAAA TCA

CCCGGGAAA TCA GGGAATTT

我需要的结果是:

AAAGGGTTTCCCGGGAAA TCA GGGAAATTT

如何匹配并将匹配的行粘贴到其他行的顶部,以便在相似点将它们组合起来?

标签: pythonpython-3.xmatchingshort

解决方案


您可以在第二个序列中找到匹配序列的索引并将它们连接起来:

seq1 = 'AAAGGGTTTCCCGGGAAATCA'
seq2 = 'CCCGGGAAATCAGGGAAATTT'
match_pair_count = 5
match_seq = seq1[-match_pair_count:]
match_index = seq2.rfind(match_seq)
combined_seq = seq1[:-match_pair_count] + seq2[match_index:]

注意:如果您需要捕获匹配序列未出现在第二个序列中的情况,您将需要添加代码来处理match_index == -1.


推荐阅读