July 26, 2014

Rで行こう!!〜その2

ものすごく高度な使い方が出来るらしいRを僕のような素人が使うのはちょっとハードルは高かったのですが、図を書くのは実はエクセルよりもずっと簡単!

Rを使うのにはアプリケーションをインストールしなくてはいけません。一番手軽で親しみやすいのは、エクセルやワードと同じように、単体のアプリケーションをインストールする事で、東大の農学研究科の門田さんのホームページに詳しいです。
http://www.iu.a.u-tokyo.ac.jp/~kadota/r_seq.html#install
マック板のインストールはこちらのpdfのほうが詳しいです。
http://www.iu.a.u-tokyo.ac.jp/~kadota/R_install_mac.pdf
ちなみに、このホームページはすごい充実ぶり。今度授業にモグリにいこうかな、、、

さて、ここでエア実験。次のようなウエスタンの定量の結果がでてきたとしましょう。
WTのタンパク質量:5.3, 2.9, 3.4, 5.2, 4.6
KOのタンパク質量:9.2, 7.4, 3.5, 6.9, 8.2

エクセルなどの表計算ソフトで
WT KO
5.3 9.2
2.9 7.4
3.4 3.5
5.2 6.9
4.6 8.2
こんなファイルを作って、適当な名前を付けて.csv形式で保存します(ここでは"exp_1.csv"にします。)。ちなみに、R関連のデータは全て一つのフォルダにまとめておくと便利です。僕自身はDropboxの下にRのフォルダを作って、その下にプロジェクトごとのフォルダを作り、全てのcsvファイルはそこに放り込んでいます。ファイル名にはスペースだとかハイフンだとか使わずにアンダーバー"_"を使うと、なんかちょっとだけ大人になったような気がしますね。文系の彼女からささやかな尊敬のまなざしをむけてもらえるかも(妄想と偏見はいってます…)。かつてこのキーを探すのに四苦八苦した思いがありますが、右下のシフトキーの隣です。

次に、Rを立ち上げて、作業ディレクトリを指定します。Macだったらcommand+Dでフォルダ指定のウィンドウが出てきます。もしくは、メニューの「その他」から「作業ディレクトリの変更…」を選びます。csvファイルを放り込んでいるフォルダを選べばオーケー。

箱ヒゲ図やbeeswarm図を書こうと思ったら、ちょっとおまじない。メニューの「パッケージとデータ」から「パッケージマネージャ」を選んで、beeswarmにチェックを入れておきます。

で、やる事は簡単。Rコンソール画面で次の文字を打ち込むだけ。このままコピペでコンソール画面に貼付けてリターンを押しても構いません。

data<-read.csv("exp_1.csv")
boxplot (data)

おおっ!!という間もなく、Quartz 2[*]というウインドウに箱ヒゲ図が現れます。ウィンドウの大きさをいじれば大きさもかえられますし、pdf形式で保存もできます。

こんな簡単で良いのだろうか、、、というのが第一印象でした。この図、エクセルで書こうと思ったらものすごく手間がかかる、というか、書けませんよね?

ただ、縦軸がゼロ起点でないのが気に入らないとか、boxplotに重ねてbeeswarm(全てのデータをプロットしたもの)を重ねたいとか、全てのグラフで決まった形式で同じ大きさで出力したいとか、いろいろ要望があると思います。僕自身は、この手のデータは全て次の命令文で出力する事に決めています。

postscript("出力したいファイル名.eps", horizontal = FALSE, onefile = FALSE,paper = "special", height = 4, width = 3);
data<-read.csv("拡張子csv付き読み込みたいファイル名.eps")
beeswarm (data, pch=16,col="blue", ylim=c(0,max(data, na.rm=T)))
boxplot (data, add=TRUE, ylim=c(0,max(data)))
dev.off()

こうすると、もとのcsvファイルを置いていたフォルダに、出力したいファイル名.epsというファイルが生成されるので、それをイラストレータやパワーポイント等に貼付ければ、図のいっちょ上がりです。

Rで便利なのは、この手の命令文をためておける点で、いったん気に入ったフォーマットで図がかければ、あとはそれをコピペで使えます。つまり、csv形式でどんどんいろいろなデータを保存していって、図にする時は同じ命令文で読み込みファイル名を変更するだけで、簡単に同じ図が作れます。eps形式のファイルはイラストレータにドラッグ&ドロップで貼付ける事が出来ますが、これはリンクで貼付けられているために、epsファイルの方が更新されれば自動的にイラストレータの図のほうも更新されるのもとっても便利です。たとえば、実験の例数が増えた時も、元のcsvファイルを書き換えて、以前図を作った時のRの命令文をもう一回Rコンソール画面に貼付けてリターンキーを押すだけ。全く同じフォーマットでイラストレータの図の更新が出来ます。

ちなみに棒グラフはもうちょっと面倒くさくて、
postscript("出力したいファイル名.eps", horizontal = FALSE, onefile = FALSE,paper = "special", height = 4, width = 3);
data<-read.csv("拡張子csv付き読み込みたいファイル名")
average<-apply(data, 2, mean, na.rm = T)
stdev<-apply(data, 2, sd, na.rm = T)
bar<-barplot(average, ylim=c(0,max(average+stdev)))
arrows(bar, average-stdev, bar, average+stdev, angle = 90, length = 0.1)
arrows(bar, average+stdev, bar, average-stdev, angle = 90, length = 0.1)
dev.off()


あー面倒くさ…という感じですが、いちおうこれでエクセル風の図を書こうと思えば、書く事は出来るようです。ただ、棒グラフにしてしまうと、いろいろな情報が消えてしまっている事が分かると思います。そもそも、nがいくつか、図からは分かりません。
(追記:また、エクセルだとエラーバーをつけるのにいちいち標準偏差を計算したセルを作って、グラフでエラーバーの追加を選んで、標準偏差のセルを指定して、と面倒くさいですね。Rなら、よみこむファイル名を変えてコピペ一発でオーケー)

最近特に思うのは、ここでやったようなエア実験ではなく、特に動物実験のような精神的に重めの実験の場合、一つ一つの実験データへの愛着を表現できるboxplot-beeswarmの方がしっくり来るなあ、ということです。例えば、このエア実験でも、KOのくせに一匹だけWTとかわらないけしからん奴がいますが、それが棒グラフでは分かりません。じっさいそういうことは往々にして起きるのですね。こそっと無かった事にしたくなったりもしますが、苦労した実験ほど一つ一つのデータに愛着が出てきますし、そのデータのすべてを論文で表現したい。そういう要望にRは簡単に答えてくれます。

あと、Rでグラフを書く、というのは、コマンドを入力して命令を実行するという点で、NGSデータのなんちゃって解析に通じるものがあるような気がします。これからはマッピングから普通の発現量解析ぐらいまでなら実験屋も普通にやらなければいけない時代だと思いますし、NGS解析へのハードルを低くするためにも、学生さんは特に、早いうちからエクセルでなくRで作図をする習慣を付けてみられてはいかがでしょうか!とりあえずデータ(WTとKOの2条件でなくても構いません)のcsvファイルを作って、上のRのコマンドをコピペで貼付けて実行してみて下さい。その有用性がすぐ分かると思います。

中川

July 12, 2014

Rで行こう!!〜その1

新学術「ノンコーディングRNAネオタクソノミ」領域は発足したものの、班員の間での情報共有、情報発信のやり方はまだ決まっていません。ですので、こちらのほうで、しばらく覚え書きを続けさせていただきます。まずは、「Rで行こう!!〜その1」ということで。

そもそも何故唐突にRかということなのですが、現在Journal of Cell Biologyなどで推奨されている図でエクセルのグラフ機能に無い図をかなり簡単に作れるから、という事に尽きます。ちなみに僕自身は統計についての知識はサッパリですし、Rも、使いこなしている人がイチローなら、少年野球の補欠ぐらいのレベルです。そもそもエクセルで作った図ですら、自分の論文にのせたのは学生の頃は皆無。ポスドクで留学した時の論文がはじめて。しかも、「写真見たら分かるじゃないですか。統計データ集める意味わかりません。」とか言って当時の上司を困らせていた、穴が入ったら入りたい、忸怩たる思いの思い出があります。今から思えば冷や汗ものなのですが、おぬしやる気あるんかと怒鳴り散らさず、心優しいChristineは天使の笑顔で、「もし私があなたのサンプルから統計データを取れと言われればもちろん喜んでやらせていただくわ」。それから数日、黙々と顕微鏡をのぞいて僕のノートにP=0.0000001となるであろう数値を書き込むChristineの背中を見ながら、何を思ったか。。。北風と太陽ではありませんが、今も昔も反省のきっかけになるのは、太陽な方々の背中であると、つくづく思う次第です。反省、反省、反省、、、

反省ばかりしていては前に進めませんので、話をググっとグラフに戻しますと、我々実験系の生物学で一番良くあるパターンのグラフは、コントロールと実験区。平均値と標準偏差。この黄金パターンです。ノックアウトマウスの解析であれば、WTとKO。生化学的な解析であれば、なんたら蛋白あり、なし。生物学的な実験であれば、大体n=2か3でそのようなデータを出してきて、定量した値をグラフで表して、ね、だからこの写真やウエスタンのフィルムの言う通りでしょ、許してね、というパターンがほとんどなのではないでしょうか。

おなじみエクセルで作る典型的な図はこんな感じ。

でも、それで良いのかな?Rならこんな図が簡単に書けます。

というところから始めていきたいと思います。ほんとに単なる恥さらしな覚え書きですが、特にこれからこういう図をやまほど作っていく事になる学生さんには役に立つかなと思いまして。。。

中川