LoginSignup
77
78

More than 5 years have passed since last update.

Cytoscapeやネットワーク解析・可視化に関する情報の集め方

Posted at

Cytoscapeやネットワーク解析と可視化に関する情報リソース

これは昨日の記事を読んでこういったものを実際に作ってみたいと思われた方に向けての補足です。とても基本的な情報ばかりですので、経験者の方には少々物足りないと思いますが…

はじめに

データ可視化という分野の中で、ネットワークの可視化は比較的ポピュラーな手法ですが、実務家向け(最新の計算機科学の研究論文ではなく、実務寄り、つまり実際にデータ解析を行う人々向け)の最新の情報は、あまりまとまった形で入手する事ができません。そして残念ながらほとんどの文献は英語で書かれています。ここでは、実際にネットワーク分析と可視化を行ってみたい方々に向けて、Cytoscape関連のリンクを中心としたいくつかのポインタを集めてみたいと思います。

Cytoscapeの情報

Cytoscape公式サイト

コンソーシアムが管理する公式のサイトです。最新版はこちらからダウンロードしていただけます。簡単なイントロダクションスクリーンショット集などが含まれます。画像や文章はCC BYライセンスで自由に再利用して下さい。

Cytoscape App Store

Appと呼ばれる、Cytoscapeの上に作られた拡張プログラムのレポジトリです。我々の組織は、生命科学研究を対象とした政府資金で運営されているため、どうしても生命科学研究向けのAppが多いですが、もっと一般的な問題に利用できるものも多く含みます。幾つか例をあげます:

  • AllegroLayout - OpenCLを利用した、GPUベースのレイアウトアルゴリズム実装。とても速いです。同じアルゴリズムをCPU実装した場合に比べて数百倍の速度が出ます。
  • DynNetwork - 動的なネットワークをアニメーションとして表示するアプリケーション。こちらのビデオから実際に動いている例をご覧になれます
  • clusterMaker2 - GUIからネットワーククラスタリングを行えるアプリケーションです。

このように、ネットワーク解析と可視化全般に使える、問題ドメインから独立したアプリケーションをCytoscape上に作ることも可能です。ここはJavaプログラマの方々も多いと思われるので、興味のある方は是非挑戦してみてください。

Cytoscape Wiki

Cytoscapeに関する頻繁に更新される情報を集めたサイトです。マニュアルもこのWikiを利用して作成されています。Cytoscapeをダウンロードした時に中に含まれるPDFは最新のリリース版のマニュアルですが、それより後に開発された機能などはこちらに順次追加されます。マニュアルはこのWikiから自動生成されるため、基本的に内容は同一です。

チュートリアル

現在、最新版のチュートリアルはこちらに集約しています。

平易な英語で書かれていますので、まずこのクイックスタートだけでも挑戦してみてください。

日本語のビデオチュートリアル

DBCLSの統合TVプロジェクトの皆さんが作ってくださいました。DBCLSは日本における各種生物学的データベースやツールをより使いやすい形で開発・維持することを目的に設立された組織で、ライフサイエンス系の研究で使われるツール群の紹介など、様々な啓蒙活動も行っておられます。無論これらは生物学者向けに作られたものですが、ネットワーク解析という視点からは、基本的な部分の操作は全く同じなので、分野外の方にも十分役に立つと思います。

その他

  • 公式Twitterアカウント - 最新の情報はこちら
  • Cytoscape Publications (Tumblr) - ほとんどが生命科学研究関連ですが、実際の査読付き論文に使われているCytoscapeで作成された図が載っていますので、眺めるだけで何となくどのようなことが出来るのか理解していただけると思います。

メーリングリスト

コンソーシアムは、Google Groupsを利用していくつかのメーリングリストを運営しています:

  • cytoscape-help - 一般的な使い方の質問、バグ報告などのためのリスト。
  • cytoscape-discuss - 一般的な話題。CytoscapeのApp開発や技術的な質問、高度な使い方等の話題はこちらに。
  • cytoscape-announce - コンソーシアムからのお知らせや、Appを開発した方がリリースを報告するためのリスト。

これらの公式メーリングリストは、毎週日本時間で木曜日の深夜、私も含んだコア開発者の電話会議で必ず目を通しますので、突っ込んだ質問のある方はこちらに英語で質問していただくのが一番確実です。

開発者向けのリソース

代表的なネットワーク解析ツール

ここからは、ネットワーク解析一般で使われるツールの情報です。

igraph

特にRユーザーに人気のあるネットワーク解析パッケージ。実際に計算する部分はCで実装されているので、Cのライブラリ、Pythonのモジュールとしても利用可能です。グラフデータの入出力、ランダムグラフジェネレータ、ネットワークの統計解析、コミュニティ抽出、ネットワークに対する各種操作(マージ等)がまとめてあります。昨日の記事の中で紹介した例も、これを使ってCytoscapeとRを連携させています。

好みの問題かもしれませんが、これを使う場合はRで実行することをおすすめします。Python版は若干クセがあるので。

NetworkX

Python向けのグラフ解析ソフトウェア。igraphと同じような機能がPython向けに実装されています。コミュニティ抽出など、若干igraphより劣る部分はありますが、Pythonからはこちらのほうが使いやすいので、必要に応じてigraphと使いわけるのがおすすめです。

GraphLab

こちらは比較的新しい、大規模な解析を念頭に作られた新世代のライブラリです。C++で記述されていますが、抽象度の高いPython APIからすべての機能にアクセスできます。SFrameと呼ばれるDataFrameを模したテーブル構造、SGraphと呼ばれる大規模グラフのためのデータ構造、そして機械学習モジュールからなる大規模なライブラリで、データ解析者がハイレベルなAPIから短時間で機械学習を含む解析パイプラインを構築できるようにデザインされています。ネットワーク関係の解析機能はまだ少ないですが、巨大グラフを念頭に置いて、AWSのEC2で実行させるようなユースケースも考慮に入れていますので、今後の注目です。実際のコードがどのようなものになるかは、この辺りをご覧ください:

日本語の情報

残念ながら日本語のリソースは充実しているとは言いがたいです。しかし、書籍も僅かですが出ています。

ウェブ上のリソース

Rとigraphでの解析がどのようなものになるのかを体験するにはとても良い教材です。現在、チュートリアル作者の方のご厚意により、このサンプルをR+igraph+Cytoscapeを利用した、よりフレキシブルなものにアップデートする作業を私が行っております。

書籍

これは日本語で書かれたネットワーク分析と可視化に関する唯一の実務家向け書籍かもしれません。理論的な背景について学びたい方にはいくつか書籍があるのですが、キーボードに手をおいて、実際にソフトウェアを使いながら学べるものはこれくらいでしょう。ソフトウェアの解説を含む書籍の宿命ですが、あらゆる本が出した瞬間から陳腐化が始まります。この本も例外ではなく、igraphとsnaパッケージ周辺の情報がちょっと古くなっています。ただし、概念部分を解説している部分は問題ないので、ウェブ上の最新情報と合わせて読まれることをおすすめします。

おわりに

急いで書いたために、これもまだ抜け落ちている情報が多いですが、少なくともCytoscapeに関しては最新の情報を追うためのポインタは示せたと思います。今後の課題としては、

  • 具体的な利用法の日本語解説記事の執筆
  • ユーザーが日本語で情報交換できる場の立ち上げ

などがあります。どうしても英語での執筆が優先されてしまうので申し訳ないのですが、できるだけ早急にこれらも行いたいと思います。実は、日本語のメーリングリストもあるにはあるのですが、どうしても回答者が複数居ないと持続性に難があるので、何か良い方法がないかと模索中です。

私の執筆した記事に関すること、Cytoscpeのちょっとした疑問などならば、私にTwitterで話しかけていただければお答えしますので、お気軽にどうぞ。

Keiichiro Ono
Cytoscape Consortium
National Resource for Network Biology

77
78
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
77
78