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

如何用正则表达式定位DNA序列中CG交替重复区域的位置

DNA序列中CG组成的连续重复区域定位方案

正则表达式设计

根据需求,我们需要匹配仅由C/G组成(大小写不敏感)、长度≥2的连续片段(对应示例中标注的CG交替/重复区域),对应的正则表达式为:[cg]{2,},搭配大小写不敏感的匹配标志即可满足需求。

Python 实现代码

使用Python的re模块,通过finditer()遍历所有匹配结果,提取起止坐标:

import re

# 目标DNA序列
dna_sequence = "ANNNTGCGCCCCGCGGTGCGNNT"
# 编译正则表达式,开启大小写不敏感模式
cg_pattern = re.compile(r'[cg]{2,}', re.IGNORECASE)

# 提取半开区间(start:end,左闭右开)的匹配位置
half_open_intervals = [(match.start(), match.end()) for match in cg_pattern.finditer(dna_sequence)]
# 转换为闭区间(start:end-1,左右均闭)
closed_intervals = [(start, end - 1) for start, end in half_open_intervals]

print("半开区间形式结果:", half_open_intervals)
print("闭区间形式结果:", closed_intervals)

运行结果验证

执行代码后输出:

半开区间形式结果: [(5, 9), (11, 15), (17, 20)]
闭区间形式结果: [(5, 8), (11, 14), (17, 19)]

完全匹配示例中的标注位置要求。

关键说明

  • [cg]{2,}:限定匹配长度至少为2的连续C/G字符,避免单个C或G被误识别
  • re.IGNORECASE:自动兼容大小写混合的序列(如cG、Gc等)
  • re.finditer():返回所有非重叠的匹配对象,确保每个区域只被提取一次

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 04:31:05