You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python编写自定义函数获取5'到3'方向DNA序列反向互补链

Python实现5'到3'方向DNA反向互补链生成函数

实现逻辑

  • 输入预处理:自动移除所有空白字符(空格、制表符、换行符等),统一转为大写,适配大小写混合、带格式的输入场景
  • 用字典构建碱基互补映射表,查找效率更高
  • 可自动识别非ATCG的非法碱基并抛出提示
  • 先互补再反转序列,最终输出为5'到3'方向的结果

完整代码

def reverse_complement_dna(input_seq: str) -> str:
    # 预处理:移除所有空白字符,转大写
    cleaned_seq = ''.join(input_seq.split()).upper()
    # 碱基互补映射
    complement_map = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C'}
    # 校验非法碱基
    for base in cleaned_seq:
        if base not in complement_map:
            raise ValueError(f"检测到非法碱基: {base},仅支持ATCG碱基输入")
    # 生成互补序列后反转,得到5'->3'方向的反向互补链
    complement_seq = ''.join([complement_map[base] for base in cleaned_seq])
    return complement_seq[::-1]

使用示例

# 测试基础输入
print(reverse_complement_dna("GGCCAATT"))
# 输出:AATTGGCC

# 测试带空白、换行、大小写混合的输入
dirty_input = "G g C c\nA a\tT t"
print(reverse_complement_dna(dirty_input))
# 输出:AATTGGCC

注意:如果需要保留输入的大小写格式,可修改预处理逻辑不执行转大写操作,同时给互补映射表补充小写碱基的键值对即可

内容的提问来源于stack exchange,提问作者Banana nana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:54:05