Skip to content

Instantly share code, notes, and snippets.

@hanzou666 hanzou666/GFA_for_vg.md
Last active Jun 1, 2018

Embed
What would you like to do?
GFAの説明

GFA (Graphical Fragment Assembly)

もとはゲノムアセンブリで使われ出したタブ区切りのテキストファイル。
ノードが塩基配列、エッジがノードのリンクを表すように設計されている。1列目のタグで判定する。

ここでは、GFAのバージョン1.0で、かつvg viewが認識することができる表現についてのみ述べることにする。 Pの表現方法が、vgのバージョンによって若干異なるのでそこも注意しなければならない(v1.5.0だと、GFA-spec 1.0 と同じように考えればよい。v1.6については未確認)。

タグ一覧

  • H: ヘッダー
  • S: セグメント(配列を入れる)
  • L: リンク(配列がどのように繋がっているかを表す)
  • P: パス(グラフの構築に使われたもとの配列/変異情報がグラフのどこを通るのかを表現することができる)

Cは未確認だが使わないと思われる。

H

ヘッダー行は

H	VN:Z:1.0

と書く。

S

1列目にタグ、2列目にノードID(自然数)、3列目に配列を入れる

例:

S	1	AGCTGT

L

1列目にタグ、2,4列目に繋ぎたいノードID、3,5列目に各配列の方向、そして最後の列には0Mが入る。 (最後の列は、本来は2つのノードが何bpオーバーラップしているのかを表現することができるのだが、vgの仕様でオーバラップしてくれない)

例:

L	1	+	2	+	0M

P

vgがv1.5.0-1365-g6b0f476の場合

1列目にタグ、2列目にパスの名前(もとのfastaのIDとか変異の名前とか)、3列目に通るノードIDとその向きのカンマ区切り、4列目に各ノードの何塩基目までを通るかが入る

例:

P	E.coli_BY	1+,5+,4+	32M,1M,28M

vgのバージョンがv1.4.0-1975-g72fa014の場合

標準のGFAの仕様とは違って、ノードごとに書く必要がある。
1列目にタグ、2列目にパスの名前(もとのfastaのIDとか変異の名前とか)、3列目に通るノードID、4列目にパスの中で何番目のノードか、5列目にその配列の向き、6列名に各ノードの何塩基目までを通るか、が入る。

例(v1.5.0と対比する形):

P	E.coli_BY	1	1	+	32M
P	E.coli_BY	5	2	+	1M
P	E.coli_BY	4	3	+	28M

つまり違いは表現の冗長性にある。

WIP: 可視化例

TODO

  • vg v1.6でのGFAの挙動の確認
  • 可視化例の例を作成する(特にストランドが-の場合)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.