我们的马拉松授课第二单元是GEO数据库里面的表达量芯片数据处理,已经是非常稳定的流程了,可以应付绝大部分公司的绝大部分技术平台。
因为代码流程固定下来了,导致很多小伙伴在做练习题的时候,仅仅是机械式的修改里面的GSE的ID号码而已,并没有做更多的思考。任意数据集只需要有分组,都可以很简单的差异分析,有差异结果里面的上下调基因就可以富集分析。但是,差异和富集是第一步而已!
比如这个2015的文献就被学员挑选到了:《The inflammatory cytokine TWEAK decreases PGC-1α expression and mitochondrial function in acute kidney injury》,它对应的数据集是:GSE273064,但是学员自己很难自己的独立判断自己的分析是否合理:
差异分析
我通常会让已经完成了差异分析和富集分析的学员们仔细地读一下文献,起码多复现一个图,比如下面的指定的通路以及通路对应的基因的差异情况:
通路对应的基因的差异情况
就需要根据我们的马拉松授课的表达量芯片的标准代码进行细致的探索和出图:
load( file = 'step1_output.Rdata')
cg='Ppargc1b Ndufs1 Ndufb5 Sdha Esrra Ppara Cox5b Tfam Atp5o'
cg=trimws(strsplit(cg,' ')[[1]]);cg
cg=cg[cg %in% rownames(dat)]
cg
tmp=deg[cg,]
pheatmap(dat[cg,])
n=t(scale(t(dat[cg,]))) # 'scale'可以对log-ratio数值进行归一化
n[n>2]=2
n[n< -2]= -2
head(n)
pheatmap(n,show_colnames =F,show_rownames = F)
ac=data.frame(Group=group_list)
rownames(ac)=colnames(n)
pheatmap(n,show_colnames =F,show_rownames = T,
annotation_col=ac)
bp=function(g){ #定义一个函数g,函数为{}里的内容
library(ggpubr)
df=data.frame(expression = g,group = group_list)
p <- ggboxplot(df, x = "group", y = "expression",
color = "group", palette = "jco",
add = "jitter")
# Add p-value
p + stat_compare_means() + ggtitle(target_gene)+
theme_bw()
}
target_gene='Ndufs1'
p1 <- bp(dat[target_gene,])
p1
通过上述步骤,您可以更全面地评估您的分析是否合理,并确保您的研究结果具有较高的可靠性和科学价值。