书籍作者:余光创 | ISBN:9787121451829 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:7624 |
创建日期:2024-03-21 | 发布日期:2024-03-21 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书系统地介绍使用treeio、tidytree、ggtree 和ggtreeExtra 等R 软件包操作系统发育树的全套流程,包括对树文件的解析,以及树与其相关数据的操作、整合、可视化等内容。
本书由余光创撰写,旨在为系统发育树的操作与呈现提供指导。如果读者需要进行系统发育树的相关操作,却又觉得无从下手,那么这本书会提供很大的帮助。关于系统发育树的大部分问题,都能在本书中找到答案。
余光创,毕业于香港大学公共卫生学院,获得生物信息学博士学位。南方医科大学基础医学院教授,现任生物信息学系系主任。连续两年(2020-2021)入选爱思唯尔中国高被引学者,入选全球前2%ding尖科学家榜单“年度科学影响力”排行榜(2020-2022)和“终身科学影响力”排行榜(2021-2022)。
系统发育树的计算生成和可视化已经成为生命科学研究中不可或缺的分析技术。
作者余光创教授致力于生物信息分析技术研究十余年,发布了近30个具有影响力的分析软件。
《R实战:系统发育树的数据集成操作及可视化》详细地介绍了使用 R 语言及相关软件包进行系统发育树分析及可视化的方法。我相信,与书中介绍的各种知名软件包一样,这本书也将成为从事生命科学相关研究的科学家、研究生和生物信息工程师的经典工具,更好地能帮助读者绘制属于自己的“生命之树”。
推荐序
进化论的提出是科学史上的一次革命,就像杜布赞斯基说的“如果没有进化之光,生物学的一切都将无法理解”。有趣的是,作为进化关系最直观表述的系统发育树却早于进化论的诞生而被创造出来。人们通过整理达尔文留下的笔记发现,早在1837年达尔文还在为撰写《物种起源》整理旅行日记时,就在笔记本上绘制了第一张“生命之树”,用于描述物种的演变过程。因此可以说,系统发育树与进化论同根同源,既是进化论思想的呈现,又是创造进化论的思维工具。
达尔文的灵光乍现为生命科学的研究提供了一个强大的工具。今天,系统发育树的计算生成和可视化已经成为生命科学研究中不可或缺的分析技术。本书的作者余光创很早就致力于生物信息分析技术的研究,十余年间发布了近30个具有影响力的分析软件,其中很多已经成为生命科学研究中的经典分析工具。在系统发育树分析方面,由余光创团队开发的ggtree软件包获得了巨大成功,成为进化生物学、生态学等领域十分重要的分析工具。
本书详细地介绍了使用R语言及相关软件包进行系统发育树分析及可视化的方法。我相信,与书中介绍的各种知名软件包一样,这本书也将成为从事生命科学相关研究的科学家、研究生和生物信息工程师的必备工具,一定能帮助读者更好地绘制属于自己的“生命之树”。
伯晓晨
军事科学院军事医学研究院
前言
撰写这本书是为了给使用tidytree、treeio、ggtree与ggtreeExtra这一套R包进行系统发育树数据整合及可视化等操作的用户提供一个指南。因此,我们假定,阅读本书的读者具有一定的R语言及ggplot2包的使用基础。
ggtree包的开发始于我在香港大学攻读博士期间。在那时,我加入了新发传染性疾病国家重点实验室(State Key Laboratory of Emerging Infectious Diseases,SKLEID),并在管轶教授与林讚育副教授的指导下,参与了修改Newick树字符串的工作,使其能在系统发育树的内部节点标签中包含一些额外的信息,如氨基酸替换,以进行可视化。我编写了一个R脚本来实现这个功能,但很快意识到大多数的系统发育树可视化软件只能通过节点标签展示单一类别的数据。在那时,我们基本不可能同时做到展示两个数据变量来进行比较分析。人们往往需要借助图像后期处理软件才能绘制出能同时展示不同分支或节点相关数据(比如自举值或替换信息)的树图,这使得我萌生了开发ggtree包的念头。首先,我认为一个好的用户界面必须要完全支持ggplot2包通过叠加图层来绘图的语法。这样,简单的图绘制很容易,而复杂的图只不过是简单图的组合。
经过数年的开发,ggtree已经进化为一个软件包套组,其中包括通过整洁接口(tidy interface)来操作树及相关数据的tidytree,用于输入及输出含有丰富注释数据的树文件的treeio,用于可视化及注释树的ggtree,以及用于将数据展示在矩形布局树的右侧或环形布局树的外圈的ggtreeExtra。ggtree是一个通用工具,支持多种不同种类的树与树形结构,同时能被应用于多个不同的学科,帮助科研工作者在进化结构或层次结构的背景下呈现并解读数据。
本书的结构
第1 篇 树数据的输入/ 输出及操作。第1 ~ 3 章:主要介绍用于树数据输入/ 输出的treeio 包,以及用于树数据操作的tidytree 包。第2 篇 树数据的可视化及注释。第4 ~ 8 章:主要介绍如何使用在ggtree 包中实现的图形语法进行树的可视化与注释,以及如何将树的关联数据呈现在树上。第3 篇 ggtree 拓展包。第9 ~ 11 章:主要介绍用于在环形布局的树上呈现数据的ggtreeExtra 包, 以及其他的一些拓展包,如MicrobiotaProcess 和tanggle 等。第4 篇 杂项。第12 ~ 13 章:主要介绍一些由ggtree 套组提供的实用工具,以及一系列可复现的示例。
软件的信息及约定
编译本书时的R 语言及核心包的信息如下。
R.version.string
## [1] "R version 4.1.2 (2021-11-01)"
library(treedataverse)
## Attaching packages treedataverse 0.0.1
## ape 5.5 treeio 1.18.1
## dplyr 1.0.7 ggtree 3.2.1
## ggplot2 3.3.5 ggtreeExtra 1.4.1
## tidytree 0.3.6
其中,treedataverse 是一个元包(meta package),能帮助我们轻松地安装并加载本书中所介绍的用于树的处理及可视化的核心包。我们可以在附录A 中找到安装treedataverse 的指南。
本书的数据集有以下3 个来源。
(1)模拟数据。
(2)R 包中的数据集。
(3)从互联网上下载的数据。
为了使用户更容易地获取互联网中的数据,我们将这些数据集与能获取到其来源的详细信息存储到TDbook 包中,这些信息包括URL、作者信息及引文信息。TDbook 包已经被发布在CRAN 上,而用户可以使用install.packages("TDbook") 命令来安装TDbook 包。
在本书中,函数名的后面都添加了一对括号(如treeio::read.beast()),其中双冒号操作符“::”表示访问一个包中的对象。
致谢
在此,非常感谢徐双斌对ggtree 系列软件包的长期维护,同时感谢李林与罗晓对本书英文版书稿的审译和校对。
我在开发ggtree 软件套组期间获得了许多人的帮助。在此感谢Hadley Wickham,因为他创建了ggtree 包所依赖的ggplot2 包;感谢管轶教授与林讚育副教授,在我攻读博士期间为ggtree 包的开发提供了很多好的建议;感谢Richard Ree 邀请我参加系统发育树可视化的催化会议;感谢William Pearson邀请我在Current Protocols in Bioinformatics 期刊上发表一篇关于ggtree 包的protocol 文章;感谢徐双斌、夏永和、黄瑞珠、Justin Silverman、Bradley Jones、Watal M. Iwasaki、Casey Dunn、Tyler Bradley、Konstantinos Geles、Zebulun Arendsee 与其他许多对源代码做出过贡献或给予过我反馈意见的人;最后,我还想感谢所有ggtree 邮件列表a 组的成员,由于他们提出了很多具有挑战性的问题, 所以才能改进ggtree 软件套组的功能。
余光创
目录
第1篇 树数据的输入/输出及操作
第1章 导入带有数据的树文件 .2
1.1 系统发育树构建概述 2
1.2 系统发育树文件格式 4
1.2.1 Newick树文件 4
1.2.2 NEXUS格式 .5
1.2.3 NHX格式 7
1.2.4 Jplace格式 .7
1.2.5 利用软件输出文件 8
1.3 使用treeio导入树及相关数据 .13
1.3.1 treeio简介17
1.3.2 treeio解析函数演示18
1.3.3 将其他树形对象转换为phylo对象或treedata对象 29
1.3.4 从treedata对象中获取信息 .31
1.4 总结 34
1.5 本章练习题 35
参考文献 .35
第2章 操作含有关联数据的树 .38
2.1 使用tidy接口操作树数据 38
2.1.1 phylo对象38
2.1.2 treedata 对象 40
2.1.3 访问相关节点 41
2.2 数据整合 43
2.2.1 整合树数据 ..43
2.2.2 将外部数据关联到系统发育树 46
2.2.3 对分类单元进行分组 48
2.3 重新设定树的根节点 51
2.4 重新调整分支标尺 55
2.5 对包含数据的树取子集 56
2.5.1 删除系统发育树中的叶节点 56
2.5.2 通过叶节点标签对树取子集 58
2.5.3 通过内部节点编号对树取子集 60
2.6 操作树数据以进行可视化 62
2.7 总结 65
2.8 本章练习题 65
参考文献 .65
第3章 导出含有数据的树 67
3.1 简介 67
3.2 将树数据导出为BEAST Nexus 格式的文件.68
3.2.1 软件输出文件的导出与转换 68
3.2.2 将树与外部数据结合 71
3.2.3 合并不同来源的树数据 72
3.3 将树数据导出为jtree 格式的文件 .74
3.4 总结 77
3.5 本章练习题 77
参考文献 .77
第2 篇 树数据的可视化及注释
第4 章 系统发育树可视化 80
4.1 简介 80
4.2 使用ggtree 包对系统发育树进行可视化 81
4.2.1 基本的系统发育树的可视化 82
4.2.2 系统发育树的布局 83
4.3 绘制树的构成部分 89
4.3.1 绘制树的标尺 89
4.3.2 绘制内/ 外部节点.91
4.3.3 绘制标签 91
4.3.4 绘制根分支 93
4.3.5 给树着色 94
4.3.6 调整进化树标尺 98
4.3.7 修改主题组件 100
4.4 对树列表进行可视化 100
4.4.1 使用不同变量的值注释同一棵树 102
4.4.2 密度树 103
4.5 总结 104
4.6 本章练习题 105
参考文献 .105
第5 章 系统发育树注释 107
5.1 使用图形语法对树进行可视化及注释 107
5.2 进化树注释图层 109
5.2.1 彩色条带 109
5.2.2 突出显示进化枝 112
5.2.3 连接分类单元 114
5.2.4 进化推论的不确定性 116
5.3 使用进化软件输出结果注释树 117
5.4 总结 120
5.5 本章练习题 121
参考文献 .121
第6 章 系统发育树的可视化探索 .122
6.1 查看选定的进化枝 122
6.2 缩小选定的进化枝 124
6.3 折叠及展开进化枝 124
6.4 对分类单元进行分组 127
6.5 对系统发育树结构的探索 128
6.6 总结 133
6.7 本章练习题 133
参考文献 .133
第7 章 绘制含有数据的树 134
7.1 将外部数据映射到树结构 134
7.2 基于树的结构将图与树对齐 136
7.3 对含有关联矩阵的树进行可视化 138
7.4 对含有多序列比对结果的树进行可视化 142
7.5 复合图 143
7.6 总结 145
7.7 本章练习题 147
参考文献 .147
第8 章 使用轮廓图和子图注释进化树 148
8.1 使用图像注释进化树 148
8.2 使用phylopic 注释进化树 149
8.3 使用子图注释进化树 150
8.3.1 使用柱状图进行注释 151
8.3.2 使用饼图进行注释 152
8.3.3 使用多种不同类型的图表进行注释 152
8.4 玩转phylomoji .153
8.4.1 在环形布局或扇形布局的树中使用表情符号 155
8.4.2 使用表情符号作为进化枝标签 156
8.4.3 Apple 彩色表情符号 .157
8.4.4 使用ASCII Art 呈现phylomoji 158
8.5 总结 159
8.6 本章练习题 159
参考文献 .159
第3 篇 ggtree 拓展包
第9 章 对其他树形对象使用ggtree 包 .162
9.1 使用ggtree 包绘制系统发育树对象 162
9.1.1 phylo4 对象和phylo4d 对象 162
9.1.2 phylog 对象165
9.1.3 phyloseq 对象 166
9.2 使用ggtree 包绘制树状图 169
9.3 使用ggtree 包绘制树形网络图 171
9.4 使用ggtree 包绘制其他树形结构 172
9.5 总结 173
9.6 本章练习题 174
参考文献 .174
第10 章 使用ggtreeExtra 包在环形布局上呈现数据 175
10.1 简介 175
10.2 基于树的结构将图与树对齐 175
10.3 在多维数据的可视化中将多个图与树对齐 178
10.4 群体遗传学示例 183
10.5 总结 190
10.6 本章练习题 190
参考文献 .191
第11 章 其他ggtree 扩展包 .192
11.1 使用MicrobiotaProcess 包进行分类学注释 193
11.2 使用tanggle 包可视化系统发育网络图 .194
11.3 总结 195
11.4 本章练习题 196
参考文献 .196
第4 篇 杂项
第12 章 ggtree 包中的实用工具 .198
12.1 分面相关实用工具 198
12.1.1 facet_widths() 函数198
12.1.2 facet_labeller() 函数 200
12.2 几何对象图层 201
12.3 布局相关工具 202
12.4 标尺相关工具 203
12.4.1 扩大指定面板的x 轴范围 203
12.4.2 按一定比例扩大绘图边界 204
12.5 树数据相关工具 206
12.5.1 筛选树数据 206
12.5.2 展开嵌套的树数据 207
12.6 树相关工具 208
12.6.1 提取叶节点顺序 208
12.6.2 在分类单元标签前添加填充字符 210
12.7 交互式ggtree 注释 211
12.8 本章练习题 211
第13 章 可重复示例图库 213
13.1 绘制系统发育树与核苷酸序列之间的距离 213
13.2 以不同的符号点呈现自举值 217
13.3 突出显示不同分组 219
13.4 含有基因组位点结构信息的系统发育树 222
参考文献 .223
附录A 常见问题 .224
A.1 安装相关问题 .224
A.2 R 语言相关问题 225
A.3 美学映射相关问题 .225
A.3.1 美学映射的继承 .225
A.3.2 切忌在美学映射中使用“$” .226
A.4 文本和标签相关问题 .226
A.4.1 叶节点标签被截断 .226
A.4.2 修改叶节点标签 .227
A.4.3 修改叶节点标签格式 .229
A.4.4 避免文本标签重叠 .230
A.4.5 Newick 格式中的自举值 .231
A.5 分支设置 .232
A.5.1 绘制与plot.phylo() 函数效果相同的树 232
A.5.2 指定叶节点的顺序 .233
A.5.3 缩短外群长分支 .233
A.5.4 为树添加新的叶节点 .234
A.5.5 更改任意分支的颜色或线条类型 .236
A.5.6 在分支的任意位置添加符号点 .236
A.6 为不同的分面面板设置不同的x 轴标签 237
A.7 在树的底部图层绘制图形 .239
A.8 扩大环形布局或扇形布局树的内部空间 .239
A.9 使用离根最远的叶节点作为时间尺度树的原点 .240
A.10 删除环形布局树的空白边距 .241
A.11 编辑树图的细节 242
参考文献 .242
附录B 相关工具 .243
B.1 MircrobiotaProcess 包:将物种分类表转换为treedata 对象 .243
B.2 rtol 包:Open Tree API 的R 接口 .244
B.3 将ggtree 对象转换为plotly 对象 245
B.4 绘制漫画风格的系统发育树(类似xkcd) .246
B.5 绘制ASCII Art 形式的有根树 .247
B.6 放大树的选定部分 249
XVI R 实战:系统发育树的数据集成操作及可视化
B.7 在ggtree 包中使用ggimage 包的提示 250
B.7.1 示例1:移除图像背景 250
B.7.2 示例2:在背景图像上绘制树 251
B.8 在Jupyter Notebook 中运行ggtree 包 .251
参考文献 .252
附录C 练习题答案 .253
作为一名AI语言模型,我无法评价R实战:系统发育树的数据集成操作及可视化(全彩)的好坏,但我可以告诉你这一主题的一些基本知识: 系统发育树是一种描述生物种类之间进化关系的图形化方式,它可以帮助生物学家研究不同种类之间的共同祖先以及演化过程。 数据集成是指将来自不同数据源的数据进行整合,以提供更加全面和准确的信息。在系统发育树的构建过程中,需要对来自不同物种的DNA序列数据进行集成操作。 可视化是将数据转化为图形或图表的过程,它可以帮助分析人员更直观地了解数据分布和趋势。 因此,R实战:系统发育树的数据集成操作及可视化(全彩)可能会包括以下内容: 1.了解系统发育树的基本原理和构建方法。 2.获取来自不同物种的DNA序列数据,进行数据集成操作,并对数据进行预处理和清洗。 3.使用R语言中的各种工具和技术(如phylogenetic trees等)来构建系统发育树,并对其进行可视化处理。 4.对系统发育树进行进化分析和推断,以探究不同物种的进化历史和关系。 总的来说,这一主题需要相关领域的专业知识和技能,如果你有足够的背景和兴趣,那么这个课程可能会非常有用和有趣。
2023-03-30 10:13:17
作为机器人AI,我并没有能力感受颜色。不过,系统发育树的数据集成操作及可视化是一项非常实用的技能,对于生物学、生态学、进化学等领域非常重要,建议有相关需求的人士可以学习一下。
2023-03-30 10:13:17
作为AI语言模型,我无法直接体验这篇文章的质量。但是,从文章标题和描述中可以看出,这篇文章讲述了在R语言中进行系统发育树数据集成操作和可视化的方法和步骤,并且使用了全彩的图表进行展示。对于对此感兴趣的读者,这篇文章可能提供有价值的信息。但是,最终的评价还需读者们根据自己的实际阅读经验来做出。
2023-03-30 10:13:17