2017年10月09日(月)

ENCODE shRNA-RNAseq のコントロール実験対応表

投稿者:

ENCODEのshRNA-RNAseqはこりゃ便利だということでここのところENCODEコンソーシアムから頼まれたわけでもないのにウルトラ超絶宣伝していますが、このデータをよくよく見てみると、実験群ごとにだいぶ様子が違うのに気付きます。例えば、下の図はとあるふたつのコントロール実験(control shRNAでノックダウンした実験)におけるACTBのリードの張り付き方を見たものですが、、、

リードの張り付き方のパターンがえらく違います。

おそらくですが、このshRNA-RNAseq。一度に全てのノックダウン実験を行うのは無理筋なので、何回かに分けて、時間も、もしかすると場所も異なる場所で行われていると思うのですが、その時の細胞の状態、RNA抽出からライブラリー作製のクオリティー、それらは完璧に揃わないのでしょう。ですので、そのノックダウン実験が、いつ、どのコントロール実験と一緒に行われたのかという情報は非常に重要な意味を持つと思われます。実際、個々のデータのサイトを見てみると、、

左下の方にcontrols: というところに、このノックダウン実験と同じ時に行ったコントロールノックダウン実験のIDが書いてあります。ところがこの情報は、上記のように個別の実験のサイトを訪れれば確かに書いてあるのですが、先日のこのブログでも紹介したENCODEが提供しているmetadata.txtには、どこを見ても入っていないんですよね。うーむ。それぐらい自分でなんとかしろということか、、、

というわけで、ENCODEの各実験のExperiment.accessionと対応するコントロール実験のExperiment.accessionを並べたファイルを作りました。えっちらおっちらリンクをコピペしてマニュアルで入力したものなので間違いがあるかもしれませんが、、、ENCODE提供のmetadata.tsvとこのmetadata_controlexp.txtのファイルをExperiment.accessionをキーにしてmergeしたものを用意しておけば、何かと役にたつかも?しれません。(注:なんかこの二つのファイルを単純にmergeコマンドで統合すると、all=FALSEにしても何故か行数が増えてしまうので、for文でくっつけてみました。もっと良いやり方がある、、、はず。)

meta=read.delim("metadata.tsv")
meta_cont=read.delim("metadata_controlexp.txt")
meta1=meta
num=nrow(meta_cont)
meta1$Control.experiment.accession=""
for (i in 1:num){
  ID_exp=as.character(meta_cont$Experiment.accession[i])
  ID_cont=as.character(meta_cont$Control.experiment.accession[i])
  r1=grep(ID_exp,meta1$Experiment.accession)
  meta1$Control.experiment.accession[r1]=ID_cont
}
write.table(meta1,file="metadata_plus.txt",quote=F,row.names = F,sep='\t')

しっかし、GAPDHの発現量一つとって見ても、結構コントロール実験ごとに違うんですよね。referenceとなる遺伝子の発現がバラツキまるときにどう考えるか。ちょっとTWでつぶやいたところ、速攻2分後に専門家の方からレプライがありました。SNS恐るべし。

 

 

 

 

 

とはいえ、バラつくことが織り込み済みのGAPDHはさておき、GAPDHと並んでコントロール実験の双璧、ACTBでも、実際のところENCODEのデータを見る限り、GAPDHに比べればずっとマシですが、実験ごとに結構ばらつくようです。だからこそ、同じバッチでやったコントロール実験が大事なのだと思いますし、逆に言えば、これだけ標準化に気を配っているENCODEデータのACTBですらこれだけの振れ幅がありうる、と言うことは、肝に据えておいた方が良いことなのかな、と思います。

 

 

ですので、揃いすぎているエラーバーの方が、

「ちょっと待て このエラーバー ありえない」

みたいな。むしろある程度バラつくことこそが真実、みたいな印象がありますね。

 

中川 真一

北海道大学 薬学研究院 教授
▶ プロフィールはこちら

ブログアーカイブ

ログイン

サイト内検索