講習会のページに戻る
RおよびBioconductorを使ったバイオデータ解析
講習では【実習】を皆さんとやっていきます。早くできてしまった人は、【発展】をやってみたりしてください。
Rのインストールは以下の統合TVを参考に行っておいてください。
- 参考:統合TV
目次
_ 0. はじめに
_ 1. パイチャート
- 【実習1】Rを起動し以下のファイルに記述されたRのコマンド(01piechart.r)を実行しなさい。データファイルとして必要なsrabystudy.txtをgithubのサイトからダウンロードし、現在作業しているディレクトリにおいておく必要があります。実行後、そのディレクトリにpie1.pngというファイルが新たに生成されていることを確認しなさい。
png("pie1.png")
dat <- read.delim2("srabystudy.txt", header=F)
names(dat) <- c("Study", "freq")
dat <- cbind(dat, serial=seq(dim(dat)[1]))
dat2 <- dat[ dat$freq != 0, ]
pie(dat2$freq, labels=paste(dat2$Study, dat2$freq), col=rainbow(dim(dat[1])[dat2$serial]), main="SRA by Study")
dev.off()
←左の+マークをクリックするとこのスクリプトの経緯が…
Bono H et al. "Systematic Expression Profiling of the Mouse Transcriptome Using RIKEN cDNA Microarrays" Genome Res 2003の図1を作成するために使ったものです。実際には、このRコードを生成するPerlのプログラムを作成してからそれをRで実行していました。現在よく使われているGSEA(Gene Set Enrichment Analysis)のハシリで、遺伝子にアノテーションされたGene Ontologyの高次(根っこに近い)タームで集計してその分布を見ていました
_ 2. 階層的クラスタリング
- 【実習2】Rを起動し以下のファイルに記述されたRのコマンド(02hclust.r)を実行しなさい。データファイルとして必要なmatrix.txtをgithubのサイトからダウンロードし、現在作業しているディレクトリにおいておく必要があります。実行後、そのディレクトリにhclust.pngというファイルが新たに生成されていることを確認しなさい。
png("hclust.png")
d <- read.table('matrix.txt')
c <- hclust(as.dist(d), method = 'average')
plot(c, hang=-1)
dev.off()
←左の+マークをクリックするとこのスクリプトの経緯が…
このプログラムはかつての蛋白質・核酸・酵素に寄稿したレビューで紹介したもので、当時階層的クラスタリングをフリーウェアで実行する手段として重宝された(はず)。Bono H and Nakao MC, PNE 2003
_ 3. Affymetrixデータ正規化
このパートは以下のブログを参考に。 http://bonohu.jp/blog/2013/06/17/justrma/
- 【実習3】Bioconductorを利用しましょう。Rを起動して以下のコマンドでaffy libraryをインストールしなさい。
source("http://bioconductor.org/biocLite.R")
biocLite("affy")
そして、affy library中のjustRMA関数を利用して、RMA(Robust Multichip Average)正規化してみましょう。自らのAffymetrix Genechip データ(CELファイル)がある人はそれを、ない人はGSE17264 Comparative transcriptome analysis of dedifferentiation in porcine mature adipocytes and follicular granulosa cellsにある生データ(CELファイル)で実行しましょう。実行する際、Session → Set Working Directory を、CELファイルをダウンロードしてきたディレクトリに指定することがポイントです。それができたら、以下のコード(03justrma.r)を実行します。
source("http://bioconductor.org/biocLite.R")
biocLite("affy")
library(affy)
write.exprs(justRMA(), file="RMA.txt")
その結果生成されるRMA.txtファイルがRMAによって正規化された遺伝子発現データになります。
←左の+マークをクリックするとこの節の経緯が...
このマイクロアレイデータは以下の論文で我々が発表したもので、全く同じ手段で正規化を行いました。また、発展課題にある公共遺伝子発現データを足したデータ解釈はやはりこの論文で実際に発表したもので、我々のマイクロアレイデータの生物学的解釈(DFATがMA(Mature AdipocyteよりもiPSに近い)に役だっています Ono H, Oki Y, Bono H, Kano K. BBRC 2011
_ 4. 主成分分析(PCA)
PCA(Primary Component Analysis)。
このパートは以下のブログを参考に。http://bonohu.jp/blog/2013/07/13/pcaonr/
- 【実習4】Rを起動し以下のファイルに記述されたRのコマンド(04pca.r)を実行しなさい。データファイルとして必要なRMA.txtは実習3で作成したものを利用し、現在作業しているディレクトリにおいておく必要があります(うまく行かなかった人はUSBメモリでデータをお渡しします)。
data <- read.table("RMA.txt", header=TRUE, row.names=1, sep="\t", quote="")
data.pca <- prcomp(t(data))
names(data.pca)
plot(data.pca$sdev, type="h", main="PCA s.d.")
data.pca.sample <- t(data) %*% data.pca$rotation[,1:2]
plot(data.pca.sample, main="PCA")
text(data.pca.sample, colnames(data), col = c(rep("red", 3), rep("blue",3),rep("green",3),rep("black",3)))
図に.CEL.gzの文字がいっぱい入っていて見づらい?そう思った方はこちらを参照 http://bonohu.jp/blog/2014/09/10/afterjustrma/
_ 5. NGS解析(cuffdiffの結果可視化)
cufflinksパッケージにcuffdiffという発現データの差分を計算するプログラムがあります。それを実行したあとのデータを可視化する手段として使うBioconductorのパッケージにcummeRbundがあります(cuffdiffの使用例)。
参考:Mishima.syk#4のbonohuの発表資料「NGS解析(RNAseq)」
- 【発展3】Rを起動し以下のファイルに記述されたRのコマンドを実行しなさい。データファイルとして必要なcuffdiffディレクトリ以下のファイルは手持ちのものか、なければサンプルをUSBメモリでお渡しします。現在作業しているディレクトリにおいておく必要があります。
source("http://bioconductor.org/biocLite.R")
biocLite("cummeRbund")
library("cummeRbund")
cuff.dir <- "cuffdiff"
cuff <- readCufflinks(dir=cuff.dir)
準備はここまでで、以下のコマンドで発現密度分布のプロット
dens <- csDensity(genes(cuff))
dens
CSV形式でFPKM値を出力などができます。
gene.matrix <- fpkmMatrix(genes(cuff))
write.csv(gene.matrix, file="fpkm.csv")
_ 6.最後に: R Graphical Manualのすゝめ
どんなライブラリがあって、どういった可視化ができるかはR Graphical Manualが大変便利です。
- 【実習5】ウェブブラウザを起動し、インターネット検索でR Graphical Manualを検索してサイトに辿り着き、サイト内の検索フォームからキーワードcummeRbundで検索しなさい。どのような結果が返ってきたか?前節で紹介したcsDensityのエントリを見つけてみなさい。
- 【発展4】csDensityのエントリにあるサンプルコードを参考に、csVolcanoやdispersionPlotなどのエントリ中のサンプルコードを現在の例に合うように改変して実行してみなさい。