tetraの外部記憶箱

«前の日記(2012-02-16) 最新 次の日記(2012-03-28)» 編集
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/)にとっても詳しいレッスンが書かれておりますので、それにしたがって学習すれば使いこなせるようになりそうです。 (目下、学習中)