tetraの外部記憶箱

最新 追記
Category;

2012-03-25

_ [bioinfo][circos] Circosについて

次世代シーケンサーの普及により、様々な動植物や微生物のゲノム、ガン細胞のゲノム、個人ゲノムなど、ありとあらゆるゲノムが読まれ、毎回のようにトップジャーナルを飾るようになった。また、ゲノムだけではなく、エピジェネティクス解析やらトランスクリプトーム解析やら、とにかく配列情報が片っ端から読まれる時代へと突入した。ただ、こうした大規模な解析データのデータを論文などの紙ベースで提示するとなると、色々と限界があったりするが、とりあえずゲノム上にマップしてみて大まかな情報が一目でわかるように提示したいという時に、最近、論文上でよく見かけるのが「Circos」(http://circos.ca/)というソフトウェアで描画したサークル状のグラフだ。

20120325183949

Circosは、カナダの研究者が作ったPerlで書かれたソフトウェアで、テキスト形式の設定ファイルを読み込み、出版物レベルの綺麗なグラフを描いていくれるというもの。試しにダウンロードして動かしてみたので、その流れを紹介してみる。

まずは、Circos本体のファイルをダウンロードして解凍。ここでは/opt以下にファイルを置くことにする。

$ wget http://circos.ca/distribution/circos-0.56.tgz
$ tar xvzf circos-0.56.tgz
$ mv circos-0.56 /opt/
$ cd /opt/circos-0.56

Circosの実行ファイルは、binディレクトリ以下に展開されている。コマンドを実行する前に、必要なPerlのモジュールがシステムにインストールされているかをチェック。

$ cd bin
$ ./test.modules
ok Carp
ok Config::General
ok Cwd
ok Data::Dumper
ok Digest::MD5
ok File::Basename
ok File::Spec::Functions
ok File::Temp
ok FindBin
ok GD
ok GD::Image
ok GD::Polyline
ok Getopt::Long
ok IO::File
ok List::MoreUtils
ok List::Util
ok Math::Bezier
ok Math::BigFloat
ok Math::Round
ok Math::VecStat
ok Memoize
ok POSIX
ok Params::Validate
ok Pod::Usage
ok Readonly
ok Regexp::Common
ok Set::IntSpan
ok Storable
ok Sys::Hostname
ok Text::Format
ok Time::HiRes

上記のように、すべて「ok」ならば必要なモジュールは揃っているが、もしインストールされていないモジュールがあった場合は、CPANなどを使って、予めインストールしておく必要がある。ちなみに、僕の使っているシステム(Ubuntu-11.10)では、下記のようにモジュールをインストールする必要があった。(個人的にCPANよりapt-getが好きなので、そっちで入れてます)

$ sudo apt-get install libconfig-general-perl libmath-bezier-perl libmath-round-perl libparams-validate-perl libregexp-common-perl libreadonly-perl libset-intspan-perl libtext-format-perl perl-doc

その他:debパッケージでインストール
http://www.ubuntuupdates.org/package/core/precise/universe/base/libmath-vecstat-perl

また、お好みで実行ファイルの置いてあるbinフォルダへ、bashのPATHも通しておく。(以下、PATHが通っているものとして続ける)

さて、モジュールのインストールが終わったら、circosを実行してみよう。

$ circos -man
bash: bin/circos: /bin/env: 誤ったインタプリタです: そのようなファイルやディレクトリはありません

ありゃ、エラーだ。envの位置の整合性が取れていないらしいので、whichコマンドでenvの位置を調べ、/bin/envへシンボリックリンクを貼っておく。

$ which env
/usr/bin/env
$ ln -s /usr/bin/env /bin/env

これで準備OK、再実行。

$ circos -man
CIRCOS(1) User Contributed Perl Documentation CIRCOS(1)

NAME
____ _
/ ___(_)_ __ ___ ___ ___
| | | | '__/ __/ _ \/ __|
| |___| | | | (_| (_) \__ \
\____|_|_| \___\___/|___/
round is good
circos - generate publication-quality, circularly-composited plots of data and annotations layered on chromosome ideograms

使い方については、コース(http://circos.ca/documentation/course/)にとっても詳しいレッスンが書かれておりますので、それにしたがって学習すれば使いこなせるようになりそうです。 (目下、学習中)


2012-03-28

_ [bioinfo][circos] Circos学習コース準備編

前回は、Circosのインストールについて書いたので、今回からは、実際の使用法について概略を説明しようと思う。(自分の興味と時間がある限り・・・)

Circosは、サークル状に並べたゲノム上に様々なデータ(ヒストグラム、ヒートマップ等)やリンク(相同性遺伝子等、ゲノム間の任意の2点をペジェ曲線で結ぶ)をビジュアライズするためのソフトウェアだ。テキストファイルに書かれた設定ファイルを読み込み、そこに書かれたパラメータに従って画像を出力する。

$ circos --conf etc/circos.conf

(ちなみに、実行ファイルcircosはbinフォルダ内にあるので、PATHを通しておくと良い)

Circosは、様々な細かい設定が可能であり、まずは学習コース(http://circos.ca/documentation/course/)に例示された設定ファイルを必要に応じて改変してみるのが、覚えるのに一番手っ取り早いと思う。というわけで、今回は学習コースに必要な環境設定について解説したい。(言うまでもないが、UNIX環境での実行を前提とする)

まず、コースを始めるに当たって必要なファイルをダウンロードして展開を行う。

$ wget http://circos.ca/distribution/circos-course-0.03.tgz
$ tar xvzf circos-course-0.03.tgz

展開されたフォルダは、以下の3つのコンテンツが入っている。

  • hanodouts・・・6つのセッションに関するpdfファイル
  • slides・・・上記に関連したプレゼンテーションスライドのファイル
  • workstation・・・各レッスンで使用する設定ファイル等

workstationは、6つのセッション(S=1,2,...,6) と、それに付属する複数のレッスン(L=1,2,...)で構成されている。必要な設定ファイル、データ、お手本となる画像などは、それぞれetc、data、imgという名前のフォルダにまとめられている。(ちなみに、セッション内全体で共通して使用する設定ファイルやデータなどは、親の階層にあるetc、dataにある)

下記のように、各レッスンのフォルダへ移動してcircosを実行すると、フォルダ内に画像ファイル(circos.png)が出力される。

$ cd S/L
$ circos -conf etc/circos.conf

なお、一部のレッスンでシンボリックリンクが適切でないケースがあるので、その場合は、リンクを貼り直しておく必要があるようだ。例えば・・・

$ cd 2/5
$ circos --conf etc/circos.conf debuggroup conf 0.09s welcome to circos 0.56
debuggroup conf 0.09s loading configuration from file etc/circos.conf
debuggroup conf 0.09s looking for conf file etc/circos.conf
debuggroup conf 0.09s found conf file etc/circos.conf
Config::General The file "ticks.conf" does not exist within ConfigPath: etc.etc/etc./opt/circos-0.56/bin/etc./opt/circos-0.56/bin/../etc./opt/circos-0.56/bin/.../opt/circos-0.56/bin! at /opt/circos-0.56/bin/../lib/Circos/Configuration.pm line 432

となり、どうやらticks.confというファイルがうまく読み込めていない様子。lsコマンドで確認してみると・・・

$ ls -l etc/
合計 8
-rw-r--r-- 1 hoge hoge 437 2011-06-16 09:40 circos.conf
-rw-r--r-- 1 hoge hoge 100 2011-06-05 12:45 ideogram.conf
lrwxrwxrwx 1 hoge hoge 41 2011-06-18 05:38 ticks.conf -> circos-course-0.03/../../1/etc/ticks.conf

となっており、シンボリックリンクがおかしいようだ。(相対パスの場合、リンクファイルのあるディレクトリからの相対的な位置を示す必要がある)面倒だが、一旦削除してからシンボリックリンクを貼り直す。

$ cd etc
$ rm ticks.conf
$ ln -s ../../1/etc/ticks.conf
$ cd ..
$ circos --conf etc/circos.conf
debuggroup conf 0.09s welcome to circos 0.56
debuggroup conf 0.09s loading configuration from file etc/circos.conf
debuggroup conf 0.09s looking for conf file etc/circos.conf
debuggroup conf 0.09s found conf file etc/circos.conf
debuggroup summary 0.26s debug will appear for these features: summary
debuggroup summary 0.26s parsing karyotype and organizing ideograms
debuggroup summary 0.26s applying global and local scaling
debuggroup summary 0.27s allocating image, colors and brushes
debuggroup summary 5.96s drawing highlights and ideograms
debuggroup summary,output 6.07s generating output
debuggroup summary,output 6.14s created PNG image ./circos.png (41 kb)

今度はうまく走った。


2012-03-29

_ [bioinfo][circos] ideogramのレイアウトについて

前々回のインストール編前回の学習コース準備編に引き続き、今回から実際にCircosの使い方についてレクチャーを行います。

20120329003942

Circosで最も中心となるのがideogramと呼ばれるトラック(B)だ。これは、染色体を模式的に描いたものであり、プロットしたデータの染色体上の位置を示すガイドの役割をしている。各種データは、ideogramの外側(A)および内側(C~E)にプロットされる。

染色体の並び方、色、大きさ等は、設定ファイルによって任意にカスタマイズすることが可能だ。まずは、ideogramの取り扱いから学習してゆくことにする。

百聞は一見にしかず、学習コースのセッション2/レッスン1の設定ファイル(circos.conf)を見てみよう。

# karyotype(染色体の情報)の書かれたファイルの指定。
karyotype = ../data/karyotype.5chr.txt
# 染色体のユニット長の設定
chromosomes_units = 1000000
# 染色体の表示をデフォルトに設定
chromosomes_display_default = yes
# 以下、外部の設定ファイルの読み込み
<<include ideogram.conf>
<<include ticks.conf>>
<image>
<<include ../../etc/image.conf>>
</image>
<<include ../../etc/housekeeping.conf>>

karyotypeというパラメータで指定したファイルが読み込まれ、染色体の名前、ラベル、開始位置、終了位置、表示色等が指定される。染色体の名前を単純にchr1, chr2,..., chr5とし、そのサイズが順に5, 10, 20, 50, 100 Mbであるようなゲノムについて書かれた例(karyotype.5chr.txt)を以下に示す。

# chr - CHRNAME CHRLABEL START END COLOR
chr - chr1 1 0 5000000 spectral-5-div-1
chr - chr2 2 0 10000000 spectral-5-div-2
chr - chr3 3 0 20000000 spectral-5-div-3
chr - chr4 4 0 50000000 spectral-5-div-4
chr - chr5 5 0 100000000 spectral-5-div-5

ここで最後のカラムの表示色については、インポートされたhousekeeping.confの<colors>ブロックで定義されている。ここで示した例では、Brewer Palette(http://colorbrewer2.org/)による5段階カラースペクトルを指定している。直接、色の名前を指定することも可能。(例えば、vdred, dred, red, lred ,vlred・・・v=very, d=dark, l=lightといった具合に)

実際に、設定ファイルを読み込んで画像を作ってみよう。

$ cd 2/1
$ circos -conf etc/circos.conf
・・・
created image at ./circos.png

カレントディレクトリに下記のような画像がアウトプットされる。

20120329003943

ideogramの詳細なパラメータの設定は、circos.confからインポートされる設定ファイル、ideogram.confの中の<ideogram>ブロックに記述されている。上記の例では、下記のような設定となっている。

<ideogram>
<spacing>
default = 2u
</spacing>
<<include ../../etc/ideogram.conf>>
</ideogram>

defaultのパラメータで、染色体間の間隔は2uに設定されている。ここで、uという単位はchromosomes_unitsというパラメータによって設定されたユニット長(1000000 = 1 Mb)が適用されるので、上記の例では2u = 2 Mbの間隔で描画される事を意味する。従って、もしdefault = 10uに変更を行えば、下記のように5倍の間隔で染色体が配置されることになる。

20120329003944

上記のパラメータは、全ての染色体の配置に反映されたが、<pariwise>ブロックを使うことにより、染色体の間隔を個別に指定することも可能だ。

<ideogram>
<spacing>
default = 10u
<pairwise chr1;chr2>
spacing = 2u
</pairwise>
<pairwise chr5;chr1>
spacing = 25u
</pairwise>
</spacing>
<<include ../../etc/ideogram.conf>>
</ideogram>

例えば、上記のように設定した場合、chr1とchr2との間隔は2u、chr5とchr1との間隔は25u、それ以外は10uとなり、下記のような画像が出力される。(このように、必要な数だけ<pairwise>ブロックを増やすことも可能)

20120329003945

また、間隔を指定する際にchromosomes_unitsで定義した単位uを使用したが、代わりにrを使用すれば、全ての表示する染色体長のトータルサイズに対する割合として指定することができる。例えば、default = 0.1rと指定すれば、トータルのゲノムサイズ185 Mbの10%、すなわち18.5 Mbの間隔での表示となる。


2012-03-31

_ [photo][BESSA R2A][NOKTON classic 35mm F1.4] 上野動物園にて

はじめての35mmです。いや、35mmは選択肢が多く、どれを選ぶべきか思案に暮れたのですが、まぁライカ純正レンズに手を出すほど裕福ではございませんので、コシナのノクトン・クラシックと相成りました。

PENTAX(ペンタックス)のカメラ PENTAX K-5で撮影したインテリア・オブジェクト(BESSA R2A + NOKTON Classic 35mm F1.4)の写真(画像)

「クラシック」と言うからには、オールドレンズの味を残しているのかと思いきや、結構、クッキリハッキリ写るレンズなのですねー。その辺、同じノクトン・クラシックという名を冠する40mmとは、全く違う味付けのようです。

VOIGTLANDER(フォクトレンダー)のカメラ Bessa-R2Aで撮影した動物(オットセイ)の写真(画像)

VOIGTLANDER(フォクトレンダー)のカメラ Bessa-R2Aで撮影した動物(ホッキョクグマ)の写真(画像)

大迫力のホッキョクグマ、娘がビビりまくってましたw