スキップしてメイン コンテンツに移動

投稿

8月, 2010の投稿を表示しています

RNA-seq から発現量が変動した遺伝子をどのように得るか

RNA-seq のデータから、統計的に有意な変動を示す遺伝子をどのように得るか。Microarray ときにも散々議論されましたが、RNA-seq でも同じく議論になっています。現在提案されている手法についてまとめてみました。

まだ全部には目を通せてません。すべて読んだ後に解説を書くかもしれませんが、網羅している自信がないので、先にリンクを列挙しておきます。主に論文とツールのソースコード、マニュアルなどです。ほかに情報をお持ちの方は教えてくださいな。

1. cufflinks と cuffdiff
http://cufflinks.cbcb.umd.edu/howitworks.html の後半に cuffdiff の説明がある。

FPKM
Trapnell C, Williams BA, Pertea G, Mortazavi AM, Kwan G, van Baren MJ, Salzberg SL, Wold B, Pachter L. Transcript assembly and quantification by RNA-Seq reveals unannotated transcripts and isoform switching during cell differentiation. Nature Biotechnology doi:10.1038/nbt.1621
http://dx.doi.org/10.1038/nbt.1621


Jensen–Shannon divergence
http://en.wikipedia.org/wiki/Jensen%E2%80%93Shannon_divergence

以下の3つも知っておいたほうが理解しやすい良い。

RPKM
Ali Mortazavi, Brian A Williams, Kenneth McCue, Lorian Schaeffer and Barbara Wold Mapping and quantifying mammalian transcriptomes by RNA-Seq Nature Methods, volume 5, 621 - 628 (2008)
http://www.nature.com/nmeth/journal/v5/n7/abs/nmeth.1226.html

Hui Jian…

Rails 3 とGoogle Chart APIを使って7分で、、、の検索機能を4分ぐらいで Ajaxにするよ

Rails 3 界のウパニシャッドこと、WEB+DB PRESS Vol.58 の詳解 Rails 3 を参考にしながら、というかほぼそのままですが、「Rails 3 とGoogle Chart APIを使って7分ぐらいで発現データベースを作るよ」の検索機能を Ajax 化します。

Rails 3 では _remote みたいなヘルパーがなくなっています。form に :remote => true をつけるだけとか便利すぎる!!!



ページの読み込みなしにグラフが表示されているのがわかるでしょうか?

全体で20分ぐらいでした。これでいちおう一段落ですが、次やるとしたら paginate とかですかね?

Rails 3 とGoogle Chart APIを使って7分で、、、に10分で検索機能をつけるよ

WEB+DB PRESS Vol.58 の Rails 3 の記事を参考にしながら、「Rails 3 とGoogle Chart APIを使って7分ぐらいで発現データベースを作るよ」に検索機能を付けます。

今回は少し Rails 3 っぽいところが出てきます。Rails 3 から採用されたコアライブラリ ActiveModel を使って検索機能を追加しています。ActiveModel は簡単に言うと、ActiveRecord のなかで汎用性の高い部分を取り出して抽象化した、ということだと思います。これで、ActiveRecord のインターフェイスから切り離されて、モデル層に共通したアクセスができるようになりました。今回はこれを使って、検索用のモデルを作成します。

あと model を scope に変換しているところが Rails 3 らしいのだと思います。



やっぱり途中で切れた><



もう後半。バグ出しまくりwww もう面倒くさいのでそのままアップするよw 一発録りなので勘弁してください><

気力が残っていたら Ajax 化も録画するかも...

Rails 3 とGoogle Chart APIを使って7分ぐらいで発現データベースを作るよ

以前書いた記事、Ruby on Rails + Gruffを使って、11分で作る遺伝子発現データベースが、すっかり古くなってしまったので Rail3 RC で作り直してみました。また以前はグラフ表示に Gruff を使っていたのですが、今回は Google Chart API を使いました。





Google Chart API の URL はコピペですまん。覚えれなかった... あとグラフ書くためのURLを出力する部分でバグ出してキョドってるしw 編集なしのほぼ一発録りなので勘弁してください><

スクリーンキャストのソフトが5分までしか録画できなかったので2つ分割されています。Rails 使いにとってみれば、とても簡単なことしかしていないので解説書くのが面倒です>< 気が向いたから書くかも。

これに加えて検索機能を付けるところのムービーも録画してアップする予定。コードもそのうち github にアップします。

追記: 「Rails 3 とGoogle Chart APIを使って7分で、、、に10分で検索機能をつけるよ」をアップしました。

この本が参考がとても参考になりました。必読だと思います。
WEB+DB PRESS Vol.58

参考:
Ruby on Rails + Gruffを使って、11分で作る遺伝子発現データベース
Google App EngineとChart APIを使って簡単な遺伝子発現データベースを作ってみた
R + Rapache + brew + ggplot2 + RSQLite で作る遺伝子発現データベース

Google Chart APIでGraphvizが使えるようになっているよ

Google Chart APIで、グラフ描写ツールである GraphViz で使われている dot 言語が使えるようになっています。

GraphViz Charts (Experimental) / Google Chart API

以下のような graph が簡単に書けます。

このグラフを dot 言語で書くと以下のようになります。
[code]
digraph loveplus {
rankdir=LR;
size="8,5"
node [shape = doublecircle]; N, I;
node [shape = circle];
N -> I [ label = "Love" ];
R -> I [ label = "Love)" ];
M -> I [ label = "Love" ];
I -> N [ label = "Lover" ];
I -> R [ label = "Sister" ];
I -> M [ label = "Friend" ];
}
[/code]
これを Google Chart API で描写したいときは、
http://chart.apis.google.com/chart?cht=gv&chl=digraph{dot言語のコード}&chs=500x600
という書式で書きます。dot言語コードの中括弧の中身(2-11行目)を"dot言語のコード"に入れます。chs は画像のサイズを指定しますが、300000 pixels 以下にする必要があります。

ChromeだとOpenSearchでPubMed検索が簡単にできる

バイオの研究者は、一日のうち何度も PubMed にアクセスするのではないでしょうか? 今までアドレスバーに、pubmed.gov と入力してアクセスしていたのですが、もっと簡単な方法を発見しました。ただし Chrome 限定で、一度でも Chrome で PubMed にアクセスしたことがあることが条件です。

Chrome のアドレスバーに puと入力して Tab key を入力します。

するとアドレスバーが以下のようになります。


続けて、検索ワードを入力し、Enter key を押すと検索できます。複数ワードのときはスペースを打ちます。

これはOpenSearchという仕組みを使っています。ざっくりと言うと検索エンジンの説明やそのURLなどの記述 (OpenSearch Description document) のフォーマットや、検索結果のフォーマットなどを標準化したものです。

PubMed のソースを読んでいて気付いたのですが、http://www.ncbi.nlm.nih.gov/corehtml/query/static/pubmedsearch.xml に OpenSearch Description document がありました。
[code]
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>PubMed</ShortName>
<Description>Use PubMed to search 17 million citations from MEDLINE and other life science journals for biomedical articles back to the 1800s.</Description>
<Tags>Entrez PubMed</Tags>
<Contact>pubmednew@ncbi.nlm.nih.gov</Contact>

Primer3の入力フォーマットが変わったのでeprimer3がエラー

いつからかわからないけど、Primer3 の入力フォーマットが微妙に変わったらしい。これまで、入力配列は

SEQUENCE=ATGCAGAGAG...

という形で指定していたが、

SEQUENCE_TEMPLATE=ATGCAGAGAG...

に変わったらしい。このせいで EMBOSS の eprimer3 が SEQUENCE タグを発見できなくて動かない。

Primer3 のコードをいてみたら、read_boulder.c の以下の箇所が
[code]
if (COMPARE("SEQUENCE_TEMPLATE")) { /* NEW WAY */
if (/* p3_get_seq_arg_sequence(sa) */ sa->sequence) {
pr_append_new_chunk(parse_err, "Duplicate tag: ");
pr_append(parse_err, "SEQUENCE");
} else {
if (p3_set_sa_sequence(sa, datum)) exit(-2);
}
continue;
}
[/code]
となっている。なぜ変えたしw なにが NEW WAY だよw

よって read_boulder.c 内の SEQUENCE_TEMPLATE を SEQUENCE に変更してコンパイルすれば、eprimer3 で使える primer3_core ができるよ。

Primer3 2.2.2-beta と EMBOSS-6.3.1 の話でした。そのうち、EMBOSS のなかのひとがなんとかしてくれるでしょう。

追記: cvs の EMBOSS のソースをみましたが、eprimer3 はまだ新しいファイルフォーマットに対応していないようですね。

ゲノム座標を異なるゲノムバージョンの間で変換するよ

マイクロアレイのアノテーションが古い、などの理由でゲノムのバージョンが古い座標を使ったファイルを使わなければならないときってありますよね? でも新しいゲノムのバージョンで解析しているほかのデータと一緒に見たい!! そんなときに座標を変換する方法を調べてみました。

(注: もちろん元のDNA配列が得られるなら自分でマップしたほうがいいですよ)

ここでは、マウスゲノムの mm8 から mm9 へ座標変換します。Linux が前提ですが、ほかでもかわりないです。変換されるファイルの形式は bed が基本ですが、オプションでほかのファイルにも対応できそうです。bed ファイルでも browse 行や track 行があるとエラーになるので除いておきましょう。

まず変換テーブルをダウンロードします。

curl -O http://hgdownload.cse.ucsc.edu/goldenpath/mm8/liftOver/mm8ToMm9.over.chain.gz
gzip -d mm8ToMm9.over.chain.gz


ほかのゲノム間を比較したい場合は、golden path のダウンロードサイトの下に liftOver というディレクトリがあって、そこに変換テーブル (*.chain) があります。

変換プログラムをダウンロードしてインストールします。

curl -O http://hgwdev.cse.ucsc.edu/~kent/exe/linux/liftOver.gz
chmod +x ./liftOver
sudo cp ./liftOver /usr/local/bin/


では変換してみましょう。mm8.bed が変換したい mm8 なゲノム座標のファイルで、mm9 な座標に変換後 mm9.bed に保存されます。unmapped.txt は座標変換が失敗したエントリが保存されます。

liftOver mm8.bed mm8ToMm9.over.chain mm9.bed unmapped.txt


とても簡単、とても高速!!! ありがとう Dr. Jim Kent! あと liftover を教えてくれた @32nm ありがとう

Liftover Web版もありますよ。