Month: March 2018

  • GSEA分析流程

    什么是GSEA? 基因集富集分析 (Gene Set Enrichment Analysis, GSEA)用来评估一个预先定义的基因集的基因在与表型相关度排序的基因列表中的分布趋势,从而判断其对表型的贡献。基因集合富集分析检测基因集合而不是单个基因的表达变化,因此可以包含这些细微的表达变化,预期得到更为理想的结果。 GSEA原理 给定一个排序的基因表L和一个预先定义的基因集S (比如编码某个代谢通路的产物的基因, 基因组上物理位置相近的基因,或同一GO注释下的基因),GSEA的目的是判断S里面的成员s在L里面是随机分布还是主要聚集在L的顶部或底部。这些基因排序的依据是其在不同表型状态下的表达差异,若研究的基因集S的成员显著聚集在L的顶部或底部,则说明此基因集成员对表型的差异有贡献,也是我们关注的基因集。 GSEA分析中几个关键的概念 计算富集得分 (ES, enrichment score),ES反应基因集成员s在排序列表L的两端富集的程度。计算方式是,从基因集L的第一个基因开始,计算一个累计统计值。当遇到一个落在s里面的基因,则增加统计值。遇到一个不在s里面的基因,则降低统计值。每一步统计值增加或减少的幅度与基因的表达变化程度(更严格的是与基因和表型的关联度)是相关的。富集得分ES最后定义为最大的峰值。正值ES表示基因集在列表的顶部富集,负值ES表示基因集在列表的底部富集。 评估富集得分(ES)的显著性,通过基于表型而不改变基因之间关系的排列检验 (permutation test)计算观察到的富集得分(ES)出现的可能性。若样品量少,也可基于基因集做排列检验 (permutation test),计算p-value。 多重假设检验矫正,首先对每个基因子集s计算得到的ES根据基因集的大小进行标准化得到Normalized Enrichment Score (NES)。随后针对NES计算假阳性率。(计算NES也有另外一种方法,是计算出的ES除以排列检验得到的所有ES的平均值) Leading-edge subset,对富集得分贡献最大的基因成员。 MSigDB数据库 MSigDB(Molecular Signatures Database)数据库中定义了已知的基因集合:http://software.broadinstitute.org/gsea/msigdb 包括H和C1-C7八个系列(Collection),每个系列内容为:H: hallmark gene sets(效应)特征基因集合,共50组(比如细胞凋亡特征基因集);C1: positional gene sets 位置基因集合,根据染色体位置,共326个;C2: curated gene sets:(专家)共识基因集合,基于通路、文献等(这部分包括我们熟悉的KEGG信号通路);C3: motif gene sets:模式基因集合,主要包括microRNA和转录因子靶基因两部分;C4: computational gene sets:计算基因集合,通过挖掘癌症相关芯片数据定义的基因集合;C5: GO gene sets:Gene Ontology 基因本体论,包括BP(生物学过程biological process,细胞原件cellular component和分子功能molecular…

  • DESeq分析流程

    source(“https://bioconductor.org/biocLite.R”) biocLite(“DESeq”) library(“DESeq”) database <- read.table(file = “macrophage_genes.count_table.matrix”, sep = “\t”, header = T, row.names = 1) countData <- database[,1:3] condition <- factor(c(“A”,”B”,”C”))#无生物学重复 #type <- factor(c(rep(“A”,3), rep(“B”,3))) 有生物学重复 database <- round(as.matrix(countData))#取整数型 dds <- newCountDataSet(database,condition) dds <- estimateSizeFactors(dds) dds <- estimateDispersions(dds, method=”blind”, sharingMode=”fit-only” )#无生物学重复 dds <- estimateDispersions(dds) # 有生物学重复 resAvsB <- nbinomTest(dds,”A”,”B”) resAvsC <- nbinomTest(dds,”A”,”C”) table(resAvsB$pval…