2023-01-10 gsea

https://www.sohu.com/a/281843011_120055884
https://www.jianshu.com/p/cff8fe8b548a
之前介绍的一种是用R包做的图,利用的是log2foldchange 和ensemble ID
这次介绍的是GESA软件操作
原始分析数据
原始的FPKM值为
基因名(需要是ENTREZID格式)

image.png

构建其他物种

GSEA软件下载:https://www.gsea-msigdb.org/gsea/index.jsp 直接选择你操作系统对应的版本,下载安装即可。
准备上传文件

1.基因表达量表(.gct)

通常用.gct为后缀。文件第一行以“#1.2”开头;文件第二行的第一列为基因个数、第二列为样品个数;文件的第三行为表达谱的矩阵的title信息,第一列为基因symbol/探针号,第二列为基因/探针的描述信息,第三列以后为样品id。接下来的行对应每个基因/探针在每个样品中的表达信息。文件以tab作为分隔符。


image.png

第一列不能有重复


image.png

2. 样品表型分类文件(cls)——必需文件

样品表型分类文件需以.cls为后缀。文件第一行为三个数字,第一个是样品的总数,第二个是样品分为几类,第三个数字通常为1。第二行也通常三个字符串,第一个为#,第二个为分类1的名称,第三个位分类2的名称。第三行为每个样品的分类信息,0代表分类1,1则代表分类2。文件以空格或者tab分割。


image.png

GSEA 分析

导入数据
打开GSEA软件,点击左侧菜单栏的Load data选项,将数据按如下图所示方法导入


image.png

设置参数
按照下图标记的批注设置合适的参数。


image.png

image.png

image.png

Expression dataset(表达文件): 选择上一步上传的表达gct文件

Gene sets database (功能基因集数据库):GSEA包含了MSigDB数据库中的功能基因集,可以从中选择感兴趣的通路、癌症标记、转录因子数据库等。
Number of permutations(扰动/随机次数):通常设置1000,此参数不可过小。
Phenotypes labels(样品表型分类文件):选择上一步上传的表型cls文件
Collapse dataset to gene symbols:通常true

如果已经变为了gene symobols 则不需要进行转换
如果不是,则需要进行转换
Permutation type(扰动类型): 通常选择phenotype,如果样品数目较少可以选择gene_set。
Chip platform(芯片类型):如果表达gct文件的第一列为芯片探针id则此处需要选择对应的芯片平台,如果是基因symbol则无需选择。


image.png

image.png

image.png

gsea分析结束后

点击相应的success


image.png

跳到相应的分析结果


image.png

如果是其他物种,https://www.jianshu.com/p/cff8fe8b548a

可以构建心得基因集
<meta charset="utf-8">

基因集文件的准备相对比较复杂,我用到的是KEGG的通路基因集,也可以用GO的的基因集,甚至可以自己创造一个,只需要满足上图所示的文件格式。下面介绍一下如何从KEGG网站上下载某物种(小鼠)的基因集信息。

首先,在KEGG数据库中下载小鼠的KEGG通路数据库文件

image.png

image.png
image.png

image.png

image.png

大家可以看到,这个.keg文件和我们需要的.gmt文件还有不小的差异,那么,我们需要按如下方法,先在Linux下解析keg文件,然后用R制作.gmt文件:

#解析信息
perl -alne '{if(/^C/){/PATH:mmu(\d+)/;$kegg=$1}else{print "$kegg\t$F[1]" if /^D/ and $kegg;}}' mmu00001.keg > mmu00001_kegg2gene.txt
grep '^C' mmu00001.keg | grep "mmu" | sed 's/^C    //g' | sed 's/\([0-9]*\)\s/\1\t/' > mmu00001_kegg2description.txt
#转换ID同时制作.gmt文件
#安装转换ID需要用到的各个R包
#安装data.table
install.packages("data.table")
#安装org.Xx.eg.db系列包中小鼠资源包
BiocManager::install("org.Mm.eg.db")
#安装clusterProfiler包,安装时需要“科学上网”
BiocManager::install("clusterProfiler")

#调用各个R包
library(data.table)
library(org.Mm.eg.db)
library(clusterProfiler)

#读入数据
path2gene_file<-"mmu00001_kegg2gene.txt"
tmp=read.table(path2gene_file,sep="\t",colClasses=c('character'))
dt <- tmp
dt$geneid <- rownames(dt)

# transform id  
map_dt <- bitr(dt$V2, fromType = "ENTREZID",toType = c( "SYMBOL"),OrgDb = org.Mm.eg.db)
dt_merge <- merge(map_dt,dt, by.y = "V2", by.x = "ENTREZID")

# 可以把转换ID后的表输出
#write.table(dt_merge, file = "example42.txt", sep = "\t", col.names = T, row.names = T, quote = F)

# first column is kegg ID, second column is entrez ID
GeneID2kegg_list<- tapply(tmp[,1],as.factor(tmp[,2]),function(x) x)
kegg2symbol_list<- tapply(dt_merge$SYMBOL,as.factor(dt_merge$V1),function(x) x)

#输出数据,但描述列为NA
write.gmt <- function(geneSet=kegg2symbol_list,gmt_file='kegg2symbol.gmt'){
  sink( gmt_file )
  for (i in 1:length(geneSet)){
    cat(names(geneSet)[i])
    cat('\tNA\t')
    cat(paste(geneSet[[i]],collapse = '\t'))
    cat('\n')
  }
  sink()
}

write.gmt()
image.png

另外一种方法,构建斑马鱼物种的bp基因集

setwd("I:/ZHS_Seq_data/RUN")
library(msigdbr)
msigdbr_species() #可以看到,这个包涵盖了20个物种

zebrafish <- msigdbr(species = "Danio rerio")
zebrafish[1:5,1:5]
table(zebrafish$gs_cat) #查看目录,与MSigDB一样,包含9个数据集
#例如,本例中,我们要分析GO,因为mouse文件包含了所有的基因集,所以要查看GO在哪里,然后将需要的文件提出来。
table(zebrafish$gs_subcat)
zebrafish_GO_bp = msigdbr(species = "Danio rerio",
                      category = "C5", #GO在C5
                      subcategory = "GO:BP") %>% 
  dplyr::select(gs_name,gene_symbol)#这里可以选择gene symbol,也可以选择ID,根据自己数据需求来,主要为了方便
head(zebrafish_GO_bp)

zebrafish_GO_bp_Set = zebrafish_GO_bp %>% split(x = .$gene_symbol, f = .$gs_name)#后续gsva要求是list,所以将他转化为list
write.csv(zebrafish_GO_bp_Set,"zebrafish_GO_bp_Set.csv")
###names(zebrafish_GO_bp_Set)
##zebrafish_GO_bp_Set

write.gmt <- function(geneSet=zebrafish_GO_bp_Set,gmt_file='kegg2symbol.gmt'){
  sink( gmt_file )
  for (i in 1:length(geneSet)){
    cat(names(geneSet)[i])
    cat('\tNA\t')
    cat(paste(geneSet[[i]],collapse = '\t'))
    cat('\n')
  }
  sink()
}


write.gmt()

构好文件如下,第二列为NA


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

推荐阅读更多精彩内容