R 語言初級習(xí)題中我下載的
樣本信息盡管還是那個內(nèi)容,但并不是最好的下載方式,也不是習(xí)題要求中的表格。那個表格的可讀性太差了。Jimmy官方給了一個如何用R獲取GEO樣本信息的鏈接。根據(jù)這個教程,我接著修正前面的作業(yè)內(nèi)容,然后接著完成后面的習(xí)題。不過上次下錯文件陰差陽錯給了我聯(lián)系
read.table的機會,讓我學(xué)會了用平時沒有用到的參數(shù)skip和fill。所以我不打算直接刪除和修改,而是重新寫一篇。
-
下載 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229 里面的
樣本信息讀入到R里面,了解這個數(shù)據(jù)框,多少列,每一列都是什么屬性的元素。其實在GEO accession display的頁面里就有可以直接跳轉(zhuǎn)的地方。見下

點開more在下面點擊第一個鏈接(印象中去年還是前年的時候沒有這個鏈接)

進到這里,類似一個數(shù)據(jù)中心一樣,點擊Export

用mac預(yù)覽打開看看,嗯,整整齊齊!

options(stringsAsFactors = F)
b <- read.csv("sample.csv")
-
把兩個表關(guān)聯(lián)起來,使用merge函數(shù)。
偷個懶,后面參考習(xí)題下面的答案
colnames(rit); colnames(b) d = merge(rit, b, by,x = 'Sample_Name', by,y = 'Accession') e = d[, c("MBases", "Titles")]
-
對前面讀取的
RunInfo Table文件在R里面探索其MBases列,包括 箱線圖(boxplot)和五分位數(shù)(fivenum),還有頻數(shù)圖(hist),以及密度圖(density) 。略
-
把前面讀取的
樣本信息表格的樣本名字根據(jù)下劃線分割看第3列元素的統(tǒng)計情況。第三列代表該樣本所在的plateplate = unlist(lapply(e[,2],function(x){ x strsplit(x, '_')[[1]][3] })) table(plate) e$plate = plate
-
根據(jù)plate把關(guān)聯(lián)到的
RunInfo Table信息的MBases列分組檢驗是否有統(tǒng)計學(xué)顯著的差異。boxplot(e[,1] ~ plate) t.test(e[,1] ~ plate) # or boxplot(MBases ~ plate, data = e)
-
分組繪制箱線圖(boxplot),頻數(shù)圖(hist),以及密度圖(density) 。
略
-
使用ggplot2把上面的圖進行重新繪制。
library(ggplot2) ggplot(e,aes(x=plate,y=MBases))+geom_boxplot()
-
使用ggpubr把上面的圖進行重新繪制。
library(ggpubr) p <- ggboxplot(e, x = "plate", y = "MBases", color = "plate", palette = "jco", add = "jitter") # Add p-value p + stat_compare_means(method = 't.test')
- 隨機取384個MBases信息,跟前面的兩個plate的信息組合成新的數(shù)據(jù)框,第一列是分組,第二列是MBases,總共是384*3行數(shù)據(jù)。