illumina数据处理(以GSE100748为例)

感谢生信技能树小洁老师

Section1

Illumina数据的处理的关键是获取表达矩阵

#数据下载
rm(list = ls())
options(stringsAsFactors = F)
library(GEOquery)
gse_number = "GSE100748"
eSet <- getGEO(gse_number, 
               destdir = '.', 
               getGPL = F)
class(eSet)
length(eSet)
eSet = eSet[[1]]
#(1)提取表达矩阵exp
exp <- exprs(eSet)
exp[1:4,1:4]
exp = log2(exp+1) #如果是已经取了log,可以把该行代码注释掉,避免某个数据为0,log2(0)为负无穷
boxplot(exp)

如果直接使用数据下载的代码下载数据,得到的表达矩阵是经过标准化处理过的,里面存在负值。
所以需要采取另一种办法,按照jimmy老师的分享,用lumi包来解决这个问题>http://www.bio-info-trainee.com/1944.html

if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")
if (!requireNamespace("lumi", quietly = TRUE)) BiocManager::install("lumi")
if (!requireNamespace("methylumi", quietly = TRUE)) BiocManager::install("methylumi")
BiocManager::install("GenomicFeatures")
BiocManager::install("methylumi")
BiocManager::install("lumi")
library(GenomicFeatures)
library(methylumi)
library(lumi)#在安装lumi包的时候遇到一堆问题,methylumi是lumi的关联包,反正搞了好久也还是装上去了。。。。
## 首先是从illumina的芯片结果文件,自己用R的lumi包来获取表达矩阵。
fileName <- 'GSE100748_non-normalized.txt.gz' # 从GEO中下载该文件
x.lumi <- lumiR.batch(fileName) ##, sampleInfoFile='sampleInfo.txt')
pData(phenoData(x.lumi))
## Do all the default preprocessing in one step
lumi.N.Q <- lumiExpresso(x.lumi)
### retrieve normalized data
dataMatrix <- exprs(lumi.N.Q) #dataMatrix即表达矩阵
exp = dataMatrix#即可无缝对接pipeline 01
boxplot(exp) #看一下表达量数据分布是否一致

Section2

对数据进行分组,由于GSE100748包含未分化BMSC、成脂、成骨、成软骨等多组细胞。在此,只关注成脂0d、7d、21d三个分组,同时以0d作为control。

#(2)提取临床信息
pd <- pData(eSet)
#在数据集中只提取脂肪生成相关的,并分三组,0d、07d、21d

zerod = pd[pd$`cell type:ch1` %in% "Undifferentiated MSCs",]#直接写0d、7d、21d不行,不能作为变量
sevend = pd[pd$`cell type:ch1` %in% "Adipocytes Day 7",]
twentyoned = pd[pd$`cell type:ch1` %in% "Adipocytes Day 21",]

ad=rbind(zerod,sevend,twentyoned)
pd = ad

#pipeline02 进行分组
 Group(实验分组)和ids(探针注释)
rm(list = ls())  
load(file = "step1output.Rdata")
library(stringr)

#匹配关键词,自行分类
#Group=ifelse(str_detect(pd$source_name_ch1,"control"),"control","RA")
Group=ifelse(str_detect(pd$`cell type:ch1`,"Undifferentiated MSCs"),"0d",
             ifelse(str_detect(pd$`cell type:ch1`,"Adipocytes Day 7"),"7d","21d"))
#设置参考水平,指定levels,目的是要把对照组在前,处理组在后
Group = factor(Group,
               levels = c("0d","7d","21d"))
Group

pd用于分组的部分

ids将探针名换成基因名,貌似因为是illumina数据的原因,方法一中没有该GPL

http://www.bio-info-trainee.com/1399.html
需要用方法二自行注释

方法2 读取GPL平台的soft文件,按列取子集

https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GPL18405

if(T){
  #注:soft文件列名不统一,活学活用,有的GPL平台没有提供注释,如GPL16956
  a = getGEO(gpl_number,destdir = ".")
  b = a@dataTable@table
  colnames(b)
  ids2 = b[,c("ID","Symbol")]#有的数据不一定写Symbol,可能写的是Gene Symbol,如果出现报错,可以在colname(b)里查看到底哪一列是注释
  colnames(ids2) = c("probe_id","symbol")
  ids2 = ids2[ids2$symbol!="" & !str_detect(ids2$symbol,"///"),]
  ids = ids2 
  }

热图

pheatmap(n2,
         show_colnames =F,
         show_rownames = F,
         annotation_col=annotation_col,
         color = colorRampPalette(colors = c("blue","white","red"))(100),#热图的颜色
         breaks = seq(-4,4,length.out = 100)#注释条的取值范围,-4、4分别对应颜色最深
)

其他的pipeline(03以后)没有什么明显需要修改的地方了,小洁老师上课时候说火山图必须两组两组之间对比,但你要是不更改,照样可以画出火山图但应该是有问题的,变为了control组和实验组(另外两组被自动划为一组了吧大概)之间的火山图。(那我看的那篇文章又有问题了哦)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352