2009-06-02
_ [R][Bioconductor] アレイ解析練習2
『RとBioconductorを用いたバイオインフォマティクス』第10章(p.197)から、データ散布図の描写について。
1. Rを起動し、まずはAffymetrixのサンプルデータを読み込む。
> library("affydata") > data("Dilution")
ちなみに、サンプルデータの概要は、以下のとおり。
> Dilution AffyBatch object size of arrays=640x640 features (27210 kb) cdf=HG_U95Av2 (12625 affyids) number of samples=4 number of genes=12625 annotation=hgu95av2 notes=
2. log2値の計算。Dilutionに含まれる4枚分のアレイデータの内、2枚分のアレイデータを使用。
> x <- log2(exprs(Dilution)[, 1:2])
3. 行列演算子%*%を使った内積計算によって、2つのベクトルの和Aと差Mを計算する。(内積を使うとは、頭いい方法だなー)
> x <- x %*% cbind(A = c(1, 1), M = c(-1,1))
4. プロット。
> plot(x, pch = ".")
5. これでは密集部分が黒く潰れてわからないので、hexbinパッケージを使って六角形ビン分割で描画してみる。 (本ではgeneplotterパッケージを読み込んでいるが、その代わりにRColorBrewerパッケージを読み込む必要あり)
> library("hexbin") >library("RColorBrewer")plot(x, plot(x, col = densCols(x,), pch=20)col = densCols(x,), pch=20)
6. データ行列xからhexbinオブジェクトを作成し、プロット。(色によって密度が示される。xbinsを大きくすると、分割数が大きくなる=ビンが小さくなる)
> hb <- hexbin(x, xbins = 50) > plot(hb, colramp = colorRampPalette(brewer.pal(9, "YlGnBu")[-1]))
7. 同様に、smoothScatterで濃淡を描画。(本文中ではpradaパッケージとなっているが、正しくはgeneplotterパッケージ)
> library("geneplotter") > smoothScatter(x, nrpoints = 500) > plot(x, col = densCols(x), pch=20)
8. densColsを利用する方法。局所的な密度を計算し、濃淡で表現。(ちょっち計算に時間がかかる)
> plot(x, col = densCols(x,), pch=20)