macでインフォマティクス

読者です 読者をやめる 読者になる 読者になる

CIRCOS トレーニング2

バクテリアアセンブルデータをCIRCOSで描画してみる。

 

最初に、ゲノムサイズが小さいのでメモリのサイズを小さくする必要がある。main.confファイルの中のchromosomes_unitsを10万に変更。

chromosomes_units = 100000

 

 

main.confファイルの内容は以下の通り。

> $cat main.conf

# 1.2 IDEOGRAM LABELS, TICKS, AND MODULARIZING CONFIGURATION

karyotype = /Users/user/Documents/circos_training/plectonema/chr_orf.txt

chromosomes_units = 100000

 

<<include ideogram.conf>>

<<include ticks.conf>>

 

<image>

<<include etc/image.conf>>                

</image>

 

<<include etc/colors_fonts_patterns.conf>> 

<<include etc/housekeeping.conf>> 

 

 

上で読み込んでいるchr_orf.txtは以下のように記述して保存している。

chr - chr1 1 0 6176365 chr1

 

ゲノムが1つで環状なので、1行だけになる。6176365がゲノムサイズ。

 

 

 

 

 

 

そのほか5つのファイルを準備する。

IDEOGRAM.CONF

IDEOGRAM.POSITION.CONF

IDEOGRAM.LABEL.CONF

TICKS.CONF

BANDS.CONF

 

 

それぞれのファイルの中身は以下の通り。

> $cat IDEOGRAM.CONF

<ideogram>

#boxの情報

<spacing>

break   = 0.5r

default = 0u #これを0にすることで環状になる

</spacing>

 

<<include ideogram.position.conf>>

<<include ideogram.label.conf>>

<<include bands.conf>>

 

radius*       = 0.825r

 

</ideogram>

 

 

> $cat IDEOGRAM.POSITION.CONF

radius           = 0.775r

thickness        = 50p

fill             = yes

fill_color       = white

stroke_thickness = 2

stroke_color     = black

 

 

> $cat IDEOGRAM.LABEL.CONF

show_label       = yes

label_font       = default

label_radius     = dims(image,radius)-30p

label_size       = 24

label_parallel   = yes

label_case       = lower

label_format     = eval(sprintf("chr%s",var(label)))

 

 

> $cat TICKS.CONF

show_ticks          = yes

show_tick_labels    = yes

 

<ticks>

radius           = dims(ideogram,radius_outer)

orientation      = out

label_multiplier = 1e-4

color            = black

size             = 20p

thickness        = 3p

label_offset     = 5p

<tick>

spacing        = .1u

show_label     = no

</tick>

 

<tick>

spacing        = .5u

show_label     = yes 

label_size     = 18p

format         = %d

</tick>

 

<tick>

spacing        = 5u

show_label     = yes

label_size     = 40p

format         = %d

</tick>

 

</ticks>

 

 

> $cat BANDS.CONF

show_bands            = yes

fill_bands            = yes

band_stroke_thickness = 2

band_stroke_color     = white

band_transparency     = 0

 

 

 

 

 

 

node.txtを解析を行うディレクトリ(/Users/user/Documents/circos_training/)に保存。ファイルの中身は下記の通り。

cat node.txt

 

chr - node1 node1 0 449142 chr1

chr - node2 node2 0 398826 chr2

chr - node3 node3 0 350896 chr3

chr - node4 node4 0 246509 chr4

chr - node5 node5 0 235822 chr5

chr - node6 node6 0 214352 chr6

chr - node7 node7 0 181306 chr7

chr - node8 node8 0 141627 chr8

chr - node9 node9 0 70584 chr9

chr - node10 node10 0 28980 chr10

 

 

実行する。

circos -conf main.conf

 正常に終了するとpngファイルが出力される。

 

f:id:kazumaxneo:20170327102027j:plain

うまくできた。

 

 

 

 

 

今度はorf情報を追加してみる。orfの描画は1例としてtile機能で表現できると記載されている。

http://circos.ca/documentation/tutorials/2d_tracks/tiles/lesson

 

<plots> </plot>で囲んだ領域にorf情報を記述する。main.confは以下のようになる。

 

 

 

# 1.2 IDEOGRAM LABELS, TICKS, AND MODULARIZING CONFIGURATION

karyotype = /Users/user/Documents/circos_training/plectonema/chr_orf.txt

chromosomes_units = 100000

 

<<include ideogram.conf>>

<<include ticks.conf>>

 

<image>

<<include etc/image.conf>>                

</image>

 

<plot>

type            = tile

layers_overflow = hide

 

 <plot>

 file        = sense_orf.txt

 r1          = 0.95r

 r0          = 0.95r

 orientation = out

 layers      = 1 #レイヤー1

 margin      = 0.01u

 thickness   = 50

 padding     = 1

 stroke_thickness = .5

 stroke_color     = black

 </plots>

 

 <plot>

 file        = antisense_orf.txt

 r1          = 0.90r

 r0          = 0.90r

 orientation = out

 layers      = 1 #レイヤー2

 margin      = 0.01u

 thickness   = 50

 padding     = 1

 stroke_thickness = .5

 stroke_color     = red

 </plots>

 

</plots>

 

 

<<include etc/colors_fonts_patterns.conf>> 

<<include etc/housekeeping.conf>> 

 

 

orf情報は以下のようなファイルを準備した。

> $cat sense_orf.txt

chr1 130 1470 + color=black

chr1 1550 2029 + color=black

chr1 4431 5162 + color=black

...

chr1 5782854 5782925 + color=black

chr1 5936365 5936436 + color=black

chr1 5936365 5936436 + color=black

 

 

> $cat antisense_orf.txt

chr1 2080 2418 - color=red

chr1 2408 2698 - color=red

chr1 2761 4080 - color=red

...

chr1 5772159 5772229 - color=red

chr1 6077090 6077162 - color=red

chr1 6077090 6077162 - color=red

 

 

 

今回はゲノム配列を一旦RASTサーバーでorf解析し、生じたgtfファイルから加工して作った。加工はスクリプトを使わずともexcelですぐ修正できる。

gtfがない場合、UCSCからダウンロードする。

 

なければNCBIかかDDBJからgene bankファイルを落とし変換する。もちろん自前のperlのスクプトで処理してもいい。


 

 

IDEOGRAMのboxだが、orfのboxがあればなしでもいいかもしれない。だが視覚的には輪郭線んに相当するものがあったほうがコントラストもでて見やすくなる。そこで今回は細いIDEOGRAMをorfの外に描画する。IDEOGRAM.LABEL.CONFを以下のように修正した。

 

> $cat IDEOGRAM.LABEL.CONF

radius           = 0.775r

thickness        = 20p

fill             = yes

fill_color       = white

stroke_thickness = 1

stroke_color     = black

 

 

 

実行する。

circos -conf main.conf

 正常に終了するとpngファイルが出力される。

f:id:kazumaxneo:20170327102105j:plain

次はRNA seqデータを表示してみる。全部は表示しないが、このようなものを作成できる。

 

 

 

 

 

RNA seqデータ。

f:id:kazumaxneo:20170327102156j:plain

ゲノムの繰り返し配列(LASTを使った)

f:id:kazumaxneo:20170327102205j:plain

今の所使う予定はないが、ヒストグラムや散布図も描画することができる。

自分が必要な機能だけ図を描きながら学んでいくのが手っ取り早いと思われる。