Beyond the Silence

Sound of Science

次世代シーケンサ解析で覚えたRの小技

まだ論文を書いている。まとまった仕事としては留学中の最後の1報になる予定のもので、正真正銘1st authorの論文。専門外のことが多くて非常に難産。

 

今回の記事はこれの続き。こういうデータ解析には必須のソフトウェア、Rの使い方を少しずつ覚えてきたので、自分用のメモとしてまとめておきたい。

 

www.aurora3373.net

 

R Studio

www.rstudio.com

Rを何というかめっちゃ使いやすくするためのオープンソースソフトウェア。RそのものもR Studioも、GUIではなくコマンドラインでの操作になるのは変わらないのだが、エディタとコンソールが独立していて、コマンドを保存して記憶しておいたり、そこからワンクリックで呼び出したりすることができる優れモノ。これなしではR使おうと思えなかったかもしれない。

pdfとしてレイヤードなプロットを出力できるので、まだR上での装飾や微調整ができない部分はイラストレータで修正をしている。今回の論文でイラストレータの使い方も覚えた。

 

 

ヒートマップ

各グループ間の遺伝子発現の差をグラフィカルに示す、論文でよくあるヤツ。

f:id:aurora3373:20170601205731j:plain

これは後輩から直接教えてもらった。

library(gplots)の、heatmap.2プログラム。赤緑のヒートマップは色覚異常があると見分けられないことがあるため、ユニバーサルデザインを考慮した赤青にするのがトレンドである。

f:id:aurora3373:20170605202027j:plain

 非常に多くのパラメータがあり、全然使いこなせていないのだが、xにtableを入れて、x[ホニャララ]で絞り込みもできる。

まだまだ勉強中。

 

2次元散布図

はてなカウンターみたいな、2次元のdot plot.

f:id:aurora3373:20170605202310j:plain

例はちきりん氏のブログからもらってきた。こんなのを色分けなど駆使して描く。色々やってみたけど今回の論文には使わなさそう。

 

Color=rep("black",nrow(D2))
Color[which((D2[,1]-D2[,2])>1)]="blue"
Color[which((D2[,1]-D2[,2])< -1)]="red"

plot(D2,col=Color,pch=16,xlab=length.label, ylab=width.label)

[,1]、[,2]は、D2のtableの1列目と2列目。その差で色分けしている。

 

1次元散布図+箱ひげ図

これも論文でよくみるヤツ。

datator.exblog.jp

ここを参考にさせていただいた。というより、このサイトへのリンクをブックマーク以外に残しておきたくてこの記事を書いた。

箱ひげ図もよく使われますが、これにbeeswarmプロットを重ねることで、データ分布がよりわかりやすい図になります。以下の方法では、boxplot()関数で箱ひげ図を描いた後にbeeswarm()を用いて散布図を重ねます。

boxplot(b, main = 'angle', las = 1, ylab = "angular degree") 
beeswarm(b, data = NULL, pch = 16, col = rainbow(8), main = 'angle', add = TRUE)
las = 1 で数値を並行にできる。デフォルトはlas = 0で軸に並行になる。 add = TRUEで重ねて描画する

colorは任意。rainbowにすると虹色になる。

 

リンク集

はてなにも偉大なサイトがあった。

triadsou.hatenablog.com

 

 

 

 

Rでできることがあまりに膨大で、Rをまず勉強するというより、やりたいことがRで実現できるかどうかWebの海を探すというやり方で慣れていった。今回のような基礎データのまとめのほか、臨床研究をやるときにも、カプランマイヤーを描いたり統計処理をしたりなどで威力を発揮するだろう。Rについて学んだことは随時追記予定。