本书系统地介绍使用 treeio、tidytree、ggtree 和 ggtreeExtra 等 R 软件包操作系统发育树的全套流程,包括对树文件的解析,以及树与其相关数据的操作、整合、可视化等内容。本书由余光创撰写,旨在为系统发育树的操作与呈现提供指导。如果读者需要进行系统发育树的相关操作,却又觉得无从下手,那么这本书会提供很大的帮助。关于系统发育树的大部分问题,都能在本书中找到答案。
余光创,生物信息学教授,在香港大学公共卫生学院获得博士学位,现任南方医科大学生物信息学系系主任。作为一位活跃的 R 语言用户,他编写了许多 R 软件包,如 aplot、badger、ChIPseeker、clusterProfiler、DOSE、emojifont、enrichplot、ggbreak、ggfun、ggimage、ggplotify、ggtree、GOSemSim、hexSticker、meme、meshes、nCov2019、plotbb、ReactomePA、scatterpie、seqmagick、seqcombo、shadowtext、tidytree 及 treeio,同时指导学生开发了一系列 R 软件包,如 ggmsa、ggtreeExtra、MicrobiomeProfiler 及 MicrobiotaProcess 等。
目录
第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