python - 如何拼凑 DNA 的短片段?匹配序列文件中的碱基对
问题描述
我正在尝试拼凑 DNA 短读。我需要将大约 3 个碱基对与其他短读片段匹配。(碱基对= ex. TCG(基本上只有 3 个字母))
我已经尝试过正则表达式,但是当我尝试读取带有一堆短读的文件时,我需要使核苷酸成为变量,我认为正则表达式不会这样做。我有一个包含一堆这些短读取的文件,我需要将这些碱基对与具有这些相同碱基对序列的其他短读取进行匹配。
前任。我在一个文件中有这两行短读:
AAAGGGTTTCCCGGGAAA TCA
CCCGGGAAA TCA GGGAATTT
我需要的结果是:
AAAGGGTTTCCCGGGAAA TCA GGGAAATTT
如何匹配并将匹配的行粘贴到其他行的顶部,以便在相似点将它们组合起来?
解决方案
您可以在第二个序列中找到匹配序列的索引并将它们连接起来:
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
.
推荐阅读
- javascript - 地图功能没有为每个元素设置值
- php - Symfony:在所有数组中获得相同的功能
- prolog - PROLOG - 获取实体验证的所有规则的列表
- reactjs - Material-UI 连续动画
- robotframework - 是否有设置获取机器人框架以使用 JMSLibrary 的示例?
- javascript - 使用 javascript 或 jquery 在页面离开时禁用 Firefox 对话框
- javascript - 未捕获的类型错误:fs.writeFile 不是函数
- spring-boot - Spring Boot Reactive:经过时间计算
- neo4j - 嵌入式 Neo4j APOC 程序 apoc.load.json 不工作
- redis - RediSearch Suggestions - 删除所有建议