前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >vissE--提供不同的基因集富集分析方法!

vissE--提供不同的基因集富集分析方法!

作者头像
作图丫
发布于 2022-03-29 03:16:43
发布于 2022-03-29 03:16:43
57200
代码可运行
举报
文章被收录于专栏:作图丫作图丫
运行总次数:0
代码可运行

导语

GUIDE ╲

通常,基因集富集分析的结果(例如使用 limma::fry、singscore 或 GSEA)由一长串基因集组成。然后生物学家必须搜索这些列表,以确定新出现的主题来解释改变的生物过程。这项任务可能是劳动密集型的,因此需要解决方案来总结来自此类分析的大量结果

背景介绍

今天小编给大家介绍一款基于网络和文本挖掘方法对基因集富集分析的结果进行解释和分析的R包--vissE。该软件包利用基因集与通路数据库和基因本体中可能存在的固有层次结构之间的相关性来聚类结果。对于 vissE 识别的每个基因集集群,通过文本挖掘来表征生物功能和过程。

vissE 的另一个功能是基于基因集之间的相似性网络执行一种新型的基因集富集分析。给定一个基因列表(例如来自 DE 分析),vissE 可以通过首先识别与其相似的所有其他基因集来表征该列表,然后对生成的基因集进行聚类,最后通过文本挖掘来揭示新出现的基因集themes。

R包安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("vissE")

功能介绍

01

基因集富集分析的结果

通常,基因集富集分析的结果是一个基因集列表,并附有其统计数据和 p 值或错误发现率 (FDR)。生物学家会利用这些结果,提取与他们感兴趣的实验有关的相关功能。vissE包提供了自动化提取结果的功能。

下面的示例可用于任何富集分析的结果。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(msigdb)
library(GSEABase)

#加载MSigDB
msigdb_hs = msigdb.v7.2.hs.SYM()
#扩展KEGG基因集
msigdb_hs = appendKEGG(msigdb_hs)
#选择h, c2, and c5
msigdb_hs = subsetCollection(msigdb_hs, c('h', 'c2', 'c5'))
#随机采样基因集以模拟富集分析的结果
set.seed(360)
geneset_res = sample(sapply(msigdb_hs, setName), 2500)
#使用基因集分析结果创建一个 GeneSetCollection
geneset_gsc = msigdb_hs[geneset_res]
geneset_gsc
#GeneSetCollection
#>names: GO_CARBOHYDRATE_TRANSPORT, GO_NEURON_DEVELOPMENT, ..., KARLSSON_TGFB1_TARGETS_DN (2500 total)
#>unique identifiers: OCLN, SLC35B1, ..., TLCD3A (18844 total)
#>types in collection:
#>geneIdType: SymbolIdentifier (1 total)
#>collectionType: BroadCollection (1 total)

vissE 分析包括 3 个步骤:

1、计算基因集overlaps 和基因集overlaps 网络

2、根据overlaps 识别基因集cluster

3、使用文本挖掘表征cluster

可视化基因级统计数据(额外)

02

计算基因集overlaps

计算overlaps 的默认方法是使用 Jaccard 索引。overlap是基于基因集之间的基因overlap计算的。或者可以使用overlap系数(用于突出层次重叠)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(vissE)
#计算基因集overlap
gs_ovlap = computeMsigOverlap(geneset_gsc, thresh = 0.25)
#创建overlap网络 
gs_ovnet = computeMsigNetwork(gs_ovlap, msigdb_hs)
#网络可视化
set.seed(36) #set seed for reproducible layout
plotMsigNetwork(gs_ovnet)

结合基因集统计数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#模拟基因集统计
geneset_stats = rnorm(2500)
names(geneset_stats) = geneset_res
head(geneset_stats)

#绘制网络并覆盖基因集统计数据
set.seed(36) #set seed for reproducible layout
plotMsigNetwork(gs_ovnet, genesetStat = geneset_stats)

03

识别基因集cluster

相关基因集可能代表相关过程。下一步是识别基因组cluster,以便评估它们的生物学themes。建议使用 igraph::cluster_walktrap() 算法,因为它适用于密集图。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(igraph)
#鉴定clusters
grps = cluster_walktrap(gs_ovnet)
#提取聚类结果
grps = groups(grps)
#按cluster大小排序
grps = grps[order(sapply(grps, length), decreasing = TRUE)]
#对前12个cluster进行可视化
set.seed(36) #set seed for reproducible layout
plotMsigNetwork(gs_ovnet, markGroups = grps[1:6], genesetStat = geneset_stats)

04

表征基因集cluster

可以使用文本挖掘方法评估已识别的基因集簇的生物学相似性。对基因集名称或其简短描述进行频率分析,以评估cluster中重复出现的生物学themes。然后将这些结果呈现为词云。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#计算并绘制文本挖掘的结果
#用基因集名称
plotMsigWordcloud(msigdb_hs, grps[1:6], type = 'Name')
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#使用基因集简短描述 
plotMsigWordcloud(msigdb_hs, grps[1:6], type = 'Short')

05

可视化基因集cluster的基因水平统计数据

可视化每个基因集cluster的基因水平统计数据,以更好地了解对基因集有贡献的基因。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(ggplot2)

#模拟基因集统计
set.seed(36)
genes = unique(unlist(geneIds(geneset_gsc)))
gene_stats = rnorm(length(genes))
names(gene_stats) = genes
head(gene_stats)
#>       OCLN    SLC35B1    SLC35A1     SORBS1     ARPP19    SLC35D2 
#>  0.3117314  0.8498291  0.7055331  1.6999284 -1.3455710 -0.5698134
#可视化
plotGeneStats(gene_stats, msigdb_hs, grps[1:6]) +
  geom_hline(yintercept = 0, colour = 2, lty = 2)

06

整合结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(ggpubr)
#分别绘图
set.seed(36) 
p1 = plotMsigWordcloud(msigdb_hs, grps[1:6], type = 'Name')
p2 = plotMsigNetwork(gs_ovnet, markGroups = grps[1:6], genesetStat = geneset_stats)
p3 = plotGeneStats(gene_stats, msigdb_hs, grps[1:6]) +
  geom_hline(yintercept = 0, colour = 2, lty = 2)
#合并图片
ggarrange(p1, p2, p3, ncol = 3, common.legend = TRUE, legend = 'bottom')

小编总结

vissE包利用基因集与通路数据库和基因本体中可能存在的固有层次结构之间的相关性来聚类结果。对于 vissE 识别的每个基因集集群,通过文本挖掘来表征生物功能和过程。为我们提供了不同的基因集功能富集分析的思路,大家可以多多动手尝试!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作图丫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
line-height最详解(记住,文字是在行高中垂直居中的,顶部的内边距是边框到行高顶部的距离哈)
注意点: 行高和盒子高不是同一个概念 行高指的是每行内容的高度 盒子高指的是元素的高度
贵哥的编程之路
2020/11/03
1.5K0
line-height最详解(记住,文字是在行高中垂直居中的,顶部的内边距是边框到行高顶部的距离哈)
前端基础-CSS基础(七)
本文目录 盒子模型 参考 盒子模型 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>
efonfighting
2019/12/24
3420
前端基础-CSS基础(七)
css中还原字体与行高
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{ margin:0;padding:0 } p { b
贵哥的编程之路
2020/10/28
1.1K0
前端学习(12)~css学习(六):盒模型详解
但是,图片、表单元素一律看作是文本,它们并不是盒子。这个很好理解,比如说,一张图片里并不能放东西,它自己就是自己的内容。
Vincent-yuan
2020/03/19
8580
前端学习(6)~html回顾
html 的常见元素主要分为两类:head 区域的元素、body 区域的元素。下面来分别介绍。
Vincent-yuan
2020/02/23
4730
css中行高与字号
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{ margin:0;padding:0 } p {
贵哥的编程之路
2020/10/28
5280
期末前端web大作业——HTML+CSS+JavaScript仿京东购物商城网页制作(7页)
常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求都能满足你的需求。原始HTML+CSS+JS页面设计, web大学生网页设计作业源码,画面精明,排版整洁,内容丰富,主题鲜明,非常适合初学者学习使用。 --- <font
IT司马青衫
2022/08/19
1.5K0
期末前端web大作业——HTML+CSS+JavaScript仿京东购物商城网页制作(7页)
【CSS】处理兼容性问题 | CSS Hack | IE
(1)IE6双边距bug: 块属性标签添加了浮动float之后,若在浮动方向上也有margin值,则margin值会加倍。这种问题主要就是会把某些元素挤到了第二行。
前端修罗场
2023/10/07
3220
CSS常见兼容性问题总结
浏览器的兼容性问题,通常是因为不同的浏览器对同一段代码有不同的解析,造成页面显示不统一的情况。
书童小二
2018/09/03
1.2K0
CSS常见兼容性问题总结
谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节。 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS 属性,赶紧去补习一下吧。 不断更新,不断更新,不断更新,重要的事情说三遍。 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少 谈谈一些有趣的CSS题目
Sb_Coco
2018/05/28
5190
CSS的盒子模型
一个盒子中主要的属性就5个:width、height、padding、border、margin。 width是“宽度”的意思,CSS中width指的是内容的宽度,而不是盒子的宽度。 height是“高度”的意思,CSS中height指的是内容的高度,而不是盒子的高度 padding是“内边距”的意思 border是“边框” margin是“外边距”
Demo_Yang
2018/10/15
1.3K0
自动切换背景的登录页面
本文讲解如何美化登录页面,给登录页面加上一个不断随着时间自动切换的背景的功能,这样更好看。
GeekLiHua
2025/01/21
1730
自动切换背景的登录页面
清除浏览器CSS样式
/* YUI 3.18.1 (build f7e7bcb) Copyright 2014 Yahoo! Inc. All rights reserved. Licensed under the BSD License. http://yuilibrary.com/license/ */ html { color: #000; background: #FFF } body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fiel
喝茶去
2019/04/16
1.1K0
谈谈CSS中一些比较"偏门"的小知识 前面我写了:谈谈html中一些比较"偏门"的知识,现在这篇(主要)想谈谈个人所见的CSS一些小知识点,加深印象;同时也希望有需要的人能有收获!
前面我写了:谈谈html中一些比较"偏门"的知识,现在这篇(主要)想谈谈个人所见的CSS一些小知识点,加深印象;同时也希望有需要的人能有收获! 1.常见的浏览器内核: 以IE为代表:IE,MaxThon,TT,the World,360,搜狗浏览器等-----Trident内核[又称MSHTML] Firefox,Netscape 6及以上版本,seaMonkey等-----Gecko内核 Opera7及以上----- Opera内核原为:Presto,现为:Blink; Webkit内核:Safari,C
用户1149564
2018/01/11
1.5K0
CSS学习笔记(基础篇)
CSS 指层叠样式表 (Cascading Style Sheets)(级联样式表)
Daotin
2018/08/31
4.7K0
CSS学习笔记(基础篇)
css学习--css基础
学习慕课网笔记,课程:http://www.imooc.com/code/2024 1.css选择器 子选择器:parent>child 子选择器是指选择parent的范围内的第一个子元素。这里parent和child均是伪代码。可以是class用.classname,也可以是标签ul>li,也可以是id #pid>#cid 后代选择器:parent child 后代选择器是指:选择parent范围内的所欲child元素。与子选择器不同的是,这里包含嵌套内的child元素,而子选择器仅仅选中parent
Ryan-Miao
2018/03/13
2.4K0
css学习--css基础
从零开始学 Web 之 CSS(四)CSS初始化、定位、overflow、标签规范
CSS初始化是指重设浏览器的样式。不同的浏览器默认的样式可能不尽相同,所以开发时的第一件事可能就是如何把它们统一。如果没对CSS初始化往往会出现浏览器之间的页面差异。每次新开发网站或新网页时候通过初始化CSS样式的属性,为我们将用到的CSS或html标签更加方便准确,使得我们开发网页内容时更加方便简洁,同时减少CSS代码量,节约网页下载时间。
Daotin
2018/08/31
1.4K0
从零开始学 Web 之 CSS(四)CSS初始化、定位、overflow、标签规范
前端开发面试题总结之——CSS3
---- 相关知识点 布局、 浮动、 盒子模型、 弹性和模型、 选择器优先级、 居中定位、 兼容性、 hack写法...... 题目&答案 如何理解CSS的盒子模型? 每个HTML元素都是长方形盒子。 (1)盒子模型有两种:IE盒子模型、标准W3C盒子模型;IE的content部分包含了border和pading。 (2)标准W3C盒模型包含:内容(content)、填充(padding)、边界(margin)、边框(border)。 link和@import的区别? (1)link属于XHTML标签,
用户1667431
2018/04/18
1.1K0
前端开发面试题总结之——CSS3
面试官:对下面的 CSS 题目回答一遍
在标准模型中,如果你给盒设置 width 和 height,实际设置的是 content box。padding 和 border 再加上设置的宽高一起决定整个盒子的大小
公众号---人生代码
2021/04/22
1.3K0
【CSS】盒子模型案例 ( 盒子模型尺寸计算 | 盒子模型水平居中 | 盒子模型内外边距设置 | 背景图片及位置设置 | 盒子嵌套设置 )
将 效果图片拖动 到 Adobe Fireworks 中 , 使用 切片工具 分析盒子模型 :
韩曙亮
2023/03/30
1.6K0
【CSS】盒子模型案例 ( 盒子模型尺寸计算 | 盒子模型水平居中 | 盒子模型内外边距设置 | 背景图片及位置设置 | 盒子嵌套设置 )
推荐阅读
相关推荐
line-height最详解(记住,文字是在行高中垂直居中的,顶部的内边距是边框到行高顶部的距离哈)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档