ラベル 中谷. の投稿を表示しています。 すべての投稿を表示
ラベル 中谷. の投稿を表示しています。 すべての投稿を表示

2016年2月18日木曜日

Rで統計:階層クラスター分析(HCA)

どうも.中谷航太です.
備忘録がてら勉強したRの解析方法を記録しておきます.
今回は,Rでの階層クラスター分析付きヒートマップの作り方について.

①まずデータの準備から始めます.


  Wild Type strain1 strain2 strain3 strain4
metabolite1 7234526 6255017 6754156 490024.2 7127350
metabolite2 1970236 1685756 1803086 148639.6 1199489
metabolite3 18111892 16226529 17646758 1254115 18497672
metabolite4 266696 151436 206675.3 57778.57 384859
metabolite5 12992368 11370112 12383234 883364.6 13461877
・・・・・・・・・
・・・・・・・・・
・・・・・・・・・

みたいなデータをエクセルで作って,csvファイルで保存します.
要は分析結果をエクセルにまとめればいいだけです.

今回はデータをわざわざ新しくデータを用意するのも面倒なので,

a1 <- rnorm(100,mean=5000, sd=500)
a2 <- rnorm(100,mean=4000, sd=400)
a3 <- rnorm(100,mean=3000, sd=300)
a4 <- rnorm(100,mean=2000, sd=200)
a5 <- rnorm(100,mean=1000, sd=100)
x <- matrix(c(a1, a2, a3, a4, a5), nrow=5, ncol=100)
colnames(x) <- c(1:100)
rownames(x) <- c("WT", "strain1", "strain2", "strain3", "strain4")

これでデータ行列を作ります.
WT, strain1~4の代謝物を分析して,それぞれ代謝物1~100の分析値をエクセルにまとめたものと考えてもらえばいいです.


②次に,類似度 or 距離の選択方法を指定し,計算します.

階層クラスター分析は,サンプルと代謝物の両方で行います.
不要なら要らない方を削除してください.

d1 <- dist(x, method="euclidean")
d2 <- dist(t(x), method="euclidean")
# methodは "euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski"から選んで下さい.距離の計算方法が違うので,それぞれ結果が少し異なります.

③次にクラスター合併のアルゴリズムを指定し,計算します.


c1 <- hclust(d1, method="ward.D")
c2 <- hclust(d2, method="ward.D")
# methodは"ward.D", "ward.D2", "single", "complete", "average" (= UPGMA), "mcquitty" (= WPGMA), "median" (= WPGMC) or "centroid" (= UPGMC)から選んで下さい.

これで階層クラスタ解析の計算は終わったので,

④最後に結果をヒートマップで表します.


gplotsというパッケージを使うので,初回の人は以下を実行.

install.packages("gplots")

参照するパッケージを指定してヒートマップを作ります.

library(gplots)
hm <- heatmap.2(as.matrix(x),
                col=colorpanel(256, low = "yellow", mid="black", high= "blue"),
                scale="none",
                margins=c(6,30),
                Rowv=as.dendrogram(c1),
                Colv=as.dendrogram(c2),
                density.info="none",
                trace ="none",
                key ="True")

図の縦横比はmarginsで,色のグラジエントはcolで弄れます.
scaleは予めエクセルにまとめる段階で自分で計算しておくのが良い気がします.
今回はデータを適当に作ったので"column"にしています.

以上を実行するだけでHCA付きヒートマップがゲットできました!
お疲れ様です.


最後にコードだけでまとめておきます.
a1 <- rnorm(100,mean=5000, sd=500)
a2 <- rnorm(100,mean=4000, sd=400)
a3 <- rnorm(100,mean=3000, sd=300)
a4 <- rnorm(100,mean=2000, sd=200)
a5 <- rnorm(100,mean=1000, sd=100)
x <- matrix(c(a1, a2, a3, a4, a5), nrow=5, ncol=100)
colnames(x) <- c(1:100)
rownames(x) <- c("WT", "strain1", "strain2", "strain3", "strain4")
d1 <- dist(x, method="euclidean")
d2 <- dist(t(x), method="euclidean")
c1 <- hclust(d1, method="ward.D")
c2 <- hclust(d2, method="ward.D")
library(gplots)
hm <- heatmap.2(as.matrix(x),
                col=colorpanel(256, low = "yellow", mid="black", high= "blue"),
                scale="column",
                margins=c(6,30),
                Rowv=as.dendrogram(c1),
                Colv=as.dendrogram(c2),
                density.info="none",
                trace ="none",
                key ="True")

読み込みからヒートマップ化する場合はこっちで.
setwd("「データのある場所」")
x <- read.csv("「データの名前」", header=T, row.names = 1)
d1 <- dist(x, method="euclidean")
d2 <- dist(t(x), method="euclidean")
c1 <- hclust(d1, method="ward.D")
c2 <- hclust(d2, method="ward.D")
library(gplots)
hm <- heatmap.2(as.matrix(x),
                col=colorpanel(256, low = "yellow", mid="black", high= "blue"),
                scale="none",
                margins=c(6,30),
                Rowv=as.dendrogram(c1),
                Colv=as.dendrogram(c2),
                density.info="none",
                trace ="none",
                key ="True")

感想:楽しかった.

2016年2月2日火曜日

世界一美味しいトンカツ食べてきました

どうも.中谷です.
ちょっとブログでも書いて現実逃避しようかと.

さて,タイ留学による英語力upも一時的なもので,今や元通り,すっかり退化(今度こそ退化です)してしまいました.

しかし,中谷の英語力が崩れ去ろうとも!
築いた友情は一生モノなり!

タイでお世話になった友人から連絡があり,福崎メンバーらと日本でご飯を食べることになりました.

そこで,前々から気になっていたトンカツ屋さん,マンジェに一緒に行くことにしました.

夜の営業時間が17:00-21:00ということで,17:00を狙って店に到着しました.

美味しい雰囲気,でてます

行列も無かったので,すぐさま入れるものと思いきや!
あまりの人気ゆえ並びすぎて近隣住民に迷惑が掛かってしまうため,紙に名前を書いてどっかに行けとのこと.笑
順番が近づいたら電話で連絡してくれるとのこと.
とりあえず名前を書き,時間潰しがスタートしました.


「まあ1時間もあれば入れるやろ」

するとすぐにミスド発見!

「1時間やし,ちょうどいいんじゃね?」
我々は軽くドーナッツを食べながら,待ち時間を潰すことにしました.



~1時間後~



「まだ電話来てないけど,そろそろやろwww」

そして店に戻って我々は絶望するのであった.
順番が進んで...いない!?

良くわかりませんが,予約の紙は複数枚あった模様.

とにかくまだまだ待たないといけないとのことでした.



~3時間後~



地獄の待ち時間を経てその時は遂に訪れた...

「プルルッ」


キタ━(゚∀゚)━┥東│東│東│  │  │  │発│発│発│中│中│中│北┝┥北┝━(゚∀゚)━!!!!


もう入れないことかと思いました・゜゜・(/□\*)・゜゜・

わが親友,松永氏もこの表情.

やばい,松永に怒られる...

さっそく注文して席に着きました.

さて,肝心のトンカツの方はどうでしょう.

オリーブからの白トリュフソルトを付けて頂いてくださいとのこと

トンカツ!?

なんじゃこれはーーーーー!?

こんな美味いトンカツ食べたことねぇぇーーー(」゚ロ゚)」(」゚ロ゚)」(」゚ロ゚)」オオオオオッッッ


カリッとした厚めの衣の表面を噛むと続いてフワッとした肉の柔らかさとよい香りが口の中に広がる.(玉村豊男/パンとワインとおしゃべりと,より抜粋)


そんな表現が中谷の口から出るはずもなく,感想はただ「あぁ,バリうまい.」でした.


まあでも,3時間待っただけあって,最大のスパイスである空腹もトッピングでき,結果オーライ!
みんな満足してくれたみたいです^^

最後に集合写真を撮って,お別れしました.

大満足の様子

留学名物,どこでもセルフィー(ドラえもん風)

以上です.どうもありがとうございました.

ではでは.



ほう,3回生だと?なにやら研究室配属があるらしいな.

3分間待ってやる!!時間だ!!答えを聞こう!!

私をあまり怒らせない方がいいぞ,当分二人きりでここに住むのだからな!ハハハハハッ

2015年12月26日土曜日

中谷,タイ留学したってよ

コップンカー.タイでタイ化(退化ではない)してきました中谷です.

今回のタイ留学は初めての海外渡航だったのですが,本当に価値のある経験を一杯させてもらいました.

特に研究面では,自分の研究を英語で話してディスカッションしたり,今まで考えたことのなかったアイデアをたくさん教えて貰ったりしたので,研究に深みが増したと思います.


とは言いつつもやはり,一番の収穫はコミュニケーション能力アップ↑↑ですね.

しかし普段人見知りの中谷が,なぜコミュニケーションを積極的に取りに行ったかというと...

圧倒的,女子の多さ!!


これにつきます.(人見知りとは...)

タイでは今も徴兵制度があり,男性は21歳になるとくじ引きでおよそ8割の確率で徴兵されるそうです.

たぶんそういう理由で大学では女子が多かったのだと思います.

しかし我々留学組からすれば女子の多さは喜ばしい限り.

ほう,写メよこせと?仕方ないですなwww


DrコースのP' Yaiと
ふむふむ.可愛い.

分からんことは何でもすぐに聞きに行った中谷であった.


隣の研究室のTanと
バリ可愛い.

用もなく隣の研究室に尋ねる中谷であった.


研究室のNitnipa先生と
So lovely!!

癒しを求めて教授室の扉をたたく中谷であった.


留学生Farahと

■■■■■■■■■っ!!

知らぬ間にタブーを犯しているのではと心配する中谷であった.


たはっ

ぷはぁぁーー

思い出し可愛い!次!


そのへんにおった虎と
ちーん.(このばばぁ...)

虎の前では草食動物と化す中谷であった.


Ladyboyと

(こいつ,男の目してやがる...)

ビビりすぎて固まる中谷であった.

うぐっぐはぁ...今回はこんなとこにしとくか....



いや,どうもお駄文に付き合いしてもらいありがとうございました.

タイレポート,以上です.



福崎研究室は留学のチャンスいっぱいの素晴らしい研究室だよ!

さぁ,みんなもぼくと契約して福崎研究室に入ってよ!