渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?

这篇具有很好参考价值的文章主要介绍了渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、引言

生命科学中的数据分析和可视化是一个具有挑战性的领域。随着技术和理论的不断发展,研究人员需要处理越来越复杂和庞大的数据集,以研究生物体在不同尺度上的结构和功能,探索不同生物过程和疾病的机制。在这个领域,GO(Gene Ontology)富集分析已成为一种常见的技术,用于识别在给定的基因集合中与特定生物过程和机制有关的基因集合,是研究生物信息学、基因组学和转录组学的重要方法之一[1,2]。然而,GO富集分析的结果往往是一张庞大的表格,需要通过可视化才能更好地理解和分析。在这方面,R语言作为一个强大的数据分析工具,也是生命科学研究领域中广泛使用的计算统计工具之一[3,4]。因此,本文将介绍GO富集分析技术并重点介绍R语言及其绘图包,如ggplot2和clusterProfiler等,用于可视化GO富集分析结果[5,6,7]。本文还将提供一些使用R和GO富集可视化的基本方法和技巧,并以实例说明如何从生物大数据中捕捉关键信号。最后,我们将讨论GO富集可视化在生物信息学中的未来发展和可能的研究方向。

二、数据集

2.1 数据集导入

该数据集是GOplot自带的数据集,可以用来学习Go富集分析和可视化,接下来我们引入数据集

library(GOplot)
data(EC)

数据集展示:

# 查看数据
> head(EC$eset)
    Gene_Symbol     Brain_A     Brain_B    Brain_C     Heart_A     Heart_B     Heart_C
1 0610007P14Rik  0.58382130  0.81117820 -0.2480545 -0.67075443 -0.58700850 -0.65176487
2 0610008F07Rik  0.13262606  0.11230135  0.3122339  0.10193062 -0.06617737  0.09765196
3 0610009B22Rik -0.09357643 -0.20074654  0.2505083 -1.02136140 -0.18762684 -0.69150734
4 0610009D07Rik  0.06708336  0.12616920 -0.1234570 -0.74400520 -0.42762280 -0.43724203
5 0610009O20Rik  0.02191877  0.13460398  0.2718530  0.27460957 -0.07751560  0.00000000
6 0610010F05Rik -0.10588837 -0.05568028  0.0115509  0.06084633 -0.18752098  0.01155090

# 查看数据
> head(EC$genelist)
       ID    logFC   AveExpr        t  P.Value adj.P.Val        B
1 Slco1a4 6.645388 1.2168670 88.65515 1.32e-18  2.73e-14 29.02715
2 Slc19a3 6.281525 1.1600468 69.95094 2.41e-17  2.49e-13 27.62917
3     Ddc 4.483338 0.8365231 65.57836 5.31e-17  3.65e-13 27.18476
4 Slco1c1 6.469384 1.3558865 59.87613 1.62e-16  8.34e-13 26.51242
5  Sema3c 5.515630 2.3252117 58.53141 2.14e-16  8.81e-13 26.33626
6 Slc38a3 4.761755 0.9218670 54.11559 5.58e-16  1.76e-12 25.70308

# 查看数据
> head(EC$david)
  Category         ID                             Term
1       BP GO:0007507                heart development
2       BP GO:0001944          vasculature development
3       BP GO:0001568         blood vessel development
4       BP GO:0048729             tissue morphogenesis
5       BP GO:0048514       blood vessel morphogenesis
6       BP GO:0051336 regulation of hydrolase activity
                                             Genes
1       DLC1, NRP2, NRP1, EDN1, PDLIM3, GJA1, TTN, GJA5, ZIC3, TGFB2, CERKL, GATA6, COL4A3BP, GAB1, SEMA3C, MKL2, SLC22A5, MB, PTPRJ, RXRA, VANGL2, MYH6, TNNT2, HHEX, MURC, MIB1, FOXC2, FOXC1, ADAM19, MYL2, TCAP, EGLN1, SOX9, ITGB1, CHD7, HEXIM1, PKD2, NFATC4, PCSK5, ACTC1, TGFBR2, NF1, HSPG2, SMAD3, TBX1, TNNI3, CSRP3, FOXP1, KCNJ8, PLN, TSC2, ATP6V0A1, TGFBR3, HDAC9
2 GNA13, ACVRL1, NRP1, PGF, IL18, LEPR, EDN1, GJA1, FOXO1, GJA5, TGFB2, WARS, CERKL, APOE, CXCR4, ANG, SEMA3C, NOS2, MKL2, FGF2, RAPGEF1, PTPRJ, RECK, EFNB2, VASH1, PNPLA6, THY1, MIB1, NUS1, FOXC2, FOXC1, CAV1, CDH2, MEIS1, WT1, CDH5, PTK2, FBXW8, CHD7, PLCD1, PLXND1, FIGF, PPAP2B, MAP2K1, TBX4, TGFBR2, NF1, TBX1, TNNI3, LAMA4, MEOX2, ECSCR, HBEGF, AMOT, TGFBR3, HDAC7
3        GNA13, ACVRL1, NRP1, PGF, IL18, LEPR, EDN1, GJA1, FOXO1, GJA5, TGFB2, WARS, CERKL, APOE, CXCR4, ANG, SEMA3C, NOS2, MKL2, FGF2, RAPGEF1, PTPRJ, RECK, VASH1, PNPLA6, THY1, MIB1, NUS1, FOXC2, FOXC1, CAV1, CDH2, MEIS1, WT1, CDH5, PTK2, FBXW8, CHD7, PLCD1, PLXND1, FIGF, PPAP2B, MAP2K1, TBX4, TGFBR2, NF1, TBX1, TNNI3, LAMA4, MEOX2, ECSCR, HBEGF, AMOT, TGFBR3, HDAC7
4                                   DLC1, ENAH, NRP1, PGF, ZIC2, TGFB2, CD44, ILK, SEMA3C, RET, AR, RXRA, VANGL2, LEF1, TNNT2, HHEX, MIB1, NCOA3, FOXC2, FOXC1, TGFB1I1, WNT5A, COBL, BBS4, FGFR3, TNC, BMPR2, CTNND1, EGLN1, NR3C1, SOX9, TCF7L1, IGF1R, FOXQ1, MACF1, HOXA5, BCL2, PLXND1, CAR2, ACTC1, TBX4, SMAD3, FZD3, SHANK3, FZD6, HOXB4, FREM2, TSC2, ZIC5, TGFBR3, APAF1
5                                                                                            GNA13, CAV1, ACVRL1, NRP1, PGF, IL18, LEPR, EDN1, GJA1, CDH2, MEIS1, WT1, TGFB2, WARS, PTK2, CERKL, APOE, CXCR4, ANG, SEMA3C, PLCD1, NOS2, MKL2, PLXND1, FIGF, FGF2, PTPRJ, TGFBR2, TBX4, NF1, TBX1, TNNI3, PNPLA6, VASH1, THY1, NUS1, MEOX2, ECSCR, AMOT, HBEGF, FOXC2, FOXC1, HDAC7
6                                                                               CAV1, XIAP, AGFG1, ADORA2A, TNNC1, TBC1D9, LEPR, ABHD5, EDN1, ASAP2, ASAP3, SMAP1, TBC1D12, ANG, TBC1D14, MTCH1, TBC1D13, TBC1D4, TBC1D30, DHCR24, HIP1, VAV3, NOS1, NF1, MYH6, RICTOR, TBC1D22A, THY1, PLCE1, RNF7, NDEL1, CHML, IFT57, ACAP2, TSC2, ERN1, APAF1, ARAP3, ARAP2, ARAP1, HTR2A, F2R
     adj_pval
1 0.000002170
2 0.000010400
3 0.000007620
4 0.000119000
5 0.000720000
6 0.001171166

# 查看数据
> head(EC$genes)
     ID      logFC
1  PTK2 -0.6527904
2 GNA13  0.3711599
3  LEPR  2.6539788
4  APOE  0.8698346
5 CXCR4 -2.5647537
6  RECK  3.6926860

# 查看数据
> EC$process
[1"heart development"        "phosphorylation"          "vasculature development"  "blood vessel development" "tissue morphogenesis"     "cell adhesion"           
[7"plasma membrane"

2.2 数据预处理

使用cirlce_dat函数整合GO注释结果数据和基因差异表达分析数据结合起来,形成作图对象。

circ <- circle_dat(EC$david, EC$genelist)
head(circ)

结果展示:

  category         ID              term count  genes      logFC adj_pval     zscore
1       BP GO:0007507 heart development    54   DLC1 -0.9707875 2.17e-06 -0.8164966
2       BP GO:0007507 heart development    54   NRP2 -1.5153173 2.17e-06 -0.8164966
3       BP GO:0007507 heart development    54   NRP1 -1.1412315 2.17e-06 -0.8164966
4       BP GO:0007507 heart development    54   EDN1  1.3813006 2.17e-06 -0.8164966
5       BP GO:0007507 heart development    54 PDLIM3 -0.8876939 2.17e-06 -0.8164966
6       BP GO:0007507 heart development    54   GJA1 -0.8179480 2.17e-06 -0.8164966

「字段简单介绍」

  1. category:GO term分为3大类,分别为BP(生物学过程),CC(细胞组分)和MF(分子功能)
  2. ID和term来属于数据库的字段;
  3. count为划分到相应term的基因数目;
  4. logFC为差异表达基因的log标准化的倍数变化; adj_pval为校正过的p-value值,adj_pval < 0.05显著富集;

三、数据可视化

3.1 柱形图

  • 所有种类
GOBar(circ, display = 'multiple', zsc.col = c('blue''white''red')) 
渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?

是不是觉得有写不清晰,看不出x坐标的标注。没关系,我们可以选择性展示其中感兴趣的部分。

  • 展示特定种类
GOBar(subset(circ, category == 'MF'))

渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号? 这样就很清晰了!

3.2 气泡图

GOBubble(circ, labels = 2.8)

渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号? labels是一个很重要的参数,表示标记adj_pval负对数大于等于设置值的GO term,气泡的大小表明富集到该GO term的基因数目。我设置成了2.8,可读性还是可以的,但是交叉的气泡很多,我们可以通过reduce_overlap函数过滤一部分数据,减少泡泡的数目,如下:

reduced_circ <- reduce_overlap(circ, overlap = 0.70)
GOBubble(reduced_circ, labels = 2.8)

渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号? 视觉效果是不是比之前是要好一些!如果还是比较拥挤,我们可以分组绘图,如下:

GOBubble(circ, title = 'Bubble plot', display = 'multiple', labels = 3)  
渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?

3.3 环形图

GOCircle(circ)
渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?

3.4 弦图

数据整理:

chord <- chord_dat(circ, EC$genes, EC$process)
head(chord)

结果展示:

> head(chord)
      heart development phosphorylation vasculature development blood vessel development tissue morphogenesis cell adhesion plasma membrane      logFC
PTK2                  0               1                       1                        1                    0             0               1 -0.6527904
GNA13                 0               0                       1                        1                    0             0               1  0.3711599
LEPR                  0               0                       1                        1                    0             0               1  2.6539788
APOE                  0               0                       1                        1                    0             0               1  0.8698346
CXCR4                 0               0                       1                        1                    0             0               1 -2.5647537
RECK                  0               0                       1                        1                    0             0               1  3.6926860

画图:

GOChord(chord, space = 0.02, gene.order = 'logFC', gene.space = 0.25, gene.size = 5)

渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号? 弦图展示了感兴趣的基因和某些GO term的关系,以基因差异表达倍数的大小排序。

3.5 热图

GOHeat(chord, nlfc = 1, fill.col = c('red''blue''green'))
渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?

3.6 聚类图

GOCluster(circ, EC$process, clust.by = 'logFC', term.width = 2)
渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?

3.7 韦恩图

l1 <- subset(circ, term == 'heart development', c(genes,logFC))
l2 <- subset(circ, term == 'plasma membrane', c(genes,logFC))
l3 <- subset(circ, term == 'tissue morphogenesis', c(genes,logFC))
GOVenn(l1,l2,l3, label = c('heart development''plasma membrane''tissue morphogenesis'))
渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?

四、总结

本文介绍了如何使用R和GO富集可视化技术,分析生物信息学中数据集的复杂性问题。通过R语言和相应的包,如ggplot2,g:Profiler,moduleColor等,可以对生成的结果进行高效而准确的可视化,以帮助研究人员更好地理解和分析复杂数据集。文章还提供了一些使用R和GO富集可视化技术的基本方法和技巧,并以实例说明如何从生物大数据中捕捉关键信号。最后,我们探讨了GO富集可视化的未来趋势和展望,旨在为生命科学研究者提供更好的技术支持,以研究更有意义、有价值的数据。R语言在数据分析和可视化领域的应用将有望为大规模数据集的处理和分析,提供更有效、更快捷、更精确的解决方法。

参考文献:

[1] Ashburner M, Ball C A, Blake J A, et al. Gene ontology: tool for the unification of biology. Nature genetics, 2000, 25(1): 25-29.

[2] Kanehisa M, Goto S. KEGG: kyoto encyclopedia of genes and genomes. Nucleic acids research, 2000, 28(1): 27-30.

[3] Gentleman R C, Carey V J, Bates D M, et al. Bioconductor: open software development for computational biology and bioinformatics. Genome biology, 2004, 5(10): R80.

[4] R Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria (2017). Available online at https://www.R-project.org/.

[5] Yu G, Wang L G, Han Y, et al. clusterProfiler: an R package for comparing biological themes among gene clusters. OMICS: A Journal of Integrative Biology, 2012, 16(5): 284-287.

[6] Wickham H. ggplot2: Elegant Graphics for Data Analysis. New York: Springer, 2016.

[7] Kolde R, Laur S, Adler P, et al. Robust rank aggregation for gene list integration and meta-analysis. Bioinformatics, 2012, 28(4): 573-580.文章来源地址https://www.toymoban.com/news/detail-497235.html

到了这里,关于渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IO/NIO交互模拟及渐进式实现

    2024年02月03日
    浏览(44)
  • 渐进式编程之旅:探寻PHP函数的奇妙世界

    目录 前言 一、函数的定义和调用 1.1 初识函数 1.1.1 函数分类 1.1.2 自定义函数 1.1.3 return 1.2 参数设置 1.2.1 无参函数 1.2.2 按值传递参数 1.2.3 引用传参 1.2.4 设置参数默认值 1.2.5 指定参数类型(弱) 1.3 变量的作用域 1.3.1 变量分类 1.3.2 全局变量的使用 1.3.3 global关键

    2024年02月08日
    浏览(49)
  • 【GitOps系列】如何实施自动化渐进式交付?

    前言 在实施金丝雀发布的过程中,我们通过 Argo Rollout 的金丝雀策略将发布过程分成了 3 个阶段,每个阶段金丝雀的流量比例都不同,经过一段时间之后,金丝雀环境变成了新的生产环境。实际上,这也是一种渐进式的交付方式,它通过延长发布时间来保护生产环境,降低了

    2024年02月14日
    浏览(36)
  • 渐进式web全栈:blazor web app

    本文要说的这种开发模式,这种模式并不是只有blazor支持,js中有一样的方案next.js nuxt.js;blazor还有很多其它内容,本文近关注渐进式开发模式。 是的,前后端是主流,不过以下情况也许前后端分离并不是最好的选择: 小公司,人员不多,利润不高,创业阶段能省则省 个人

    2024年02月05日
    浏览(39)
  • Unity教程||Unity 渐进式光照贴图烘焙详解

    随着各大计算平台的算力稳步增长,特别是GPU技术的不断进化,原先可望而不可及的技术比如实时光线追踪技术开始逐步走入玩家的视野。一些先锋厂商甚至已经超出Demo的范畴,开始正式推出支持实时光追的游戏。 不过目前的实时光追技术还只能在配备了最新Nvidia RTX 20系列

    2024年02月08日
    浏览(37)
  • Vue.js:构建用户界面的渐进式框架

    Vue.js是一种流行的JavaScript前端框架,用于构建用户界面。本文将介绍Vue.js的基本概念、特点、应用场景以及与其他框架的对比。 一、引言 在当今的前端开发领域,Vue.js已经成为了一个备受瞩目的框架。它的简洁、灵活和易于上手的特性使得开发人员能够快速高效地构建用户

    2024年01月23日
    浏览(42)
  • 2023-06-17:说一说redis中渐进式rehash?

    2023-06-17:说一说redis中渐进式rehash? 答案2023-06-17: 在Redis中,如果哈希表的数组一直保持不变,就会增加哈希冲突的可能性,从而降低检索效率。为了解决这个问题,Redis会对数组进行扩容,通常是将数组大小扩大为原来的两倍。然而,这个扩容过程会引起元素在哈希桶中的

    2024年02月09日
    浏览(32)
  • redis到底是怎么样进行渐进式Rehash的

    Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。那么redis的底层是如何来存储数据的呢? 一、redis如何在存储大量的key时候,查询速度还能接近O(1)呢? 查询速度接近O(1)的数据结构通常让我们想到的就是HashMap结构,那下面

    2024年02月09日
    浏览(26)
  • Redis(三)存储原理与数据模型(hash冲突、渐进式rehash)

    Redis(一)原理及基本命令(柔性数组) Redis(二)网络协议和异步方式(乐观锁悲观锁) Redis(三)存储原理与数据模型(hash冲突、渐进式rehash) Redis跳表 Redis是key-value的结构,其中value包含:字典,双向链表,压缩列表,跳表,整数数组,动态字符串。 其中redis中各valu

    2024年02月16日
    浏览(35)
  • Redis4 渐进式遍历/自定义客户端/持久化

    1.keys *一次性把所有的key都获取到.但是存在一个问题,一旦数据过多,redis就会被阻塞住,就无暇顾及其他的命令,这样的影响很大. 2.那么就出现了渐进式遍历,可以做到既能获取所有的key,又不会阻塞服务器.渐进式不是一个命令把所有的key获取到,而是没执行一次命令只获取其中的

    2024年02月06日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包