R語言可視化及作圖12--venn圖髓窜、火山圖和熱圖


R語言繪圖系列:


venn圖:展示不同的分類變量之間互相重疊的關(guān)系
火山圖:展示基因表達(dá)差異
熱圖:展示不同基因表達(dá)聚類

1. venn圖

1.1 limma包中的venn

library(limma)
#隨機(jī)生成一個矩陣(沒有實(shí)際意義)
Y <- matrix(rnorm(100*6),100,6)
Y[1:10,3:4] <- Y[1:10,3:4]+3
Y[1:20,5:6] <- Y[1:20,5:6]+3
desigh <- cbind(1,c(0,0,1,1,0,0),c(0,0,0,0,1,1))
fit <- eBayes(lmFit(Y,desigh)) #進(jìn)行貝葉斯回歸匠童,生成fit擬合模型埂材,fit作為venn圖繪圖對象。
results <- decideTests(fit)  #decideTests函數(shù)在不同的基因和樣本間進(jìn)行多重對照
a <- vennCounts(results)
print(a)
mfrow.old <- par()$mfrow
op <- par(mfrow=c(1,2))
vennDiagram(results,
            include = c('up','down'),
            counts.col = c('red','blue'),
            circle.col = c('red','blue','green3'))
par(op)

1.2 venn.diagram()函數(shù)

library(VennDiagram)
#Then generate 3 sets of words, There I generate 3 times 200 SNPs names.
SNP_pop_1=paste(rep('SNP_',200),sample(c(1:1000),200,replace = F),sep = '')
SNP_pop_2=paste(rep('SNP_',200),sample(c(1:1000),200,replace = F),sep = '')
SNP_pop_3=paste(rep('SNP_',200),sample(c(1:1000),200,replace = F),sep = '')

venn.diagram(
  x=list(SNP_pop_1,SNP_pop_2,SNP_pop_3),
  category.names =c('SNP_pop_1','SNP_pop_2','SNP_pop_3'),
  filename = 'venn_diagramm.png', #輸出路徑汤求,最好是完整路徑俏险。
  output=TRUE,
  imagetype = 'png',
  height = 800,
  width = 800,
  resolution = 300,
  compression = 'lzw',
  lwd=2,
  lty='blank',
  fill=c('yellow','purple','green'),
  cex=1,
  fontface='bold',
  fontfamily='sans',
  cat.cex=0.6, #cat設(shè)置分類標(biāo)簽的格式
  cat.fontface='bold',
  cat.default.pos='outer',
  cat.pos=c(-27,27,135),
  cat.dist=c(0.055,0.055,0.085),
  cat.fontfamily='sans',
  rotation=1
)

2. 火山圖

2.1 limma包volcanoplot()

sd <- 0.3*sqrt(4/rchisq(100,df=4))
y <- matrix(rnorm(100*6,sd=sd),100,6)
rownames(y) <- paste('Gene',1:100)
y[1:2,4:6] <- y[1:2,4:6]+2
design <- cbind(Grp1=1,Grp2vs1=c(0,0,0,1,1,1))
options(degits=3)

fit <- lmFit(y,design)
fit <- eBayes(fit)
topTable(fit,coef = 2)
dim(fit)
colnames(fit)
rownames(fit)[1:10]
names(fit)

#Fold change thresholding
fit2 <- treat(fit,lfc=0.1)
topTreat(fit2,coef = 2)

#volcano plot
volcanoplot(fit,coef = 2,highlight = 5)

2.2 ggplot2

data_df <- fit2$coefficients
class(data_df)
data_df <- as.data.frame(data_df)
data_df$fac <- as.factor(ifelse(data_df$Grp1>0,1,0))
class(data_df$fac)
library(ggplot2)
p <- ggplot()+geom_point(aes(Grp2vs1,Grp1,color=fac),data=data_df)
#對前五個差異最大的基因標(biāo)上名字
data_df$name <- paste('gene',1:100)
data_df <- data_df[order(data_df$Grp1,decreasing = T),]
data_df$name[6:100] <- NA
p+geom_text(aes(Grp2vs1,Grp1,label=name),data = data_df,nudge_y = -0.02,nudge_x = 0.05)+theme_classic()

3. 熱圖

data=as.matrix(mtcars)
head(data)
heatmap(data)

可以看到有些值過高,因此需要標(biāo)準(zhǔn)化

heatmap(data,scale = 'column')
heatmap(data,Colv = NA, Rowv = NA, scale = 'column')

更改顏色:
1: native palette from R

heatmap(data,scale = 'column',col=cm.colors(256))
heatmap(data,scale = 'column',col=terrain.colors(256))
  1. RColorBrewer palette
library(RColorBrewer)
coul=colorRampPalette(brewer.pal(8,'PiYG'))(25)
heatmap(data,scale = 'column',col=coul)

**Custom x and y labels with CexRow and labRow (col respectively)

heatmap(data,scale = 'column',cexRow = 1.5,labRow = paste('new_',rownames(data),sep=''),col=colorRampPalette(brewer.pal(8,'Blues'))(25))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載扬绪,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者竖独。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市挤牛,隨后出現(xiàn)的幾起案子预鬓,更是在濱河造成了極大的恐慌,老刑警劉巖赊颠,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件格二,死亡現(xiàn)場離奇詭異,居然都是意外死亡竣蹦,警方通過查閱死者的電腦和手機(jī)顶猜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痘括,“玉大人长窄,你說我怎么就攤上這事「倬” “怎么了挠日?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長翰舌。 經(jīng)常有香客問我嚣潜,道長,這世上最難降的妖魔是什么椅贱? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任懂算,我火速辦了婚禮只冻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘计技。我一直安慰自己喜德,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布垮媒。 她就那樣靜靜地躺著舍悯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪睡雇。 梳的紋絲不亂的頭發(fā)上贱呐,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機(jī)與錄音入桂,去河邊找鬼奄薇。 笑死,一個胖子當(dāng)著我的面吹牛抗愁,可吹牛的內(nèi)容都是我干的馁蒂。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼蜘腌,長吁一口氣:“原來是場噩夢啊……” “哼沫屡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起撮珠,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤沮脖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芯急,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勺届,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年娶耍,在試婚紗的時候發(fā)現(xiàn)自己被綠了免姿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡榕酒,死狀恐怖胚膊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情想鹰,我是刑警寧澤紊婉,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站辑舷,受9級特大地震影響喻犁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一株汉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧歌殃,春花似錦乔妈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至波材,卻和暖如春股淡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背廷区。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工唯灵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人隙轻。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓埠帕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親玖绿。 傳聞我的和親對象是個殘疾皇子敛瓷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容