差距表达的mKoleosNA和lnc凯雷德NA,德州仪器量测序

Gene Ontology是一个国际标准化的基因功能分类体系,提供了一套动态更新的标准词汇表(controlled vocabulary)来全面描述生物体中基因和基因产物的属性。GO总共有三个ontology,分别描述基因的分子功能(molecular function)、细胞组分(cellular component)、参与的生物过程(biological process)。GO的基本单位是term,每个term都对应一个属性。富集的含义: 每个基因都会对应有一个或多个GO term。 富集涉及到两个概念:前景基因和背景基因。前景基因就是你关注的要重点研究的基因集,背景基因就是所有的基因集。比如做两个样本对照组和处理组的转录组测序,前景基因就是对照组vs处理组的差异基因,背景基因就是这两组样本的所有表达基因。再比如,我想知道与整个广东省相比,深圳市的大学生是不是显著更多(“大学生”就相当于深圳市民的其中一个GO term)。那么前景就是深圳市的人口,背景就是广东省的人口,每个个体都会有一个标签(如大学生、中学生、小学生等)。 富集的意思就是,某个GO term在所关注的前景基因集中占的比例要显著高于在所有背景基因集中所占的比例。比如上面的例子,深圳市大学生显著富集,意思就是深圳市本科毕业的人口所占深圳市总人口的比例显著高于广东省本科毕业人口在广东省总人口中所占的比例。例如下图,我们要计算的就是10%与2%相比是否有显著性。 那么,这个“显著性”是如何计算的呢?就是我们众所周知的P value。P value是利用超几何检验计算出来的,具体公式如下: 其中,N为所有Unigene中具有GO注释的基因数目;n为N中差异表达基因的数目;M为所有Unigene中注释为某特定GO term的基因数目;m为注释为某特定GO term的差异表达基因数目。 计算得到的P value会进一步经过多重检验校正,得到corrected-pvalue(也就是Q value)。通常我们会以Q value≤0.05为阈值,满足此条件的GO term定义为在差异表达基因中显著富集的GO term。二、数据准备: 明白了GO富集的原理后,我们需要准备的数据就只有两份:前景基因文件和背景基因文件。 富集目的基因文件:就是你要富集分析的基因集。在上面的例子中,就是对照组vs处理组的差异表达基因。格式为每行一个基因ID,文本文件。 GO背景基因文件:就是所有的基因集,在上面的例子中,就是对照组和处理组所有的表达基因。1)如果你研究的物种是有参考基因组的模式物种,那么可以直接使用数据库上已有的参考基因作为背景基因文件。目前提供的物种有水稻、拟南芥、小鼠、大鼠、斑马鱼、鸡、秀丽线虫、果蝇、人。ID类型可选择基因ID或转录本ID,根据富集目的基因的ID类型决定。如果不清楚自己的文件是什么ID,可以点击“预览参考文件”来查看具体ID。后面的“版本”是最新的Ensemble版本号。2)如果你研究的物种不在这些选择范围内,那么就要自己准备GO背景基因文件了。因为一个基因可有多个GO term,所以文件格式有两种:一种为第一列为基因ID,第二列为所对应的GO term,如下表:另一种为第一列是基因ID,第二列之后为同一个基因的所有GO号,这种格式也是我们基迪奥的转录组denovo流程出来的结果格式,如下表:上传这两种格式中的任何一种都是可以的~要记住,前景基因文件里的基因ID必须包含在背景基因文件里面!如何得到基因的GO注释? 有一些同学不知道如何获得背景基因的GO号。通常,如果你的数据是从公司测序得到的,那么测序报告里都会有。如果你是自己捣腾的数据,那么,如果是无参考基因组的物种,就需要根据unigene的Nr注释,用Blast2go软件得到unigene的GO注释信息。具体Blast2go的使用,可参考我们第二期在线交流课堂: 官网上下载GO注释信息,也可以在Biomart上下载物种的GO注释信息,我们也有相应的教程: 这次我试运行的数据为荔枝趋势分析文章里的趋势分析结果数据,我以profile1包含的基因为前景基因集,所有趋势包含的基因为背景基因集,做GO富集分析。1. GO二级分类图(out.secLevel.png/svg) 这个图显示了profile1的基因在各个GO term的数目和富集情况。横坐标代表GO三个 ontology的更细一级分类,即二级分类;纵坐标代表每个分类条目所包含的基因数目。由于一个基因常常对应多个GO term,因此同一个基因会在不同分类条目下出现,即被多次统计,因此如果你把这里所有柱子的基因数目加起来,肯定是多于profiel1总的基因数目的。2. GO富集结果表(out.[PFC].html ) 三个Ontology会分别展示。以生物过程(biological process)为例子,如下表:

library(ggplot2)

data = read.table("xxx",header=T,sep="t") 

很明显,得到了表达矩阵之后,根据上面的样本信息,可以按照年龄,性别,取样部位来进行分组找差异。
可以参考:https://github.com/jmzeng1314/my-R/tree/master/DEG_scripts

目的:通过GO富集分析,可以将差异表的的基因按照其功能进行归类,达到对基因进行注释和分类的目的。

9778818威尼斯官网 1

第一列为GO term的ID,点击GO ID,可显示这个GO term包含的所有基因:

## 直接画图

ggplot(data,aes(richFactor,Term))

      geom_point(aes(size=Count,colour= -(log10(PValue))))

    scale_colour_gradient(low="green",high="red")

    labs(color=expression(-log[10](pValue)),size="Count", 

            x="Rich factor",y="Pathway name",title="pathway enrichment")

theme_bw()

9778818威尼斯官网,-

9778818威尼斯官网 2

上一步骤得到了表达矩阵,两个样本分别是F_1yr.OC和M_1yr.OC, 所以接下来的差异分析就是比较1岁猕猴脑OC区域女性和男性的差别,差异分析的分析方法很多,主要根据前面标准化的方法,有基于counts的差异分析,也有基于标准化后的FPKM,TPM等的差异分析。
常见的R包有(摘自https://github.com/jmzeng1314/my-R/tree/master/DEG_scripts):
edgeR (Robinson et al., 2010)
DESeq / qDESeq2 (Anders and Huber, 2010, 2014)
DEXSeq (Anders et al., 2012)
limmaVoom
Cuffdiff / Cuffdiff2 (Trapnell et al., 2013)
PoissonSeq
baySeq
作业里给的参考是一步法差异分析,是对常见的R包做了下封装,包括了对转录组的raw counts数据分析的DEseq2包和edgeR包,及对于芯片等normalization好的表达矩阵数据的limma和t.test等。用的时候只要设置好表达矩阵和分组矩阵,然后选择特定的方法,一步就可以进行差异分析。

富集的原理:enrich_factor-----( 某个term中出现的差异基因的个数/所有的差异基因的个数 ) / (term中包含的所有基因 / 数据库中总的基因数目)

Pathway Analysis讨论及基因富集分析软件(Gene Set Enrichment Analysis,GSEA)使用实战

在所有物是人非的景色里,我最中意你。


再点击这个GO ID,就可以链接到 官网,可以查看GO的具体信息。

## 其中:

data:数据表

aes(横轴,纵轴)

size:圆的大小

x:横轴名称

y:纵轴名称

title:标题

但是这里的样本是无生物学重复的,而无生物学重复对差异基因的检出率和结果的可靠性都有影响。目前由于测序的价格及样本自身的珍贵稀缺性,部分实验设计仍然是没有生物学重复的。对于无重复样本的差异分析可以选择;edgeR,DEGseq和GFOLD等

理解:(作者:高泮优)基于我们的先验知识(基因组注释信息),将基因富集,可以想象成,用一堆代表基因功能的箱子(bin)把具有相同或相似功能的基因装起来,起到了降维的作用,当然,每个基因可能同时参与好几种功能,这种cross-talk我这里就不说了。这样,得到这两组数据后,我们所分析的不是单个基因表达的差异,而是箱子与箱子之间的差异。比如我们发现,运动前后的主要差异集中在消化基因上面,那么我就有理由说,规律作息和适当运动让我消化变好、营养吸收充分进而智商提高(我编的,别信...)。由此,我们得到的数据更容易解释。GO分析好比是将基因分门别类放入一个个功能类群的篮子,而pathway则是将基因一个个具体放到代谢网络中的指定位置。

背景:聊一聊 Pathway Analysis

9778818威尼斯官网 3

本文衔接高通量测序处理学习记录,通过Htseq得到read counts matrix之后,下游使用Deseq2处理得到差异基因。

太多文章介介绍Deseq2的使用了,此处予以推荐hoptop的基因表达分析,上手简单,深入浅出

当然所有数据处理的Destination都应该是为实验服务,所以这里主要还是想学习一下后期的一个pathway analysis
PLOS CB 2012年的一篇文章总结了十年来数据分析方法的进化历程,存有三个方法学上的改进,依次为Over-representation analysis, Functional Class Scoring, Pathway Topology, 每种方法都有着其与时代相适应的能力与特质同时又迭代进步,最早使用的Over-representation analysis到目前也还是会有使用

9778818威尼斯官网 4

journal.pcbi.1002375.g001.png

  • First Generation: Over-Representation Analysis
    曾经的一段时间内,micro array技术的风靡产生了对下游分析的极大需求,这里 over-representation analysis (ORA)应运而生,从一系列基因里根据阈值提取出部分基因进行显著性分析,也就是统计学常见的“2X2 交叉表格法”,对每个pathway进行统计分析,常见tests都建立在hypergeometric distribution、chi-square、binomial distribution等方法上。
    limitations

    1. 只考虑了差异基因列表,并不考虑差异基因的表达情况
    2. 只检验了通过设定阈值筛选标准的基因,对差异微弱的基因并未考虑,但实际上会造成bias
    3. 每个基因会作为独立存在事件考虑,未加入相互影响干扰因素
    4. Pathway也是作为独立存在事件考虑

    我们日常分析中最常见的GO/KEGG 分析就是基于这种原理,虽然老旧但实用

  • Second Generation: Functional Class Scoring (FCS) Approaches
    Functional Class Scoring(FCA)的推测设想认为虽然强烈的单个基因的改变可以影响到pathways,但是微弱的相互协同的功能相关基因的变化也可以拥有这种影响,所以这种方法的输入数据是一个基因水平的统计数据(标准化后食用更佳),随后把gene-level的数据输入到pathway-level进行统计,现有方法包括Kolmogorov-Smirnov statistic, sum, mean, or median of gene-level statistic, the Wilcoxon rank sum, and the maxmean statistic等,最后再做一个显著性检验。相对于ORA,FCS完善了三个缺陷:

    1. 不需要人为的阈值确定差异基因list
    2. FCS使用所有可用的表达水平进行分析
    3. FCS考虑了基因相互间的变化,解释了基因变化与pathway之间的依赖性

    limitations

    1. 类似于ORA,pathway之间的分析依旧是彼此独立的(此种原因可以解释为单个基因同时存有多种功能,在多个pathway中发挥作用,overlap过多的pathway就会相互干扰)
    2. 使用rank的方式纵然有着很多优点,但是忽略了单个基因的变化幅度,也就是权重
  • Third Generation: Pathway Topology (PT)-Based Approaches
    目前除了简单的包括基因list的数据库(比如GO和MSigDB之外),还有着很多已知的数据库包含着更多的信息,例如基因产物,相互作用,激活抑制功能,包括有KEGG, MetaCyc, Reactome, RegulonDB, STKE, BioCarta等。
    因为ORA和FCS只考虑了基因而未利用额外的数据信息所以天然的存有着分析短板。Pathway Topology (PT)-Based Analysis就是尝试利用额外的信息进行统筹分析,但是它其实和FCS的分析过程是没有差别的,唯一的区别在于在进行gene-level statistics的时候TP使用pathway topology方法
    Rahnenfuhrer et al.推出的ScorePAGE,通过计算相关和协方差的方式来得到类似于FCS的pathway-level的结果,但是又综合考虑了两组gene list之间需要connect的难度从而进行给分,而不是像FCS分配统一权重。
    limitations

    1. PT-based的方法千差万别,结论也千差万别,很难界定结果的准确性
    2. 精确的分析结果依赖于数据库的信息准确性,但是细胞特异性的基因表达数据目前还非常不完善,这也是卡住方法开发的门槛
    3. 相关分析无法考虑动态变化,毕竟生物系统是一个不断协调变化的过程
  • 下面给出一个分析工具列表

9778818威尼斯官网 5

Analysis tools

根据上面的介绍,我选用GSEA来进行pathway analysis,因为三代分析还不成熟,一代分析又显得老套,中规中矩按照基本法做分析就好啦。

当然GO/KEGG pathway分析也是可以做一做的,我没有钦定谁来当特首分析工具
——Chevy

我们输入基础的数据不是差异基因而是表达数据,我们可以使用Deseq2里面的counts()函数对dds对象提取标准化之后的数据:

NormData <- counts(dds, normalized=TRUE)

经过简单的处理之后,就可以输入GSEA进行分析了。


第二列为GO term的功能描述;

## 图示解析:

RNA-seq中,对差异表达基因进行KEGG富集分析,可以通过散点图展示。此图中,KEGG富集程度通过Rich factor、qvalue和富集到此通路上的基因个数来衡量。

横坐标是Rich factor,数值越大表示富集程度越大。Rich factor=位于该pathway term下的差异表达基因数/位于该pathway term下的所有有注释基因数。

纵坐标是富集程度较高的pathway term(一般选取富集最显著的20条进行展示,不足20条则全部列出)。

q value是经过多重校验的p value,取值范围[0,1],以颜色表示,越红表示q value越小,说明富集越明显。

点的大小表示该term下差异基因的个数,点越大表示基因数越多。

ref:R语言ggplot2绘图教程——Pathway富集分析气泡图 - CSDN博客

ref2:RNA-seq中GO、KEGG结果图如何解读

下面分别尝试edgeR,DEGseq及GFOLD:

专属名词

GSEA入门

Gene Set Enrichment Analysis (基因集富集分析)用来评估一个预先定义的基因集的基因在与表型相关度排序的基因表中的分布趋势,从而判断其对表型的贡献。其输入数据包含两部分,一是已知功能的基因集 (可以是GO注释、MsigDB的注释或其它符合格式的基因集定义),一是表达矩阵,软件会对基因根据其于表型的关联度(可以理解为表达值的变化)从大到小排序,然后判断基因集内每条注释下的基因是否富集于表型相关度排序后基因表的上部或下部,从而判断此基因集内基因的协同变化对表型变化的影响。

9778818威尼斯官网 6

Workflow

The gene sets are defined based on prior biological knowledge, e.g., published information about biochemical pathways or coexpression in previous experiments. The goal of GSEA is to determine whether members of a gene set S tend to occur toward the top (or bottom) of the list L, in which case the gene set is correlated with the phenotypic class distinction.

第三列前面的数字为差异表达基因中富集到这个GO term的基因数,后面的数字为差异表达基因的总数;

edgeR做无重复样本的差异分析

edgeR针对无重复样本给出了四条建议,第一条建议是仅分析MDS plot和fold changes,不做显著性分析;第二条建议是设置合适的离散度值,然后做个exactTest 或glmFit;第三条看不懂;第四条建议是基于大量的稳定的参照转录本。(PS:看不懂原理这里的原理,,看用的多是第二条建议,那就试试第二个吧)

###下载安装edgeR包
#source("http://bioconductor.org/biocLite.R")
#biocLite("edgeR")
library("edgeR")
library('ggplot2')

###读取数据
setwd("G:/My_exercise/edgeR")
rawdata <- read.table("hisat_matrix.out",header=TRUE,row.names=1,check.names = FALSE)
head(rawdata)
#重命名列名
names(rawdata) <- c("F.1yr.OC.count","M.1yr.OC.count")
#进行分组
group <- factor(c("F.1yr.OC.count","M.1yr.OC.count"))

###过滤与标准化
y <- DGEList(counts=rawdata,genes=rownames(rawdata),group = group)
###TMM标准化
y<-calcNormFactors(y)
y$samples
###推测离散度,根据经验设置,若样本是人,设置bcv = 0.4,模式生物设置0.1.(这里没有经验,我就多试几个)
#bcv <- 0.1
bcv <- 0.2
#bcv <- 0.4
et <- exactTest(y, dispersion=bcv^2)
topTags(et)
summary(de <- decideTestsDGE(et))
###图形展示检验结果
png('F_1yr.OC-vs-M_yrM.OC.png')
detags <- rownames(y)[as.logical(de)];
plotSmear(et, de.tags=detags)
abline(h=c(-4, 4), col="blue");
dev.off()

###导出数据
DE <- et$table
DE$significant <- as.factor(DE$PValue<0.05 & abs(DE$logFC) >1)
write.table(DE,file="edgeR_all2",sep="t",na="NA",quote=FALSE)
write.csv(DE, "edgeR.F-vs-M.OC2.csv")

#DE2 <- topTags(et,20000)$table
#DE2$significant <- as.factor(DE2$PValue<0.05 & DE2$FDR<0.05 & abs(DE2$logFC) >1)
#write.csv(DE2, "F_1yr.OC-vs-M_1yr.OC3.csv")

9778818威尼斯官网 7

edgeR

GO term:(举例如下)

GSEA原理

给定一个排序的基因表L和一个预先定义的基因集S (比如编码某个代谢通路的产物的基因, 基因组上物理位置相近的基因,或同一GO注释下的基因),GSEA的目的是判断S里面的成员s在L里面是随机分布还是主要聚集在L的顶部或底部。这些基因排序的依据是其在不同表型状态下的表达差异,若研究的基因集S的成员显著聚集在L的顶部或底部,则说明此基因集成员对表型的差异有贡献,也是我们关注的基因集。

9778818威尼斯官网 8

GSEA计算中几个关键概念:

  1. 计算富集得分 (ES, enrichment score). ES反应基因集成员s在排序列表L的两端富集的程度。计算方式是,从基因集L的第一个基因开始,计算一个累计统计值。当遇到一个落在s里面的基因,则增加统计值。遇到一个不在s里面的基因,则降低统计值。每一步统计值增加或减少的幅度与基因的表达变化程度(更严格的是与基因和表型的关联度)是相关的。富集得分ES最后定义为最大的峰值。正值ES表示基因集在列表的顶部富集,负值ES表示基因集在列表的底部富集。

  2. 评估富集得分(ES)的显著性。通过基于表型而不改变基因之间关系的排列检验 (permutation test)计算观察到的富集得分(ES)出现的可能性。若样品量少,也可基于基因集做排列检验 (permutation test),计算p-value。

  3. 多重假设检验矫正。首先对每个基因子集s计算得到的ES根据基因集的大小进行标准化得到Normalized Enrichment Score (NES)。随后针对NES计算假阳性率。(计算NES也有另外一种方法,是计算出的ES除以排列检验得到的所有ES的平均值)

  4. Leading-edge subset,对富集得分贡献最大的基因成员。

第四列前面的数字为背景基因中富集到这个GO term的基因数,后面的数字为背景基因的总数;

DEGseq对无重复样本差异分析

也有推荐DEGSeq 中MARS方法的(MARS: MA-plot-based method with Random Sampling model)。

## 1.安装DEGseq
source("https://bioconductor.org/biocLite.R")
biocLite("DEGseq")
library("DEGseq")
setwd("G:/My_exercise/DEG/")
#读入数据,每组样本构建单独一个矩阵
matrix1 <- readGeneExp(file="hisat_matrix.out", geneCol=1, valCol=2)
matrix2 <- readGeneExp(file="hisat_matrix.out", geneCol=1, valCol=3)

DEGexp(geneExpMatrix1=matrix1, geneCol1=1, expCol1=2, groupLabel1="F_1yr.OC",
               geneExpMatrix2=matrix2, geneCol2=1, expCol2=2, groupLabel2="M_1yr.OC",
               method="MARS", outputDir="G:/My_exercise/DEG/")

9778818威尼斯官网 9

MA.plot

9778818威尼斯官网 10

GSEA分析

  • 首先是软件的下载 → 官网
    在download界面需要使用教育邮箱登陆,根据自己内存选择下载

    9778818威尼斯官网 11

    download

  • 随后准备输入文件(详细情况可见链接,下面有常见的两种格式示范)

    • 1 Expression Data Formats

      • 1.1 GCT: Gene Cluster Text file format (*.gct)
      • 1.2 RES: ExpRESsion (with P and A calls) file format (*.res)
      • 1.3 PCL: Stanford cDNA file format (*.pcl)
      • 1.4 TXT: Text file format for expression dataset (*.txt)
    • 2 Phenotype Data Formats

      • 2.1 CLS: Categorical (e.g tumor vs normal) class file format (*.cls)
      • 2.2 CLS: Continuous (e.g time-series or gene profile) file format (*.cls)

理论上需要输入的数据自己准备好的gene sets,我这里不使用自己的geneset list,直接使用GSEA为使用者整理好的gene sets database,人生苦短,我选简单

简单示例:

这里输入文件需要两个,第一个是基因表达矩阵.gct文件,第二个为样品分组信息文件.cls

Deseq2出来的数据在R里面处理一下就是GCT文件,加上两行,插入一列,第一行第一列直接赋值为为“#1.2”(默认),第二行第一列就是nrow(your_data)-3,第二行第二列为ncol(your_data)-2,其余为NA,保存为.gct文件,sep= "t",即可

GCT文件: Gene Cluster Text file format (*.gct)

9778818威尼斯官网 12

参考.gct文件

9778818威尼斯官网 13

示例.gct文件

这里只讨论简单的对照实验,不考虑时间点等多组对照实验(详情可参见官网示例文件,在此基础上简单变形,很简单)
依旧可以通过R创建一个data.frame,三行,每行信息如下所示,保存为.gct文件,sep= "t"
或者使用文本处理软件编辑一下即可

9778818威尼斯官网 14

参考.cls文件

9778818威尼斯官网 15

示例.cls文件

  • Load到GSEA软件:

9778818威尼斯官网 16

browse

9778818威尼斯官网 17

成功load

  • Set GSEA

9778818威尼斯官网 18

个人设置理解

  • Run GSEA

9778818威尼斯官网 19

running message

点击对应ERROR 或者 SUCCESS 可以获取相应的信息

9778818威尼斯官网 20

Details

以上每一个可点击的项都是有用的信息,可以自行探索,主要解释一下下面的图:

9778818威尼斯官网 21

常见结果图

  • 图最上面部分展示的是ES的值计算过程,从左至右每到一个基因,计算出一个ES值,连成线。最高峰为富集得分(ES)。在最左侧或最右侧有一个特别明显的峰的基因集通常是感兴趣的基因集。
    图中间部分每一条先代表基因集中的一个基因,及其在基因列表中的排序位置。
  • 最下面部分展示的是基因与表型关联的矩阵,红色为与第一个表型(MUT)正相关,在MUT中表达高,蓝色与第二个表型(WT)正相关,在WT中表达高。
  • Leading-edge subset 对富集得分贡献最大的基因成员。若富集得分为正值,则是峰左侧的基因;若富集得分为负值,则是峰右侧的基因。
  • FDR GSEA默认提供所有的分析结果,并且设定FDR<0.25为可信的富集,最可能获得有功能研究价值的结果。但如果样品数目少,而且选择了gene_set作为Permumation type则需要使用更为严格的标准,比如FDR<0.05。
    ——引自参考文献
  • Run Leading edge analysis

9778818威尼斯官网 22

个人参数

对应结果可以保存

9778818威尼斯官网 23

结果

  • Enrichment Map Visualization
    需要安装cytoscape 3.3,此处不做演示

第五列为P value,即计算第三列的百分比与第四列的百分比相比,是否有显著差异。我们将小于0.05的P value标红显示;

GFOLD对无重复样本进行差异分析

该软件称尤其适合做无重复样本的差异分析,他对foldchange 的计算考虑到posterior distribution,即克服了pvalue评估显著性的缺点,同时也克服了 fold change 在评估低counts 数的gene时的缺点。

好啦,学习到此结束,大家十一月快乐

第六列为多重检验校正后的Q value,也是把小于0.05的Q value标红显示。这些GO term是按照P value从小到大排列的,方便老师找差异富集结果。如在这个例子中,microtubule-based process为在差异基因中富集最显著的GO term,说明profile1中的基因显著富集于这个功能。

下载软件:
wget https://bitbucket.org/feeldead/gfold/get/e78560195469.zip
unzip e78560195469.zip
cd feeldead-gfold-e78560195469 
查看REDEME安装说明

安装GFOLD时,需要先安装gsl,然后再编译安装gfold。

#安装gsl
wget ftp://ftp.gnu.org/gnu/gsl/gsl-2.4.tar.gz
tar zxf gsl-2.4.tar.gz
cd gsl-2.4
./configure
make 
make install

#查看帮助文档
cd doc/
firefox gfold.html &

参考文献

Khatri, P., Sirota, M., & Butte, A. J. (2012). Ten years of pathway analysis: Current approaches and outstanding challenges. PLoS Computational Biology, 8(2).

Subramanian A, Tamayo P, Mootha V K, et al. Gene set enrichment analysis: a knowledge-based approach for interpreting genome-wide expression profiles[J]. Proceedings of the National Academy of Sciences, 2005, 102(43): 15545-15550.

GSEA富集分析


9778818威尼斯官网 24

日常Bob镇楼

3.GO有向无环图(out.C/P/F.png)

该软件的功能包括5部分:

1)Count reads and rank genes;
2)Count reads;
3)Identify differentially expressed genes without replicates;
4)Identify differentially expressed genes with replicates;
5)Identify differentially expressed genes with replicates only in one condition.
下面是无重复样本计算差异的例子:

9778818威尼斯官网 25

对于前面得到的counts列表(hisat_matrix.out)每个样本单独分开,并命名为samplename.read_cnt(一定要加后缀.read_cnt).

awk '{print $1,$2}' OFS='t' hisat_matrix.out >F.OC.read_cnt
awk '{print $1,$3}' OFS='t' hisat_matrix.out >M.OC.read_cnt
#这里查看下F.OC.read_cnt是否有头文件,若有最好注释掉,否则后面差异结果有错位
gfold diff -s1 F.OC -s2 M.OC -suf .read_cnt -o F_M.OC.diff
awk '{if($4>1) print $0}' F_M.OC.diff OFS='t' > up_diff.gene
awk '{if($4<-1) print $0}' F_M.OC.diff OFS='t' > down_diff.gene

上调基因:2002,下调基因:2569


从整体上来看,GO注释系统是一个有向无环图(Directed Acyclic Graphs),GO各term之间的关系是单向的,GO term之间的分类关系有三种:is a、part of 和 regulates。具体的解释可看这个帖子:

差异基因初步统计

用edgeR共筛选到1322个差异显著基因(筛选条件:PValue<0.05 & abs(logFC) >1),
用DEGseq共筛选到743个差异显著基因(筛选条件:abs(log2(Fold_change) normalized ) >1 & p-value < 0.05 & q-value(Storey et al. 2003) <0.05 & Signature(p-value < 0.001)=TRUE), 用GFOLD共筛选到4571个差异基因(abs(logFC) >1)。其中edgeR和DEGseq筛选到显著差异基因共有720个基因重合,edgeR与gfold有1320个重复,gfold与DEGseq有723个重合。

在这个图中,越接近根结点的GO term越概括,往下分支的GO term为注释到更细层级的term。我们来看每个GO term里的含义:

注释

接下来注释这些差异基因分别包含的mRNA和lincRNA,及其GO和KEGG pathway分析。

其中,Pvalue 这一行,如果大于0.05,即会显示NA,即图中只显示显著的P value。

mRNA和lincRNA的注释

写个脚本从注释文件里提取出来差异基因是什么分类就可以了。

形状的含义:程序默认把显著性最高的前10个GO term设置为方形,其他的GO term为圆形。

GO和KEGG注释

GO和KEGG注释用Y叔的clusterprofiler。首先下载clusterProfiler包及猕猴的OrgDb,目前Bioconductor共包含20个物种。

9778818威尼斯官网 26

##加载clusterProfiler及OrgDb
source("https://bioconductor.org/biocLite.R")
biocLite("clusterProfiler")
biocLite("org.Mmu.eg.db")
library(clusterProfiler)
library("org.Mmu.eg.db")

setwd("G:/My_exercise/cluster_profile/")
##读入差异基因
gene_diff <- read.csv(file="gfold.all.csv",header = TRUE,sep = ",")
dim(gene_diff)
gene <- gene_diff$X.GeneSymbol

clusterProfiler提供了ID转化的函数bitr(), 25种ID格式可以相互转化。对于GO注释不需要进行ID转换,KEGG分析时需要先进行ID转换,ID的类型(fromType & toType)必须有一个是kegg id, ncbi-geneid,ncbi-preoteinid 中的一个。

For GO analysis, user don’t need to convert ID, all ID type provided by OrgDb can be used in groupGO, enrichGO and gseGO by specifying keytype parameter.
bitr_kegg: converting biological IDs using KEGG API,The ID type (both fromType & toType) should be one of ‘kegg’, ‘ncbi-geneid’, ‘ncbi-proteinid’ or ‘uniprot’. The ‘kegg’ is the primary ID used in KEGG database.

## bitr()ID转换
gene.df_ID <- bitr(gene,fromType = "ENSEMBL",toType = c("SYMBOL","UNIPROT","ENTREZID"),OrgDb = org.Mmu.eg.db)
write.table(as.data.frame(gene.df_ID),file="gene_transID",sep = "t",quote = FALSE)
# 获取按照log2FC大小来排序的基因列表
genelist <-gene_diff$log2fdc
#names(genelist) <- rownames(diff_gene_deseq2) 
genelist <- sort(genelist, decreasing = TRUE)

参考clusterProfiler文档。

颜色的含义:颜色越深,代表该GO term越显著。颜色由浅到深分别为:无色——浅黄——深黄——红色。

GO分析

具体参数参考:(伪)从零开始学转录组(8):富集分析

#groupGO(gene, OrgDb, keytype = "ENTREZID", ont = "CC", level = 2,readable = FALSE)
#groupGO()支持ENTREZID
#If readable is setting to TRUE, the input gene IDs will be converted to gene symbols.
#BP:Biological Process; CC:Cellular Componen;MF:Molecular Function
#GO:https://www.zhihu.com/question/53055375
ggo_CC <- groupGO(gene     = gene.df_ID$ENTREZID,
                  OrgDb    = org.Mmu.eg.db,
                  ont      = "CC",
                  level    = 3,
                  readable = TRUE)

ggo_BP <- groupGO(gene     = gene.df_ID$ENTREZID,
                  OrgDb    = org.Mmu.eg.db,
                  ont      = "BP",
                  level    = 3,
                  readable = TRUE)
ggo_MF <- groupGO(gene     = gene.df_ID$ENTREZID,
                  OrgDb    = org.Mmu.eg.db,
                  ont      = "MF",
                  level    = 3,
                  readable = TRUE)
#可视化
barplot(ggo_CC,showCategory=12,font.size=7,title="groupGO Cellular Component")
barplot(ggo_BP,showCategory=12,font.size=7,title="groupGO Biological Process")
barplot(ggo_MF,showCategory=12,font.size=7,title="groupGO Molecular Function")

9778818威尼斯官网 27

groupgo

那么,从颜色上来看,在molecular function这个ontology上,最显著的GO term是GO:0003774。因此后续可以从这个GO term入手,这个GO term所在的分支上的其他GO term也值得研究。

GO over-representation test

#enrichGO(gene, OrgDb, keytype = "ENTREZID", ont = "MF",
#         pvalueCutoff = 0.05, pAdjustMethod = "BH", universe, qvalueCutoff = 0.2,
#         minGSSize = 10, maxGSSize = 500, readable = FALSE, pool = FALSE)
ego_CC <- enrichGO(gene          = gene,
                   OrgDb         = org.Mmu.eg.db,
                   keytype = "ENSEMBL",
                   ont           = "CC",
                   pAdjustMethod = "BH",
                   pvalueCutoff  = 0.05,
                   readable = TRUE)

ego_BP <- enrichGO(gene          = gene,
                   OrgDb         = org.Mmu.eg.db,
                   keytype = "ENSEMBL",
                   ont           = "BP",
                   pAdjustMethod = "BH",
                   pvalueCutoff  = 0.05,
                   readable = TRUE)
ego_MF <- enrichGO(gene          = gene,
                   OrgDb         = org.Mmu.eg.db,
                   keytype = "ENSEMBL",
                   ont           = "MF",
                   pAdjustMethod = "BH",
                   pvalueCutoff  = 0.05,
                   readable = TRUE)


ego_all <- enrichGO(gene          = gene,
                    OrgDb         = org.Mmu.eg.db,
                    keytype = "ENSEMBL",
                    ont           = "ALL",
                    pAdjustMethod = "BH",
                    pvalueCutoff  = 0.05,
                    readable = TRUE,
                    pool = TRUE)
#可视化barplot
barplot(ego_CC, showCategory=12,font.size=7,title="EnrichmentGO_CC")
barplot(ego_BP, showCategory=12,font.size=7,title="EnrichmentGO_BP")
barplot(ego_MF, showCategory=12,font.size=7,title="EnrichmentGO_MF")
barplot(ego_all, showCategory=12,font.size=7,title="EnrichmentGO_all")
#dotplot
dotplot(ego_CC, showCategory=12,font.size=7,title="EnrichmentGO_CC")
dotplot(ego_BP, showCategory=12,font.size=7,title="EnrichmentGO_BP")
dotplot(ego_MF, showCategory=12,font.size=7,title="EnrichmentGO_MF")

#enrichMap
#plotGOgraph(ego_MF)
enrichMap(ego_CC)
enrichMap(ego_BP)
enrichMap(ego_MF)

#cnetplot
cnetplot(ego_CC, categorySize="pvalue", foldChange=genelist)
cnetplot(ego_BP, categorySize="pvalue", foldChange=genelist)
cnetplot(ego_MF, categorySize="pvalue", foldChange=genelist)
##############################################
####GO Gene Set Enrichment Analysis

##gseGO(geneList, ont = "BP", OrgDb, keyType = "ENTREZID", exponent = 1,
##  nPerm = 1000, minGSSize = 10, maxGSSize = 500, pvalueCutoff = 0.05,
##  pAdjustMethod = "BH", verbose = TRUE, seed = FALSE, by = "fgsea")

#ego_gsea_CC <- gseGO(geneList     = genelist,
#                     OrgDb        = org.Mmu.eg.db,
#                     keyType = "ENSEMBL",
#                    ont          = "CC")

#dotplot(ego_gsea_CC)

9778818威尼斯官网 28

ego.dotplot

GO有向无环图展示了GO term之间的分类关系,并且从另一方面帮助老师寻找显著富集的GO term。

KEGG(pathway)分析

kegg <- gene.df_ID[,4]
ekk <- enrichKEGG(kegg, keyType = "kegg",organism = "mcc", pvalueCutoff = 0.05, pAdjustMethod = "BH", qvalueCutoff = 0.1)
head(summary(ekk))
mkk <- enrichMKEGG(kegg,organism = 'mcc')
##可视化
dotplot(ekk,title="enrichKEGG")
cnetplot(ekk, categorySize="pvalue", foldChange=genelist)

write.table(as.data.frame(ekk),file = "kegg",sep="t",quote=F,row.names=F)
write.csv(as.data.frame(ekk),file = "kegg.csv")

9778818威尼斯官网 29

enrichkegg


大家如果在数据处理的过程中,使用了我们的omicshare tools云工具网站,那么在文章中的method部分可以这样引用:GO enrichment analysis was performed using the OmicShare tools,a free online platform for data analysis (www.omicshare.com/tools)。

参考资料:

一步法差异分析:https://github.com/jmzeng1314/my-R/tree/master/DEG_scripts
从零开始学转录组(7):差异基因表达分析
从零开始学转录组(8):富集分析
RNA-seq项目设计:生物学重复和单个样本测序量对结果的影响
clusterProfiler参考文档
差距表达的mKoleosNA和lnc凯雷德NA,德州仪器量测序数据处教育学习记录。差异基因分析
文献:Efficient experimental design and analysis strategies for the detection of differential expression using RNA-Sequencing

五、详细版:英文method 加 引用

Gene Ontology is an international standardized gene functional classification system whichoffers a dynamic-updated controlled vocabulary and a strictly defined conceptto comprehensively describe properties of genes and their products in anyorganism. GO has three ontologies: molecular function, cellular component andbiological process. The basic unit of GO is GO-term. Each GO-term belongs to a type of ontology.

GO enrichment analysis provides all GO terms that significantly enriched in DEGs comparing to the genome background, and filter the DEGs that correspond to biological functions. GO enrichment analysis was performed using the OmicShare tools,a free online platform for data analysis (www.omicshare.com/tools)。Firstly all DEGs were mapped to GO terms in the Gene Ontology database (), gene numbers were calculated for every term, significantly enriched GO terms in DEGs comparing to the genome background were defined by hypergeometric test. The calculated p-value was gone through FDR Correction, taking FDR ≤ 0.05 as a threshold. GO terms meeting this condition were defined as significantly enriched GO terms in DEGs. This analysis was able to recognize the main biological functions that DEGs exercise.

二、Pathway富集介绍KEGG(Kyoto Encyclopedia of Genes and Genomes)数据库是系统地分析基因功能、链接基因组信息和功能信息的数据库,包括代谢通路数据库、分层分类数据库、基因数据库、基因组数据库等。KEGG的pathway数据库是应用最广泛的代谢通路公共数据库。富集的含义:这里pathway富集的含义与GO富集的含义相同,也是表示差异基因中注释到某个代谢通路的基因数目在所有差异基因中的比例显著大于背景基因中注释到某个代谢通路的基因数目在所有背景基因中的比例。因此,做pathway富集分析,也是涉及到前景基因和背景基因。前景基因就是你关注的要重点研究的基因集,背景基因就是所有的基因集。富集显著性的计算:计算方法和公式与GO富集分析一样,也是利用超几何检验计算: 其中,N为所有基因中具有Pathway注释的基因数目;n为N中差异表达基因的数目;M为所有基因中注释为某特定Pathway的基因数目;m为注释为某特定Pathway的差异表达基因数目。 计算得到的P value会进一步经过多重检验校正,得到corrected-pvalue(也就是Q value)。通常我们会以Q value≤0.05为阈值,满足此条件的pathway定义为在差异表达基因中显著富集的pathway。二、数据准备需要准备的数据有两份:富集目的基因文件、背景基因表1. 富集目的基因文件:就是你要用来富集的前景基因表,比如某个比较组的差异表达基因。数据格式:第一列为基因ID,之后可以有基因表达信息、注释信息等,但要注意的是第一列的基因ID必须有。注意:富集目的基因文件的基因ID必须包含在背景基因文件中。2. 背景基因表:即所有基因的列表,比如所有组样本的基因。数据格式:第一列为基因ID,第二列为用于获取pathway的ID,有三种类型可供选择:获取背景文件对大部分用户来说,会比较困难,理论上有三种方法获取:如果是基迪奥客户,在结题报告中就包含相关背景注释文件(如果没有可以联系我们技术支持索取);如果是其他公司的数据的用户,建议可以联系对应公司的售后服务人员索取这样的文件;如果有生物信息基础的用户,自行从KEGG官网下载基础的素材,然后编程整理;或者自己完成KEGG注释;文件有三大类型:类型1:keggID即kegg官网上的ID。keggID类型又可分为两种,如下图:这两种格式都是基迪奥RNA测序结题报告中的注释文件给出的格式,如果是基迪奥客户,可以不经修改直接使用。例如:以上的第一种格式的文件,位于转录组de novo结题报告中的文件路径是:Denovo_Result4_basic_annotation差距表达的mKoleosNA和lnc凯雷德NA,德州仪器量测序数据处教育学习记录。KEGG-***Unigene.fa.blast.kegg.xls;第二种格式的文件,为同样是位于这个文件路径中的这个文件:***-Unigene.fa.ko.txt类型2:ncbi-geneID即从ncbi上得到的基因ID,为一串数字组成,如下图:如何获得ncbi-geneID?——如果是模式生物,可以在ensemble的biomart中下载到ensemble ID对应的ncbi ID。具体可查看这个帖子: id或NCBI id。类型3:KO号即基因在KEGG中的ID,如下图:该类型也是基迪奥RNA测序结题报告中的注释文件给出的格式。如果是基迪奥客户,可以不经修改直接使用。路径:denovo结题报告中的Denovo_Result4_basic_annotation4_databaseKEGG_id.xls 有参RNA-seq结题报告中的Result4.ExpressionStatall.genes.expression.xls如果没有在公司测序,对于无参考基因组的物种,也可以自行在KEGG官网上的BlastKOALA进行注释: ORTHOLOGY上下载到物种全部基因的KO号,但是下载下来的格式不太好用,很难整理成我们需要的格式,如下图:准备好背景基因文件后,要根据ID类型选择下面两个参数:1. 背景基因表类型:KO、ncbi-geneID、keggID,根据上面准备好的背景基因表的类型选择即可。2. 物种类型:这里是要选择用哪个数据库来注释。分了全库、动物库、植物库、微生物库、真菌库。如果背景基因表的ID类型是ncbi-geneID和keggID,那么选择相应的物种库或全库都是可以的,富集出来的结果相同,但选择相应物种库的话运行时间则比较短;如果背景基因表的ID类型是KO时,因为不同物种间相同的KO号可能会对应不同的pathway,所以建议选择相应物种库进行注释。3. 基因差异表达差异倍数表可以添加基因差异表达倍数表,添加该表后,在得到的通路图中,就能看到每个差异基因的上下调倍数,如下图:红色圆圈圈起来的1.3表示该基因上调1.3倍。如果不上传这个基因差异表达倍数表,就无法获取这些信息哦!数据格式:第一列为基因ID,第二列为差异表达倍数的log2值(也就是log2上传完这些文件和选择好参数后,点击“提交”,就等着收菜啦!三、结果解读1. Pathway富集结果表双击这个文件,可以在网页中打开。这个表的含义与GO富集结果表是类似的:第一列为pathway名称;第二列为差异基因中注释到该pathway的基因数目以及占总差异基因数目的比例,表头数字为差异基因总数目;第三列为所有背景基因中注释到该pathway的基因数目以及占总背景基因数目的比例,表头数字为背景基因总数目;第四列为P value,即计算第二列的百分比与第三列的百分比相比,是否有显著差异。我们将小于0.05的P value标红显示;第五列为多重检验校正后的Q value,也是把小于0.05的Q value标红显示。这些pathway是按照P value从小到大排列的,方便老师找差异富集结果。如在这个例子中,microRNAs in cancer为在差异基因中富集最显著的pathway,说明该比较组的差异基因显著富集于这条代谢通路。第六列为pathway 的ID另外,点击第一列的pathway名称,可以查看该pathway包含的基因ID,再点击这里的pathway名称,可以连接到KEGG官网上该pathway的通路图,查看pathway的具体信息:这个通路图直观地展示了在这个代谢通路中,哪些基因的表达量发生了变化。表达量下调的基因显示为绿色,表达量上调的基因显示为红色。一半红一半绿的框表示多个基因都属于这个基因家族,其中一个基因表达上调,另一个基因表达下调。2. 代谢通路图文件夹这个文件夹存放的就是每个pathway的map图和相应的KEGG官网链接。3. pathway注释统计图(out.path.png/svg)这个图统计了注释到pathway A级、B级的基因的数目。图中纵坐标为KEGG的A级和B级分类,黑色字体的是A级分类名,彩色字体的是B级分类名。横坐标为对应B级分类上的基因数目。4. 差异基因富集pathway表(out.path.xls)这个表就是1.pathway富集结果的内容。其中增加了以下信息:第一列是KEGG的A级分类名,第二列是KEGG的B级分类名,那么第三列就是C级分类,也就是具体的pathway名称了。后面的都是相同的哈!注意最后一列的KO号为基因在KEGG中的ID号。

大家如果在数据处理的过程中,使用了我们的omicshare tools云工具网站,那么在文章中的method部分可以这样引用:Pathway enrichment analysis was performed using the OmicShare tools, a free online platform for data analysis (www.omicshare.com/tools)。

KEGG is the major public pathway-related database.Pathway enrichment analysis identified significantly enriched metabolicpathways or signal transduction pathways in DEGs(different expression genes) comparing with the wholegenome background. Pathway enrichment analysis was performed using the OmicShare tools,a free online platform for data analysis (www.omicshare.com/tools)。Significantly enriched pathways in DEGs comparing to the genome background were defined by hypergeometric test. The calculated p-value was gone through FDR Correction, taking FDR ≤ 0.05 as a threshold. Pathways meeting this condition were defined as significantly enriched pathways in DEGs.

本文由9778818威尼斯官网发布于9778818威尼斯官网,转载请注明出处:差距表达的mKoleosNA和lnc凯雷德NA,德州仪器量测序

您可能还会对下面的文章感兴趣: