如何拼凑DNA的短片段?序列文件中的匹配碱基对

2024-06-16 16:37:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我尝试过regex表达式,但是当我尝试用一堆短的读取来读取一个文件时,我需要使核苷酸成为一个变量,我不认为regex可以做到这一点。我有一个文件有一堆这样的短读,我需要把这些碱基对匹配到其他有相同碱基对序列的短读。你知道吗

例如,我在一个文件中有两行短读:

aaagggttcccggaaaTCA

CCCGGGAAATCAGGGAATTT公司

我需要的结果是:

aaagggttcccggaaaTCAgggaatt

如何将匹配的行匹配并粘贴到其他行的顶部,以便在相似点处合并它们?你知道吗


Tags: 文件表达式粘贴字母公司序列regexdna
2条回答

您只需在第二个序列中找到匹配序列的索引并将它们串联起来:

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。你知道吗

每个子序列的简单解计算5尾和5头。然后尝试所有与死神优先搜索的组合。你知道吗

一种更复杂的方法来绘制一个图形,其中有向边被标记为多个共线字母(比如4-9)。应用旅行商解或其他合适的算法来寻找所有顶点的最短路径。你知道吗

我确信有很多适合于基因组推断的工具和技术。https://www.youtube.com/watch?v=fGxx7TvQ3f4。你知道吗

为了找出两个序列之间的距离,将一个序列倒过来,找到最长的公共前缀。你知道吗

定义joinifmatch(seq1,seq2,minlen=4): 尾部=序列2[:4] 对于范围内的i(len(seq1),4,-1) 如果seq1.startswith(seq2[n-i:]) 返回“%s%s”(seq2[:n-i],seq1)

相关问题 更多 >