RNAseq数据,下载GEO中的FPKM文件后该怎么下游分析

我们有很多学徒数据挖掘任务,已经完成的目录见:学徒数据挖掘专题半年目录汇总(生信菜鸟团周一见) 欢迎大家加入我们的学习团队,下面看FPKM文件后该怎么下游分析

  • 文献标题是:Oncogenic lncRNA downregulates cancer cell antigen presentation and intrinsic tumor suppression不过不需要看文章,大家只需要做差异分析即可,这个时候需要注意的是,作者提供的是RPKM值表达矩阵!

  • 6个样本,分成2组,是RPKM值表达矩阵,做差异分析,看GO通路,跟文章比较

  • 作业:(f) Enrichment of GO biological process (BP) terms for up-regulated genes (red) and down-regulated genes in tumor versus normal samples (n = 3, 3 animals). (g-i) Log2 of fold changes of indicated metabolites in MMTV-Tg(LINK-A) breast tumor compared to that of Tg(LINK-A) mammary gland (n = 3 animals respectively).

  • 首先需要去GEO数据库下载文件GSE113143_Normal_Tumor_Expression.tab.gz

1.下载数据GSE113143并加载数据

a=read.table('GSE113143_Normal_Tumor_Expression.tab.gz',sep='\t',quote = "",fill = T,
             comment.char = "!",header = T) # 提取表达矩阵
rownames(a)=a[,1]
a <- a[,-1]

  • TPM值就是RPKM的百分比:关于TPM的解释可以看看这个

  • What the FPKM? A review of RNA-Seq expression units

  • Question: Differential expression analysis starting from TPM data


2.将FPKM转换为TPM

expMatrix <- a
fpkmToTpm <- function(fpkm)
{
  exp(log(fpkm) - log(sum(fpkm)) + log(1e6))
}
tpms <- apply(expMatrix,2,fpkmToTpm)
tpms[1:3,]
colSums(tpms)
#输出结果:
> tpms[1:3,]
                  N1      N2    N3    T1    T2    T3
0610005C13Rik  0.232  0.1715  0.00  0.00  0.00  0.00
0610007P14Rik 48.391 39.2632 46.04 50.04 59.05 67.29
0610009B22Rik 47.491 58.5954 54.27 49.79 53.13 58.00
> colSums(tpms)
   N1    N2    N3    T1    T2    T3 
1e+06 1e+06 1e+06 1e+06 1e+06 1e+06 

3.差异分析

group_list=c(rep('Normal',3),rep('Tumor',3))
## 强制限定顺序
group_list <- factor(group_list,levels = c("Normal","Tumor"),ordered = F)
#表达矩阵数据校正
exprSet <- tpms
boxplot(exprSet,outline=FALSE, notch=T,col=group_list, las=2)
library(limma) 
exprSet=normalizeBetweenArrays(exprSet)
boxplot(exprSet,outline=FALSE, notch=T,col=group_list, las=2)
#判断数据是否需要转换
exprSet <- log2(exprSet+1)
#差异分析:
dat <- exprSet
design=model.matrix(~factor( group_list ))
fit=lmFit(dat,design)
fit=eBayes(fit)
options(digits = 4)
topTable(fit,coef=2,adjust='BH')
bp=function(g){
  library(ggpubr)
  df=data.frame(gene=g,stage=group_list)
  p <- ggboxplot(df, x = "stage", y = "gene",
                 color = "stage", palette = "jco",
                 add = "jitter")
  #  Add p-value
  p + stat_compare_means()
}
deg=topTable(fit,coef=2,adjust='BH',number = Inf)
head(deg) 
#save(deg,file = 'deg.Rdata')


划重点:以下代码、方法全来自生信技能树的最新推文:为R包写一本书(向Y叔致敬) 

这里面重点就是:RPKM矩阵可以转为TPM后,再使用limma进行差异分析哦!

4.做完差异分析

  • GEO数据挖掘代码,很容易得到上下调基因,而且转为ENTREZID,后续分析都以这个为主线。

  • 根据原文文献中:Differential gene expression was defined if the fold change >1.5 and P < 0.05 between tumor and normal samples找差异基因

## 不同的阈值,筛选到的差异基因数量就不一样,后面的超几何分布检验结果就大相径庭。
if(T){
  logFC_t=1.5
  deg$g=ifelse(deg$P.Value>0.05,'stable',
               ifelse( deg$logFC > logFC_t,'UP',
                       ifelse( deg$logFC < -logFC_t,'DOWN','stable') )
  )
  table(deg$g)
  head(deg)
  deg$symbol=rownames(deg)
  library(ggplot2)
  library(clusterProfiler)
  library(org.Mm.eg.db)
  df <- bitr(unique(deg$symbol), fromType = "SYMBOL",
             toType = c( "ENTREZID"),
             OrgDb = org.Mm.eg.db)
  head(df)
  DEG=deg
  head(DEG)

DEG=merge(DEG,df,by.y='SYMBOL',by.x='symbol')
  head(DEG)

save(DEG,file = 'anno_DEG.Rdata')
  gene_up= DEG[DEG$g == 'UP','ENTREZID'] 
  gene_down=DEG[DEG$g == 'DOWN','ENTREZID'] 
}

5.最简单的超几何分布检验

# 最简单的超几何分布检验
###这里就拿KEGG数据库举例吧,拿自己判定好的上调基因集进行超几何分布检验,如下
if(T){
  gene_down
  gene_up
  enrichKK <- enrichKEGG(gene         =  gene_up,
                         organism     = 'mmu',
                         #universe     = gene_all,
                         pvalueCutoff = 0.05,
                         qvalueCutoff =0.05)
  head(enrichKK)[,1:6] 
  browseKEGG(enrichKK, 'hsa04512')
  dotplot(enrichKK)
  ggsave("enrichKK.png")
  enrichKK=DOSE::setReadable(enrichKK, OrgDb='org.Mm.eg.db',keyType='ENTREZID')
  enrichKK 
}
##最基础的条形图和点图
#条带图
barplot(enrichKK,showCategory=20)
#气泡图
dotplot(enrichKK)

enrichKK.png
  • 通路与基因之间的关系可视化

#通路与上调基因之间的关系可视化
###制作genlist三部曲:
## 1.获取基因logFC
DEG_up <- DEG[DEG$g == 'UP',]
geneList <- DEG_up$logFC
## 2.命名
names(geneList) = DEG_up$ENTREZID
## 3.排序很重要
geneList = sort(geneList, decreasing = TRUE)
head(geneList)

cnetplot(enrichKK, categorySize="pvalue", foldChange=geneList,colorEdge = TRUE)
cnetplot(enrichKK, foldChange=geneList, circular = TRUE, colorEdge = TRUE)
ggsave("enrichKK_cnetplot.png")

enrichKK_cnetplot.png
  • 通路与通路之间的连接展示

#通路与通路之间的连接展示
emapplot(enrichKK)
ggsave("enrichKK_emapplot.png")

enrichKK_emapplot.png
  • 热图展现通路与基因之间的关系

#热图展现通路与基因之间的关系
heatplot(enrichKK)
ggsave("enrichKK_heatplot.png")

enrichKK_heatplot.png
  • 如果你是做GO数据库呢,其实还有一个goplot可以试试看,当然是以Y叔的书为主啦。

#如果你是做GO数据库呢,其实还有一个goplot可以试试看
ego_bp_up<-enrichGO(gene       = DEG_up$ENTREZID,
                 OrgDb      = org.Mm.eg.db,
                 keyType    = 'ENTREZID',
                 ont        = "BP",
                 pAdjustMethod = "BH",
                 pvalueCutoff = 0.01,#0.01
                 qvalueCutoff = 0.05)
goplot(ego_up)
ggsave("ego_bp_up_goplot.png")
head(ego)
library(stringr)
barplot(ego_bp_up,showCategory = 16,title="The GO_BP enrichment analysis of all DEGs ")+ 
  scale_size(range=c(2, 12))+
  scale_x_discrete(labels=function(ego_bp) str_wrap(ego_bp,width = 25))
ggsave("ego_bp_up_barplot.png")

ego_up_goplot.png

ego_up_barplot.png
  • 同样的方式看看下调基因的GO_BP:

    down_regulated_genes.png

  • 和文献中的GO_BP比较一下

(0)

相关推荐

  • 转录组Count格式数据转化为FPKM/TPM格式

    很多时候我们得到的转录组格式为Count,例如在TCGA数据库下载的数据,如果我们想使用FPKM格式或者TPM,那么就需要转换,不过TCGA数据库也提供了FPKM的格式,貌似miRNA数据只有Coun ...

  • GEO数据挖掘的文章不会写?可以看看这篇范文

    论文题目: Integrated bioinformatics analysis reveals key candidate genes and pathways in breast cancer 论 ...

  • 生信基础 | 人-小鼠基因之间的比较

    先看看MSigDB中的基因ENTREZID是否可以全部转化为SYMBOL. library(biomaRt)library(clusterProfiler)library(org.Hs.eg.db)l ...

  • 使用wget批量下载geo数据集的全部文件

    单细胞转录组教程我们写的差不多了,是时候进军单细胞ATAC和空间单细胞了,找到了这个经典的 <单细胞ATAC>数据集:https://www.ncbi.nlm.nih.gov/geo/qu ...

  • 如何从alpha下载的近千个文件中快速找到想要的一个案例?

    一.文件夹检索法 1.把压缩文件解压到当前文件夹中 图片发自简书App 2.找到文件夹右上角"搜索"处 图片发自简书App 3.在"搜索"处输入关键词,如当事人 ...

  • RNA-Seq数据用aspera高效批量下载(万事开头难)

    学完了生信技能树的转录组课程,是时候实战一波了,我选择的是 NCBI数据集是SRP033333 Description KPC (Comparing mutant-p53 expressing cel ...

  • GEO二代测序表达数据下载数据库

    在GEO公共数据检索的时候,发现有一个数据集想要分析,但是发现是二代测序的数据,没有相关的原始数据处理经验,要怎么办呢? 二代测序对于没有生信基础的人的难点 之前我们在介绍GEO分析基础的时候,提到过 ...

  • GEO数据下载,真的有这么难吗

    GEO数据下载真的好难吗?有些学员说真的好难呀,我下载了一个星期都下载不了,老是断,每次没有下载完就断了.就下载个数据就用了一个星期?有没有搞错,别人一个星期连文章都搞定了,而你只能下载数据的过程中徘 ...

  • Folx下载器中删除任务与删除文件的功能有什么不同之处

    当用户使用Folx完成了任务下载后,该任务仍会保留在下载列表中,并标注"已结束"的标记.随着使用时间的增长,folx下载列表中会包含过多的"已结束"任务,用户需 ...

  • 教学管理菜鸟成长记8-独孤九剑之数据透视表中集

    键词:Excel2016,数据透视表,工作表拆分,操作难度** 工作场景:话说昨天小菜学会独孤九剑前三式后,工作效率大大提升,教务处王处长看着这个小同志好像工作不累,扔过来一个各系部教学检查汇总表,要 ...

  • 实际招投标过程中,投标文件能否存在偏离?

    投标文件编制的各步骤,都有不同的要求,各步骤之间的承接要有合理的过渡,才能完成投标文件的整个编制.同时投标文件的编制讲究严密,往往一个小小的错误,就可能导致整个项目前功尽弃.投标中的偏离是什么意思?在 ...

  • 大数据在市场研究中的应用

    大数据时代新的市场研究方法使"无干扰"真实还原消费过程成为可能,智能化的信息处理技术使低成本.大样本的定量调研成为现实,这将推动消费行为及消费心理研究达到一个新的高度,帮助快速消费 ...