我写了一个R包,简化芯片下游分析

1.由来

近期由于工作需要,有大批的芯片数据等着我分析。我想着简化一下代码,一步到位出来差异分析结果。配合练习写R包,今天算是搞定了大头,分享一下给有缘人使用~

目前差异分析仅支持二分组数据,多分组的后面再说~

2.R包安装和准备

我的包托管在Github上,并且依赖了曾老板写的AnnoProbe包,他的包也在github,所以没办法自动帮你安装,需要先安装好哦。

/分割的是用户名和包名,知道了用户名,你就可以在github上搜索到包对应的页面啦。

if(!require(AnnoProbe))devtools::install_github("jmzeng1314/AnnoProbe")
if(!require(tinyarray))devtools::install_github("xjsun1221/tinyarray")

github的包安装需要多折腾,实在折腾不了就放弃吧。如果仅仅是网络问题,可以使用本地安装,到github上下载这个包,下来放在工作目录下,然后:

#devtools::install_local("tinyarray-master.zip",upgrade = F)

只要有一些R包安装的基础知识和解决报错能力,就可以搞定啦。

library(stringr)
library(AnnoProbe)
library(tinyarray)

3.GEO数据下载

rm(list = ls())
options(stringsAsFactors = F)
gse = "GSE4107"
geo = geo_download(gse)

写成了一个函数geo_download,默认使用AnnoProbe下载,如果报错就说明这个GSE没有被AnnoProbe收录,可以

geo = geo_download(gse,by_annopbrobe = F)

就会使用GEOquery下载了,如果网速实在堪忧,可以去GEO下载matrix.gz文件,放在工作目录下。

4.得到表达矩阵和分组信息

geo$exp = log(geo$exp+1)
group_list = ifelse(str_detect(geo$pd$title,"control"),"control","treat")
group_list = factor(group_list,levels = c("control","treat"))

5.找探针注释信息

结合两个来源,一个是bioconductor的包,一个是idmap。find_anno会返回可用的命令,复制下来运行即可。

find_anno(geo$gpl)
## [1] "`ids <- toTable(hgu133plus2SYMBOL)` or `ids <- AnnoProbe::idmap('GPL570')` is both avaliable"
ids <- AnnoProbe::idmap('GPL570')

6. 完成差异分析及可视化

把很多代码集成到了一起,得到的dcp是一个列表里面包括了差异分析结果表格,差异基因以及三张图。

dcp = get_deg_all(geo$exp,
                  group_list,
                  ids,
                  logFC_cutoff = 1,
                  scale_before = T,
                  cluster_cols = F)
## [1] "362 down genes,1361 up genes"
head(dcp[[1]])
##      logFC  AveExpr         t      P.Value    adj.P.Val        B    probe_id
## 1 4.755775 5.433371 15.686305 9.489229e-14 2.091036e-09 19.58011   202768_at
## 2 3.617970 7.889055 15.545324 1.147345e-13 2.091036e-09 19.43798   209189_at
## 3 2.808211 7.686054 14.835515 3.051878e-13 3.595391e-09 18.69553 201694_s_at
## 4 1.700875 9.251381 11.538846 5.019678e-11 3.920727e-07 14.57411 201041_s_at
## 5 3.146005 5.175579 10.617313 2.533831e-10 1.731715e-06 13.19062   223316_at
## 6 3.482923 4.763760  9.961547 8.508265e-10 4.651894e-06 12.13533   220276_at
##   symbol change ENTREZID
## 1   FOSB     up     2354
## 2    FOS     up     2353
## 3   EGR1     up     1958
## 4  DUSP1     up     1843
## 5  CCDC3     up    83643
## 6  RERGL     up    79785
str(dcp[[2]])
## List of 2
##  $ upgenes  : chr [1:1361] "FOSB" "FOS" "EGR1" "DUSP1" ...
##  $ downgenes: chr [1:362] "NR1H4" "SLC51A" "NETO2" "ETNK1" ...
dcp[[3]]
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352