いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【R】遺伝子発現解析を学んでみたい-3(DESeq2)

・お題:遺伝子発現の多寡を解析するパッケージとして、EdgeR、DESeq2、limmaなどいろいろあるらしい。今回はDESeq2をやってみたい。

 

・私は素人なので、tutorialをなぞる感じで学んでいきたい。今回のtutorialは以下。正しいことは元サイトを見て頂きたい。

lashlock.github.io

・とりあえず、以下の公式サイトを参考に、DESeq2をインストールする(割愛)。

bioconductor.org

・次に、ライブラリを読み込む。

>library("tidyverse")
>library("DESeq2")

・今回は、以下のサイトで提供されているサンプルデータを用いる。airway_scaledcounts.csvairway_scaledcounts.csvというファイルをダウンロードし、カレントディレクトリに保存した。

bioconnector.github.io

・次に、データを読み込む。このファイルには、遺伝子のID、サンプル名およびリード数(?)が入っているらしい。

> countData <- read.csv('airway_scaledcounts.csv', header = TRUE, sep = ",")

> head(countData)

・サンプル情報も同様に、airway_metadata.csvをダウンロードし、読み込む。

> metaData <- read.csv('airway_metadata.csv', header = TRUE, sep = ",")
> metaData

・次に、これらの情報をDESeq2で取り扱うデータ形式に変換する。

> dds <- DESeqDataSetFromMatrix(countData=countData,
+                               colData=metaData, 
+                               design=~dex, tidy = TRUE)

>dds

・次に、ddsをDESeqする。何をやっているのかというと、各サンプルの相対的なライブラリの深さを計算(正規化)、各遺伝子のカウントの分散を推定、サイズと分散の出力を用いて、Negative Binomial GLMにおける係数の有意性を計算、しているらしい。この一連の処理が一つの関数で済むとは。。

> dds <- DESeq(dds)

・次に、結果を見てみる。log2FCやpvalueなどを確認することができる。

> res <- results(dds)
> res_sorted <- res[order(res$padj),]
> res_sorted %>% head()

> res %>% summary()

・変動の激しかった遺伝子に関して、発現量をプロットしてみる。

・Volcano Plotを描きたいと思って調べていたら、EnhancedVolcanoなるパッケージを見つけた。インストールして使ってみた(インストールは割愛)。

bioconductor.org

>library(EnhancedVolcano)

> EnhancedVolcano(res,
+                 lab = rownames(res),
+                 x = 'log2FoldChange',
+                 y = 'pvalue',
+                 title = 'CTRL vs TREATMENT',
+                 pCutoff = 10e-32,
+                 FCcutoff = 2,
+                 pointSize = 3.0,
+                 labSize = 3.0)

・MDSプロットはGlimmaを使って可視化してみる。。

>library("Glimma")

> glMDSPlot(dds)

 

・もう少し他の例もやってみたいと思った。

 

とりあえず、おわり。