优化DNA序列连续核苷酸重复计数脚本,仅展示长片段C重复
筛选长段C碱基连续重复序列的优化Python脚本
原有脚本会输出所有连续核苷酸的重复计数结果,优化仅需在原有统计逻辑上增加过滤规则,就能实现只展示长段C重复的效果:
- 统计完成后仅保留碱基类型为
C的条目 - 支持自定义重复长度阈值,自动剔除短片段C重复(例如设置阈值为10时,计数为1、3的短C段会被过滤,仅保留示例中计数50、22的长重复序列)
优化后的可直接运行代码如下:
s = input('Your sequence here:') from itertools import groupby # 自定义需要展示的C碱基最小重复长度,可根据需求调整数值 MIN_C_REPEAT_LENGTH = 10 groups = groupby(s) result = [ (label, count) for label, group in groups if label == 'C' and (count := sum(1 for _ in group)) >= MIN_C_REPEAT_LENGTH ] print(result)
版本兼容提示:上述代码使用Python 3.8+支持的海象运算符简化逻辑,如果使用更早版本的Python,可将列表推导部分替换为兼容写法:
result = [] for label, group in groups: if label != 'C': continue current_count = sum(1 for _ in group) if current_count >= MIN_C_REPEAT_LENGTH: result.append((label, current_count))
运行你提供的测试序列时,设置阈值为10的情况下,最终输出结果为[('C', 50), ('C', 22)],完全匹配预期效果。调整MIN_C_REPEAT_LENGTH的数值即可灵活控制筛选的严格程度。
内容的提问来源于stack exchange,提问作者Disobey1991
相关产品推荐
相关产品推荐

