打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R与进化树(前言)

今天是生信星球陪你的第61天


   你想找辆共享单车,发现满街都是别家车,没有一辆你能骑。

   你想学点生信,搜了“初学者教程”,满眼尽是高大上,没有一句能看懂。

   终于你跨越茫茫宇宙,来到生信星球,发现了初学者的新大陆!


今晚听了Y叔之前的学术分享视频R与ggtree,想和你分享

1. problems and issues

  • 进化领域中树这个文件结构是比较复杂的,构建树的过程就是把数据关联到文件格式中便于可视化的过程,这种关联格式主要有:

  • 标准格式之一 newick

  • 标准格式之二 nexus:软件间兼容性不好

  • 其他一些不兼容格式

  • 如果只是想推断一棵树,大多数只用mega。但是现在的研究会获得大量的数据(phenotypic data/ experimental data/ clinical data/ analysis data),而且是异质性的,比如采样时间、地点,表型的观察值,实验测量数据等都是可以拿来分析有没有进化上的一些关系,mega远远不够用!但是上面的数据关联格式又不友好~

  • 树的注释:

    Figtree,TreeDyn, iTOL etc 这些软件之间也是需要互相写脚本转换格式

  • restricted to pre-defined annotating utilities

  • focus on specific analyses and data types

  • non-overlapping features and hard to customise

2. R与ggtree

ggtree优势:

  • 他的设计就是针对不同来源的数据,拿来可以直接注释

  • 支持高水平图形语法进行树的注释:比如有一个分类数据,要根据这个对进化树上色,并且不同节点以不同形状变现出来。指定一个变量,ggtree就会做完所有的事情

  • 支持多个图层组合,可以画出很复杂的图

  • 可以提供用户的私人订制

  • 作为R包,能够保证可重复性,自动化,利于同行的交流

为什么要写代码作图,而不是简单的点点鼠标?

同样的数据,代码会赋予它更深的内涵

鼠标操作的都是套路化的东西,你会别人也会,就像公司做的图都很sexy,但是他们并不关系你的数据体现了什么价值。只有在自己通过不断完善代码的过程中,才会对自己的数据有更深的理解,才有可能挖掘更多的信息。
现在有许多一步出图,网站工具出图,很低的学习成本,做的图数量可能也不少,但是很多时候,自己都不知道这些图是怎么出来的,另外低学习成本的工具是不提供太多的拓展空间的。不知道你有没有这样的体会,在网站上做了一个图,很好看,基本符合预期,但是有一些线条形状/颜色或者图例位置需要改动,而网站上也没有这种设置,那么只好自己吭哧吭哧用PS、AI去编辑。心想:头脑中的图片很清楚,但为什么没有工具能帮我实现他的样子呢?于是,代码的价值就在这里

代码会带给自己一种能力,去探索自己的数据,就像在玩魔方,不同角度的观察就有不同的解答

可视化对于我们的作用:

  • 有了结果,需要展示给其他人

  • 还没有结果,甚至不知道从何下手,他可以帮你找到一些潜在的研究方向

为什么做生信分析必备R?

  • 开源免费

  • 很庞大的社区
    【Bionconductor 基本你能想到的组学上的东西,别人都能提供帮助】

  • 强大可视化功能

R的图形语法目前有两大类:

  • base:就像纸笔模型【不带橡皮擦】,直接出图做了不能撤销
    【打开R就加载】

  • grid 【包括 lattice + ggplot2】
    降低入门门槛;
    不直接出图,导出的是一个图形对象,可以继续编辑【相当于带了橡皮擦】
    画图是画在当前活动窗口

  • lattice:【安装R时装好,但需要自己加载】
    处理多维数据;
    使用grid修改细节,比ggplot2简单

  • ggplot2: 【需要自己安装并加载】
    使用图形语法,不用纠结太细枝末节的东西(比如那条线用什么颜色,它会帮你上色);
    作图更美观

    • 【图形都是点--线--面组合起来的】
      ggplot2最基本的元素:

      数据data + 几何对象geom(用于映射数据)+ 坐标(一般都是笛卡尔)
      geom又包括了:
      美学aesthetics:描述了可视化的特征(比如数据中对应点的位置、大小、颜色、形状)
      标尺scales:可视化的东西如何转为可以显示的值(比如取色范围、点映射范围),比如画气泡图就是把点的映射范围放大

    • ggplot2作图模版:

      ggplot()+
        geom_... ([data=data frame]
                  [aes(variable mappings)--关于映射设定]
                  [non-variable adjustments]--全局设定)

      下面就是数据和图片的对应关系:
      散点图关于LengthWidth的,根据Species上色
  复杂的图片就对应许多的图层layer,就像PS一样:
  【这张图看明白,就掌握了ggplot2的精髓,同时对以后使用ggtree也大有帮助】

归根结底:时刻记着做图的目的,是要呈现数据,而不是把图搞得多么漂亮。数据可视化的精髓在于探索数据~推荐学习ggplot2和grid


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
webinar录播:plotting tree data
R语言,让你的图动起来!
取子集画图
尬聊系列之二 --- 近期绘图的反思与小结
数据可视化技术:python数据可视化工具库汇总(共21个)
这里有8个流行的Python可视化工具包,你喜欢哪个?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服