11-28-1代碼流程

03 PCA和熱圖

rm(list = ls())  
load(file = "step1output.Rdata")
load(file = "step2output.Rdata")
#輸入數(shù)據(jù):exp和group_list
#Principal Component Analysis
#http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/112-pca-principal-component-analysis-essentials

dat=as.data.frame(t(exp))
library(FactoMineR)#畫主成分分析圖需要加載這兩個包
library(factoextra) 
# pca的統(tǒng)一操作走起
dat.pca <- PCA(dat, graph = FALSE)
pca_plot <- fviz_pca_ind(dat.pca,
                         geom.ind = "point", # show points only (nbut not "text")
                         col.ind = group_list, # color by groups
                         #palette = c("#00AFBB", "#E7B800"),
                         addEllipses = TRUE, # Concentration ellipses
                         legend.title = "Groups"
)
pca_plot
ggsave(plot = pca_plot,filename = paste0(gse,"PCA.png"))
save(pca_plot,file = "pca_plot.Rdata")

#熱圖 
cg=names(tail(sort(apply(exp,1,sd)),1000))
n=exp[cg,]

#繪制熱圖
annotation_col=data.frame(group=group_list)
rownames(annotation_col)=colnames(n) 
library(pheatmap)
pheatmap(n,
         show_colnames =F,
         show_rownames = F,
         annotation_col=annotation_col,
         scale = "row")

dev.off()


04差異分析葵第、增加探針名列遍希,探針I(yè)D轉(zhuǎn)換

rm(list = ls()) 
load(file = "step2output.Rdata")
#差異分析赃春,用limma包來做
#需要表達矩陣和group_list,不需要改
library(limma)
design=model.matrix(~group_list) #根據(jù)grouplist生成模型矩陣design
fit=lmFit(exp,design) #從exp得到fit
fit=eBayes(fit)#貝葉斯擬合
deg=topTable(fit,coef=2,number = Inf)#fit里面提取結(jié)果得到deg蝇摸,六列數(shù)據(jù)logFC和pvalue

#為deg數(shù)據(jù)框添加幾列 探針的行名對應(yīng)到基因ids
#1.加probe_id列夹孔,把行名變成一列#法一:$列名+賦值。法二如下
library(dplyr)
deg <- mutate(deg,probe_id=rownames(deg))
head(deg)
#2.加symbol列琅轧,火山圖要用
deg <- inner_join(deg,ids,by="probe_id")
head(deg)
#按照symbol列去重復(fù).  1隨機 2最大值  3 pingjun
deg <- deg[!duplicated(deg$symbol),]
#3.加change列,標記上下調(diào)基因
logFC_t=1
P.Value_t = 0.01
k1 = (deg$P.Value < P.Value_t)&(deg$logFC < -logFC_t)
k2 = (deg$P.Value < P.Value_t)&(deg$logFC > logFC_t)
#sum(k1)下調(diào)基因的個數(shù)
#ifelse的使用:滿足K1則為down伍绳,不滿足,嵌套下一個ifelse
change = ifelse(k1,"down",ifelse(k2,"up","stable"))
table(change)
deg <- mutate(deg,change)
head(deg)
#4.加ENTREZID列乍桂,用于富集分析(symbol轉(zhuǎn)entrezid冲杀,然后inner_join)
library(ggplot2)
library(clusterProfiler)
library(org.Hs.eg.db)
s2e <- bitr(deg$symbol, 
            fromType = "SYMBOL",
            toType = "ENTREZID",
            OrgDb = org.Hs.eg.db)#人類
#org.Hs.eg.db人類對應(yīng)ID轉(zhuǎn)換效床,是用來提供其他物種http://bioconductor.org/packages/release/BiocViews.html#___OrgDb
deg <- inner_join(deg,s2e,by=c("symbol"="SYMBOL"))

save(group_list,deg,logFC_t,P.Value_t,file = "step4output.Rdata")

05 火山圖和熱圖

rm(list = ls()) 
load(file = "step1output.Rdata")
load(file = "step4output.Rdata")
#1.火山圖----
library(dplyr)
library(ggplot2)
dat  = deg

p <- ggplot(data = dat, 
          aes(x = logFC, 
              y = -log10(P.Value))) +
geom_point(alpha=0.4, size=3.5, 
           aes(color=change)) +
ylab("-log10(Pvalue)")+
scale_color_manual(values=c("blue", "grey","red"))+
geom_vline(xintercept=c(-logFC_t,logFC_t),lty=4,col="black",lwd=0.8) +
geom_hline(yintercept = -log10(P.Value_t),lty=4,col="black",lwd=0.8) +
theme_bw()
p


if(T){
#自選基因
for_label <- dat%>% 
  filter(symbol %in% c("TRPM3","SFRP1")) 
}
if(F){
#p值最小的10個
for_label <- dat %>% head(10)
}
if(F) {
#p值最小的前3下調(diào)和前3上調(diào)
x1 = dat %>% 
  filter(change == "up") %>% 
  head(3)
x2 = dat %>% 
  filter(change == "down") %>% 
  head(3)
for_label = rbind(x1,x2)
}

volcano_plot <- p +
geom_point(size = 3, shape = 1, data = for_label) +
ggrepel::geom_label_repel(
  aes(label = symbol),
  data = for_label,
  color="black"
)
volcano_plot
ggsave(plot = volcano_plot,filename = paste0(gse,"volcano.png"))

#2.差異基因熱圖----

load(file = 'step2output.Rdata')
if(F){
#全部差異基因
cg = deg$probe_id[deg$change !="stable"]
length(cg)
}else{
#取前30上調(diào)和前30下調(diào)
x=deg$logFC[deg$change !="stable"] 
names(x)=deg$probe_id[deg$change !="stable"] 
cg=c(names(head(sort(x),30)),names(tail(sort(x),30)))
length(cg)
}
n=exp[cg,]
dim(n)

#作熱圖
library(pheatmap)
annotation_col=data.frame(group=group_list)
rownames(annotation_col)=colnames(n) 
library(ggplotify)
heatmap_plot <- as.ggplot(pheatmap(n,show_colnames =F,
                        show_rownames = F,
                        scale = "row",
                        #cluster_cols = F, 
                        annotation_col=annotation_col)) 
heatmap_plot
ggsave(heatmap_plot,filename = paste0(gse,"heatmap.png"))
load("pca_plot.Rdata")
library(patchwork)
(pca_plot + volcano_plot +heatmap_plot)+ plot_annotation(tag_levels = "A")
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市权谁,隨后出現(xiàn)的幾起案子剩檀,更是在濱河造成了極大的恐慌,老刑警劉巖旺芽,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沪猴,死亡現(xiàn)場離奇詭異,居然都是意外死亡采章,警方通過查閱死者的電腦和手機运嗜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悯舟,“玉大人担租,你說我怎么就攤上這事〉衷酰” “怎么了奋救?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長反惕。 經(jīng)常有香客問我尝艘,道長,這世上最難降的妖魔是什么姿染? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任利耍,我火速辦了婚禮,結(jié)果婚禮上盔粹,老公的妹妹穿的比我還像新娘。我一直安慰自己程癌,他們只是感情好舷嗡,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嵌莉,像睡著了一般进萄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锐峭,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天中鼠,我揣著相機與錄音,去河邊找鬼沿癞。 笑死援雇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的椎扬。 我是一名探鬼主播惫搏,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼具温,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了筐赔?” 一聲冷哼從身側(cè)響起铣猩,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茴丰,沒想到半個月后达皿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡贿肩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年峦椰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尸曼。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡们何,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出控轿,到底是詐尸還是另有隱情冤竹,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布茬射,位于F島的核電站鹦蠕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏在抛。R本人自食惡果不足惜钟病,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刚梭。 院中可真熱鬧肠阱,春花似錦、人聲如沸朴读。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衅金。三九已至噪伊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氮唯,已是汗流浹背鉴吹。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惩琉,地道東北人豆励。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像琳水,于是被迫代替她去往敵國和親肆糕。 傳聞我的和親對象是個殘疾皇子般堆,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

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