GEO常用代碼片段

芯片數(shù)據(jù)質(zhì)控

1.前后對比箱線圖

## --------------------------------------------數(shù)據(jù)檢驗和聚類------------------------------
exprSet_L <- melt(exprSet)
colnames(exprSet_L) <- c("sample", "value")
exprSet_L$group <- rep(pdata$group, each = nrow(exprSet))

exprSet_L[1:10, ]
## 箱線圖
p21 <- ggplot(exprSet_L, aes(x = sample, y = value, fill = group)) +
  geom_boxplot() +
  theme(
    axis.title.x = element_text(face = "italic"),
    axis.text.x = element_text(angle = 45, vjust = 0.5),
    legend.position = "top"
  )
p21 # 數(shù)據(jù)不太規(guī)整
# #ggsave(p21,filename = ".\\plots\\bar_before.pdf",width = 18,height = 9,units = "cm")
# ##標準化后再圖
# exprSet_1 <- normalizeBetweenArrays(exprSet) %>% data.frame()
# exprSet_L <- melt(exprSet_1)
# colnames(exprSet_L) = c('sample','value')
# exprSet_L$group = rep(group_info$group,each = nrow(exprSet))
# p22 <-  ggplot(exprSet_L,aes(x = sample, y = value,fill = group)) +geom_boxplot()+
#   theme(axis.title.x  = element_text(face = 'italic'),
#         axis.text.x =  element_text(angle = 45 , vjust = 0.5),
#         legend.position = 0)
# p22            #表準化后規(guī)整多了雁歌,但知道效果咋樣
#
# plot_qc <- plot_grid(p21,p22,labels = "AUTO",nrow = 2)
#
# ggsave(plot_qc,filename = ".\\plots\\plot_qc.pdf",width = 18,height = 18,units = "cm")

# 把標準化后的數(shù)據(jù)賦值給原始數(shù)據(jù),暫時不做
# exprSet <- exprSet_1

2.提琴圖

## 小提琴圖
# p1 <-  ggplot(exprSet_L,aes(x = sample, y = value,fill = group)) +geom_violin()
# p1

3.密度圖

## 密度圖
# p3 <-  ggplot(exprSet_L,aes(value,col=group)) +geom_density() + facet_wrap(~sample,nrow = 2)
# print(p3)

4.聚類圖1

## hclust聚類圖
colnames(exprSet) <- paste(pdata$title1, sep = "")    ## 樣本名稱改變
# hc <- hclust(dist(t(exprSet)))                      #hclust需要用plot畫圖逛拱,此例不用
dist.r <- dist(t(exprSet))
res <- hcut(dist.r, k = 2, stand = TRUE)
# Visualize
cluster_unbatch <- fviz_dend(res,
                             # 加邊框
                             rect = TRUE,
                             # 邊框顏色
                             rect_border = "cluster",
                             # 邊框線條類型
                             rect_lty = 2,
                             # 邊框線條粗細
                             lwd = 1.2,
                             # 邊框填充
                             rect_fill = T,
                             # 字體大小
                             cex = 0.8,
                             # 字體顏色
                             color_labels_by_k = T,
                             # 平行放置
                             horiz = T,
                             k_colors = "lancet",      #指定色板
                             labels_track_height = 7,
                             main = element_blank()
)+theme(text = element_text(size = 8))
cluster_unbatch
# 數(shù)據(jù)不可用,需要校正批次效應(yīng)
# 把樣本名改回來
colnames(exprSet) <- pdata$geo_accession

5.PCA圖1

# 畫主成分分析圖需要加載這兩個包
library(FactoMineR)
library(factoextra)
# pca
dat.pca <- PCA(as.data.frame(t(exprSet)), graph = FALSE)
pca_plot1 <- 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 = "GROUP"
) + theme(
  legend.position = c(0.80, 1),
  text = element_text(size = 8),
  legend.key.size = unit(3, "mm"),
  legend.title = element_blank()
)
pca_plot1

6.處理批次效應(yīng)

library(sva)
model <- model.matrix(~ as.factor(pdata$group))    # "group"為分組所在列趋翻,pdata是表型文件(元數(shù)據(jù))
### 重點來了2m镉蕖煌珊!
### 重點來了K蕉拧!救欧!
### 重點來了Kゴ狻!笆怠!
# 方法一(ComBat)
combat_edata <- ComBat(dat = exprSet, batch = pdata$batch, mod = model) # exprSet是表達矩陣铝耻,batch是批次信息列,在表型文件里蹬刷,下同
# 使用sva包中的combat函數(shù)!
# 依次是什么數(shù)據(jù)瓢捉、批次來自于哪、想保留什么信息

7.再次查看聚類圖

# 再次聚類查看
colnames(combat_edata) <- paste(pdata$title1, sep = "") ## 樣本名稱再次改變
hc <- hclust(dist(t(combat_edata)))
dist.r <- dist(t(combat_edata))
res <- hcut(dist.r, k = 2, stand = TRUE)
# Visualize
cluster_batched <- fviz_dend(res,
                             # 加邊框
                             rect = TRUE,
                             # 邊框顏色
                             rect_border = "cluster",
                             # 邊框線條類型
                             rect_lty = 2,
                             # 邊框線條粗細
                             lwd = 1.2,
                             # 邊框填充
                             rect_fill = T,
                             # 字體大小
                             cex = 0.8,
                             # 字體顏色
                             color_labels_by_k = T,
                             # 平行放置
                             horiz = T,
                             k_colors = "lancet",      #指定色板
                             labels_track_height = 7,
                             main = element_blank()
)+theme(text = element_text(size = 8))
cluster_batched
plot_batch <- plot_grid(cluster_unbatch,cluster_batched,labels = "AUTO",label_size = 10)
ggsave(plot_batch,filename = ".\\plots\\cluster_batched.pdf",width = 180,height = 89,units = "mm")

8.再次作圖PCA

# pca
dat.pca <- PCA(as.data.frame(t(combat_edata)), graph = FALSE)
pca_plot2 <- 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 = "GROUP"
) + theme(
  legend.position = c(0.80, 1),
  text = element_text(size = 8),
  legend.key.size = unit(3, "mm"),
  legend.title = element_blank()
)
pca_plot2
plot_batch <- plot_grid(pca_plot1,pca_plot2,labels = "AUTO",label_size = 10)
ggsave(plot_batch,filename = ".\\plots\\pca_batched.pdf",width = 180,height = 89,units = "mm")

9.后續(xù)處理

# 把校正批次效應(yīng)后的文件賦給表達矩陣
exprSet <- combat_edata %>% data.frame()
# 再次改回樣本名
colnames(exprSet) <- pdata$geo_accession
# 這樣寫就行办成,不用加其他參數(shù)泡态,供CIBERSORT使用,生成TXT后需要到文件里把第一行向后tab一下,否則報錯迂卢。
write.table(exprSet,paste0(".\\data\\",gse_id,"_exprset_to_cibersort.txt"),row.names = T,quote = F,sep = "\t")

質(zhì)控處理完畢某弦,準備差異表達分析。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載而克,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者靶壮。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市员萍,隨后出現(xiàn)的幾起案子腾降,更是在濱河造成了極大的恐慌,老刑警劉巖碎绎,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜂莉,死亡現(xiàn)場離奇詭異,居然都是意外死亡混卵,警方通過查閱死者的電腦和手機映穗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幕随,“玉大人蚁滋,你說我怎么就攤上這事∽富矗” “怎么了辕录?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梢卸。 經(jīng)常有香客問我走诞,道長,這世上最難降的妖魔是什么蛤高? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任蚣旱,我火速辦了婚禮碑幅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘塞绿。我一直安慰自己沟涨,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布异吻。 她就那樣靜靜地躺著裹赴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诀浪。 梳的紋絲不亂的頭發(fā)上棋返,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音雷猪,去河邊找鬼懊昨。 笑死,一個胖子當著我的面吹牛春宣,可吹牛的內(nèi)容都是我干的酵颁。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼月帝,長吁一口氣:“原來是場噩夢啊……” “哼躏惋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嚷辅,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤簿姨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后簸搞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扁位,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年趁俊,在試婚紗的時候發(fā)現(xiàn)自己被綠了域仇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡寺擂,死狀恐怖暇务,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怔软,我是刑警寧澤垦细,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站挡逼,受9級特大地震影響括改,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜家坎,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一嘱能、第九天 我趴在偏房一處隱蔽的房頂上張望吝梅。 院中可真熱鬧,春花似錦焰檩、人聲如沸憔涉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至穿扳,卻和暖如春衩侥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矛物。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工茫死, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人履羞。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓峦萎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親忆首。 傳聞我的和親對象是個殘疾皇子爱榔,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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