Skip to main content

2 contig direction

在序列图里说 contig “作为有向节点处理,有正、负方向”,并不是说节点本身像有向边那样有箭头,而是说:同一个 contig 在被边、路径或比对引用时,可以有两种方向状态:正向 $+$ 和反向 $-$。

1. 正方向:按存储的序列方向​

每个 contig 在 FASTA/GFA 文件里都存了一条序列,例如:

>contigA
ATCG...

这条序列的书写方向就是它的正方向。通常约定为 DNA 的 $5'\to 3'$ 方向。也就是说,contigA+ 表示“按照文件里写的从第一个碱基到最后一个碱基来读”。

2. 负方向:反向互补​

contigA- 不是另一条独立的序列,而是同一条双链 DNA 的反向互补序列。
例如存储序列是:

ATCG

那么:

  • 正方向:ATCG
  • 负方向:反向 GCTA,再互补 CGAT

所以 contigA- 实际读作 CGAT。它对应的是双链中另一条链的 $5'\to 3'$ 方向。

3. 为什么需要正负方向?​

因为 DNA 是双链。两个 contig 连接时,它们可能以四种相对方向相连:

A+ 连 B+
A+ 连 B-
A- 连 B+
A- 连 B-

如果不记录方向,就不知道该如何拼接序列,也不知道重叠区域该按哪条链计算。例如 GFA 的 L 行会写成:

L A + B - 10M

这表示:A 的正方向末端与 B 的负方向末端有 10 bp 重叠。拼接时,B 需要先反向互补。

路径也是这样。GFA 的 P 行可能写成:

P path1 A+,B-,C+

它表示路径依次经过:A 正向、B 反向、C 正向。对应的序列是:

seq(A) + revcomp(seq(B)) + seq(C)

4. 正负不是绝对“正链/负链”​

要注意:这里的 $+$ 和 $-$ 是相对于该 contig 自身存储序列的,不是相对于某个全局参考基因组的正链/负链。不同 contig 的“正方向”可能来自不同物理链,除非有一个参考序列来统一定向。

5. 在 GfaViz 中的体现​

GfaViz 支持 GFA 2 的 fragment lines。补充材料 Fig. S2 中,reads 比对到 contig 时:

  • 绿色线表示 read 来自 forward strand
  • 红色线表示 read 来自 reverse strand

这就是方向在可视化中的直观表现:同一个 contig 作为参考,read 可以正方向匹配,也可以负方向匹配。

所以,contig 的“正负方向”可以理解为:
正方向 = 文件里存储的序列方向;负方向 = 该序列的反向互补方向。
在图中,节点本身定义一次,但在边和路径中被引用时,必须带上 $+$ 或 $-$,以说明它是以哪条链、哪个方向参与连接。