DNA 反向互补序列
在线计算 DNA / RNA 的反向互补链、互补链与反向序列,结果可直接复制。
长度:0 个碱基
Wallace Tm = 2×(A+T) + 4×(G+C),仅对 14 nt 以内的短寡核苷酸可靠。更长的序列需要用最近邻模型,可在引物 Tm 计算器中查看含盐校正的结果。
反义链按 5’ → 3’ 方向读出的结果,也就是设计反向引物、探针或反义寡核苷酸时要用的那一条。
每个碱基替换为配对碱基、顺序保持不变,相当于互补链按 3’ → 5’ 方向写出的样子。
同一条链从另一端读过来的结果,不做任何碱基替换。
了解更多
功能简介
反向互补序列(reverse complement)指的是把一条 DNA 或 RNA 链的每个碱基换成互补碱基(DNA 中 A↔T、C↔G,RNA 中 A↔U),再把整条序列倒过来之后得到的序列。因为双螺旋的两条链方向相反,所以反向互补序列其实就等于另一条链按 5’ → 3’ 方向写出来的样子。这也是它在分子生物学里出现频率极高的原因:把正向引物变成反向引物、从编码链读出反义链或 siRNA 序列、判断两条序列是不是同一段基因从两端读出的结果,用的都是这一步运算。本页把反向互补、互补、反向三种结果并列给出,方便直接确认手头需要的到底是哪一种。
原理与公式
整个计算由两个彼此独立的步骤组成,而它们最容易被人混为一谈。第一步是互补:逐位把碱基换成它的配对碱基 —— DNA 中 A 配 T、C 配 G,RNA 中 A 的配对碱基则是 U。第二步是反向:把互补后的序列倒序读出。两步都做(先后顺序不影响结果)就得到反向互补序列,因为互补是逐位操作、反向只改变位置。之所以要强调这个区分,是因为两个步骤单独拿出来也各有用途:只做互补得到的是按 3’ → 5’ 写出的互补链,只做反向得到的则是同一条链从另一端读出的序列。简并碱基(IUPAC 简并码)的互补必须按碱基集合处理,而不能当作单个字母原样返回。R 代表 A 或 G、Y 代表 C 或 T,所以 R 与 Y 互补 —— 一个集合里的每个成员都能在另一个集合里找到配对者。同理 K(G/T)配 M(A/C),B(C/G/T)配 V(A/C/G),D(A/G/T)配 H(A/C/T),而 S(C/G)、W(A/T)与 N(任意碱基)自互补。很多临时脚本把这几个字符原样保留,于是只要序列里出现一个简并碱基,结果就是错的。还有两个性质可以直接从规则推出来。反向互补不改变序列长度,也不改变 GC 含量 —— 互补把 G 换成 C、把 C 换成 G,A 则与 T(或 U)配对,因此整条序列里 G 与 C 的总数保持不变,只是位置被重新排列。所以一条序列与它的反向互补序列具有完全相同的 GC 含量,由 GC 含量推算出的 Tm 估计值也相同。
演算示例
先看最短的例子:序列 5’-ATGC-3’。只做互补得到 5’-TACG-3’,只做反向得到 5’-CGTA-3’,两步都做得到 5’-GCAT-3’,这就是反义链按 5’ → 3’ 方向写出的结果。换一条长一点的,5’-ATGGCCTAA-3’:互补序列为 5’-TACCGGATT-3’,反向序列为 5’-AATCCGGTA-3’,反向互补序列为 5’-TTAGGCCAT-3’。把一个碱基换成简并码,5’-ANGC-3’ 的反向互补是 5’-GCNT-3’,因为 N 与 N 自互补。切换到 RNA 后配对规则随之改变:序列 5’-AUGGCCUAA-3’ 的反向互补是 5’-UUAGGCCAU-3’,凡是 DNA 里应当出现 T 的位置全部换成 U。如果这时仍按 DNA 规则计算,结果中本该是 U 的位置会全部写成 T,读出来就不再是 RNA 序列了。还有一类值得注意的情况:回文位点。EcoRI 的 GAATTC 与 HindIII 的 AAGCTT 各自的反向互补都与自身完全相同,正是这种对称性让这两类酶能在双链的对应位置同时切开。非回文位点则不具备这个性质:BsaI 的 GGTCTC 反向互补后变成 GAGACC,两条链上的序列并不一致,因此把这类位点加到引物或插入片段末端时,必须明确记录它的方向。
适用场景
最常见的用途是设计 PCR 引物:正向引物取自编码链,而反向引物必须是与模板另一条链上目标区域互补的那条序列,因此要把目标区域做一次反向互补,结果可以直接拿去设计并下单合成引物。测序引物与探针的设计逻辑完全相同;订制反义寡核苷酸或 siRNA 时也是同理 —— 它们必须与要结合的 mRNA 互补,所以序列同样由反向互补得到。在克隆实验中,反向互补用来核对插入片段的方向是否正确、末端引入的限制酶位点是否落在该落的那条链上。给序列记录标注负链、快速判断两条序列是不是同一段基因从两端读出的结果,也都依赖这一步计算。又因为这个运算具有自反性,做两次就会回到原序列,所以它也是验证一对序列互为反向互补的标准方法。
和其他在线工具比,不同在哪
反向互补本身只需要几行代码,所以网上这类在线工具很多;真正拉开差距的不是能不能算,而是几个容易被跳过的细节。第一是简并碱基。多数简易实现只用一张 A 配 T、C 配 G 的四行对照表,遇到 R、Y、K、M 这类 IUPAC 简并码就原样返回 —— 输入里只要出现一个简并碱基,整条结果就是错的,而且不会给出任何提示。本工具按碱基集合互补:R(A 或 G)配 Y(C 或 T)、K(G 或 T)配 M(A 或 C)、B(C/G/T)配 V(A/C/G)、D(A/G/T)配 H(A/C/T),S、W、N 自互补。设计简并引物时这一条是必需的,因为那类引物本来就大量使用简并位点。第二是 DNA 与 RNA 分开处理。RNA 中 A 的配对碱基是 U 而不是 T,两者混用会把结果里本该是 U 的位置全部写成 T。本页会自动判定类型,也支持手动指定:序列中出现 U 且没有 T 就按 RNA 处理,也可以直接锁定模式,避免自动判定与你的实际意图不一致。第三是输入容错。从 NCBI 或 SnapGene 复制出来的序列常带换行、空格和 FASTA 标题行。若这些字符被当成碱基一起参与反转,结果里就会出现位置毫无意义的空白。本工具先剥离标题行、去掉全部空白再计算,并在界面上说明忽略了几行标题、有没有出现非 IUPAC 字符,而不是静默丢弃。第四是一次给全。同一个目标区域究竟要取反向互补、互补还是反向,取决于它要接到哪一端,很多人在这三种结果之间来回试。本工具把三者并列输出、各带独立复制按钮,并附上长度、GC%、Wallace Tm 与碱基计数,省掉再开一个页面算组成统计的步骤。有两个边界需要说明。其一,本工具只做序列变换,不做比对、也不检索数据库,因此它无法告诉你一条引物在整个基因组里是否唯一 —— 那属于引物特异性检查一类工具的工作,需要基因组序列库支持。其二,这里给出的 Tm 是 Wallace 规则(2×(A+T) + 4×(G+C))的快速估计,只对不超过 14 nt 的短寡核苷酸可靠;需要盐校正或最近邻模型的热力学 Tm 时,应当改用本站的引物 Tm 工具。
常见问题
- 什么是 DNA 反向互补序列?
- 反向互补序列就是把一条 DNA 序列的每个碱基先换成配对碱基(A↔T、C↔G),再把顺序整个倒过来得到的序列,它代表双螺旋中另一条链按标准 5’ → 3’ 方向写出的样子。例如 5’-ATGC-3’ 的反向互补序列是 5’-GCAT-3’。这个运算具有自反性:对结果再做一次反向互补就会回到原始序列,因此它也是验证两条序列是否互为反向互补的便捷方法。
- 互补序列、反向序列和反向互补序列有什么区别?
- 三者来自同一条输入但结果完全不同。互补序列只替换碱基、不改变顺序,5’-ATGC-3’ 变成 5’-TACG-3’;反向序列只颠倒顺序、不替换碱基,得到 5’-CGTA-3’;反向互补序列两者都做,得到 5’-GCAT-3’ —— 三者中只有它代表另一条链按 5’ → 3’ 方向读出的序列。不少脚本会在你要其中一种时悄悄返回另一种,因此本工具把三种结果并列显示,而不是替你猜。
- 反向互补序列和 5’、3’ 方向是什么关系?
- DNA 双链的两条链是反向平行的:一条按 5’ → 3’ 走向,另一条则按 3’ → 5’ 走向。如果把配对链也写成惯用的 5’ → 3’ 方向以便与输入序列直接比较,得到的序列就是反向互补序列。这也解释了为什么正向引物和它的配对反向引物并不是简单的互补关系 —— 两者都按 5’ → 3’ 书写,所以反向引物等于正向引物所对应模板区域的反向互补。
- 工具支持 RNA 和简并碱基吗?
- 支持。把核酸类型切到 RNA(也可以保持自动识别、由序列自行判定)后,A 与 U 配对,因此 5’-AUGGCC-3’ 的反向互补是 5’-GGCCAU-3’。简并碱基按它所代表的碱基集合做互补:R 配 Y、K 配 M、B 配 V、D 配 H,而 S、W、N 自互补。不属于核酸字符集的字符会被原样保留并在提示中列出,不会被静默丢弃 —— 这一点很重要,因为删掉一个无法识别的碱基会让它后面每一位的位置都发生位移,结果的阅读框整个错掉。
- 设计引物时为什么要用反向互补?
- 引物在合成单和序列记录里都按 5’ → 3’ 书写,但反向引物结合的是另一条链。要得到它,就把模板上反向引物应当结合的区域做一次反向互补;聚合酶便会从这个引物出发,朝正向引物的方向延伸。测序引物、杂交探针和反义寡核苷酸的设计遵循同样的道理 —— 它们都必须与自己的靶标互补,因此序列都由对靶标区域做反向互补得到。
- 反向互补计算容易在哪里出错?
- 常见的有三处。第一,只做了两步中的一步 —— 需要反向互补却只返回互补序列,或者返回了反向序列。第二,把 N、R 这类简并碱基直接丢掉,导致其后每一位都发生位移,结果整个错位。第三,配对规则用错,使 RNA 序列里本该是 U 的位置全部写成了 T。本工具两次变换都会执行、简并碱基按碱基集合正确互补、无法识别的字符原样保留并给出提示,同时允许在自动识别不符合预期时手动指定核酸类型。
- 反向互补会改变 GC 含量吗?
- 不会。互补规则把 G 换成 C、把 C 换成 G,A 则与 T(或 U)配对,所以反向互补序列里 G 与 C 的总数与原序列完全相同,只是碱基的排列顺序变了;序列长度同样保持不变。因此 GC 含量、以及由它推算出的 Tm 估计值,对一条序列和它的反向互补来说是完全一致的。
- 反向互补和限制酶位点有什么关系?
- 许多 II 型限制酶识别位点是回文序列,也就是它自己的反向互补:EcoRI 的 GAATTC、HindIII 的 AAGCTT 做反向互补后与原序列完全相同,正是这种对称性让酶能够在双链的对应位置同时切开。非回文位点的表现则不同 —— BsaI 的 GGTCTC 反向互补后变成 GAGACC —— 因此这类位点具有方向性,把它加到引物或插入片段末端时必须明确记录方向。
- 怎么用 Python / Biopython 计算反向互补序列?
- 纯 Python 两行即可:先用 str.maketrans('ACGTacgt','TGCAtgca') 做互补,再用 [::-1] 反转,不需要任何依赖。用 Biopython 则更省事:Bio.Seq 中 Seq('ATGC').reverse_complement() 直接给出反向互补,Seq('ATGC').complement() 和 [::-1] 分别给出互补与反向。处理 RNA 时,Biopython 的 generic_rna_complement 让 A 与 U 配对,Seq('AUGC', generic_rna_complement).reverse_complement() 会得到正确结果。要小心两个常见错误:一是漏掉反转这一步(只做互补并不等于反向互补),二是用了只会处理 A/T/C/G 的对照表,使 R、Y、N 等简并碱基原样返回 —— Biopython 的 complement() 能正确处理这些字符,手写的表通常不行。
- 能用 Excel 计算反向互补吗?
- 可以,但 Excel 没有内置函数,需要自己写公式。互补用嵌套的 SUBSTITUTE:SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"A","T"),"T","A"),"C","G"),"G","C");反转则用经典的辅助列技巧,或在新版 Microsoft 365 里用 =TEXTJOIN("",1,MID(B1,SEQUENCE(LEN(B1),,LEN(B1),-1),1)),旧版本需用数组公式 =CONCAT(MID(B1,LEN(B1)-ROW(INDIRECT("1:"&LEN(B1)))+1,1))。务必先把序列以纯文本粘贴到单元格,因为 Excel 会把 1E4 这类值或类似日期的字符串自动转成数字,导致结果出错。