R 语言初级习题中我下载的
样本信息
尽管还是那个内容,但并不是最好的下载方式,也不是习题要求中的表格。那个表格的可读性太差了。Jimmy官方给了一个如何用R获取GEO样本信息的链接。根据这个教程,我接着修正前面的作业内容,然后接着完成后面的习题。不过上次下错文件阴差阳错给了我联系
read.table
的机会,让我学会了用平时没有用到的参数skip和fill。所以我不打算直接删除和修改,而是重新写一篇。
-
下载 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229 里面的
样本信息
读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。其实在GEO accession display的页面里就有可以直接跳转的地方。见下
点开more在下面点击第一个链接(印象中去年还是前年的时候没有这个链接)
样本信息-2.png进到这里,类似一个数据中心一样,点击Export
样本信息-3.png用mac预览打开看看,嗯,整整齐齐!
样本信息-4.pngoptions(stringsAsFactors = F)
b <- read.csv("sample.csv")
-
把两个表关联起来,使用merge函数。
偷个懒,后面参考习题下面的答案
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)和五分位数(fivenum),还有频数图(hist),以及密度图(density) 。略
-
把前面读取的
样本信息
表格的样本名字根据下划线分割
看第3列元素的统计情况。第三列代表该样本所在的plateplate = unlist(lapply(e[,2],function(x){ x strsplit(x, '_')[[1]][3] })) table(plate) e$plate = plate
-
根据plate把关联到的
RunInfo Table
信息的MBases列分组检验是否有统计学显著的差异。boxplot(e[,1] ~ plate) t.test(e[,1] ~ plate) # or boxplot(MBases ~ plate, data = e)
-
分组绘制箱线图(boxplot),频数图(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的信息组合成新的数据框,第一列是分组,第二列是MBases,总共是384*3行数据。
网友评论