R语言 plantlist 0.6.5 + ape 包:14个物种系统发育树构建与性状数据整合实战
R语言 plantlist 0.6.5 ape 包14个物种系统发育树构建与性状数据整合实战在生态学和进化生物学研究中系统发育树Phylogenetic Tree是理解物种间进化关系的重要工具。传统构建系统发育树需要基因序列数据但对于许多研究场景特别是植物学研究我们往往只需要基于分类学关系构建一个合理的系统发育框架。本文将详细介绍如何利用R语言中的plantlist、ape和phylosignal等包实现从物种名录到系统发育树构建再到性状数据整合可视化的完整流程。1. 环境准备与数据获取1.1 安装必要的R包在开始之前确保已安装以下R包。如果尚未安装可以使用以下命令安装install.packages(c(plantlist, ape, phylosignal, phylobase, readxl, dplyr))这些包的主要功能如下plantlist用于植物学名查询和验证ape系统发育树分析和可视化phylosignal系统发育信号分析phylobase系统发育数据整合readxl读取Excel文件dplyr数据整理和操作1.2 准备物种名录数据假设我们需要为以下14个植物物种构建系统发育树species_list - c( Chimonanthus praecox, Michelia figo, Cycas revoluta, Ginkgo biloba, Litsea rotundifolia, Bombax ceiba, Delonix regia, Ficus microcarpa, Mangifera indica, Dimocarpus longan, Triadica sebifera, Liquidambar formosana, Alstonia scholaris, Camphora officinarum )提示实际研究中物种名录通常存储在Excel或CSV文件中。可以使用readxl::read_excel()或read.csv()导入。2. 物种分类学信息查询2.1 使用plantlist包验证学名plantlist包的TPL()函数可以验证植物学名并获取分类学信息library(plantlist) taxa_check - TPL(species_list)查看前几行结果head(taxa_check)输出将包含每个物种的科、属、种信息以及APG III分类系统中的科编号等。2.2 转换分类学格式为了后续构建系统发育树我们需要将查询结果转换为科/属/种格式taxa_table - taxa.table(taxa_check) print(taxa_table)输出示例[1] Calycanthaceae/Chimonanthus/Chimonanthus_praecox [2] Magnoliaceae/Michelia/Michelia_figo [3] Cycadaceae/Cycas/Cycas_revoluta ...3. 系统发育树构建3.1 使用Phylomatic生成Newick格式树虽然可以直接在R中完成所有步骤但使用Phylomatic工具可以获得更准确的系统发育关系。以下是完整流程将分类学信息保存为文本文件writeLines(taxa_table, taxa_list.txt)使用Phylomatic的在线服务或本地awk版本生成Newick格式树文件保存为tree.newick3.2 在R中读取和可视化系统发育树使用ape包读取和绘制系统发育树library(ape) phy_tree - read.tree(tree.newick) # 或直接使用字符串 plot(phy_tree, cex 0.8)基础绘图效果可能不够理想我们可以进行美化plot(phy_tree, type fan, edge.width 2, tip.color blue, cex 0.8, main 14种植物系统发育树)4. 性状数据整合与可视化4.1 准备性状数据假设我们有以下性状数据通常来自实验测量或文献speciesbiomassleaf_sizegrowth_rateChimonanthus praecox12.515.20.45Michelia figo8.712.10.38............将数据导入R并整理library(dplyr) trait_data - read.csv(trait_data.csv) %% mutate(species gsub( , _, species)) %% group_by(species) %% summarise(across(everything(), mean, na.rm TRUE)) %% column_to_rownames(species)4.2 性状数据与系统发育树整合使用phylobase包将性状数据映射到系统发育树上library(phylobase) library(phylosignal) p4d - phylo4d(phy_tree, trait_data)可视化整合结果barplot.phylo4d(p4d, tree.type phylo, tree.ladderize TRUE, trait.bg.col lightblue, scale FALSE)4.3 系统发育信号分析phylosignal包可以量化性状的系统发育信号phylo_signal - phyloSignal(p4d) print(phylo_signal)结果将显示每个性状的Blombergs K和Pagels λ等指标帮助我们理解性状在系统发育树上的分布模式。5. 高级分析与可视化技巧5.1 系统发育主成分分析Phylogenetic PCAlibrary(phytools) phylo_pca - phyl.pca(phy_tree, trait_data) biplot(phylo_pca)5.2 性状演化模型拟合比较不同演化模型对性状数据的拟合优度models - c(BM, OU, EB) aic_scores - sapply(models, function(m) { fitContinuous(phy_tree, trait_data$biomass, model m)$opt$aic })5.3 使用ggtree增强可视化library(ggtree) library(ggplot2) ggtree(phy_tree) %% trait_data geom_tiplab(aes(color biomass), size 3) scale_color_gradient(low blue, high red) theme_tree2()6. 完整可复现代码示例以下是一个端到端的可执行脚本整合了上述所有步骤# 加载所需包 library(plantlist) library(ape) library(phylobase) library(phylosignal) library(dplyr) library(ggtree) # 1. 物种名录 species - c(Chimonanthus praecox, Michelia figo, Cycas revoluta, Ginkgo biloba, Litsea rotundifolia, Bombax ceiba, Delonix regia, Ficus microcarpa, Mangifera indica, Dimocarpus longan, Triadica sebifera, Liquidambar formosana, Alstonia scholaris, Camphora officinarum) # 2. 验证学名并获取分类信息 taxa_check - TPL(species) taxa_table - taxa.table(taxa_check) # 3. 构建系统发育树 writeLines(taxa_table, taxa_list.txt) # 此处需运行Phylomatic生成tree.newick phy_tree - read.tree(tree.newick) # 4. 性状数据整合 trait_data - data.frame( species gsub( , _, species), biomass runif(14, 5, 15), leaf_size runif(14, 10, 20) ) %% column_to_rownames(species) # 5. 可视化 p4d - phylo4d(phy_tree, trait_data) barplot.phylo4d(p4d) # 6. 系统发育信号分析 phyloSignal(p4d) # 7. ggtree高级可视化 ggtree(phy_tree) %% as.data.frame(trait_data) geom_tiplab(aes(color biomass), size 3, offset 0.1) geom_tippoint(aes(size leaf_size), shape 16) scale_color_gradient(low blue, high red) theme_tree2()在实际项目中这套流程已经帮助我快速分析了多个植物功能性状的系统发育模式。特别是在处理50-100个物种的中等规模数据集时这种方法既保证了科学性又大大节省了时间。

相关新闻

Qt 6.5 信号槽 5 种连接方式深度解析:Direct/Queued/Auto 实战场景与性能对比

Qt 6.5 信号槽 5 种连接方式深度解析:Direct/Queued/Auto 实战场景与性能对比

Qt 6.5 信号槽 5 种连接方式深度解析:Direct/Queued/Auto 实战场景与性能对比 在Qt框架中,信号槽机制是其最核心的特性之一,它为对象间的通信提供了一种灵活且类型安全的方式。而信号槽的连接方式,尤其是connect函数的第五个参数—…

2026/7/10 2:44:14 阅读更多 →
三菱ST语言 vs 梯形图:3类复杂逻辑场景下的代码量与调试效率对比

三菱ST语言 vs 梯形图:3类复杂逻辑场景下的代码量与调试效率对比

三菱ST语言与梯形图深度对比:复杂逻辑场景下的实战效率分析 在工业自动化领域,编程效率直接影响项目周期和后期维护成本。三菱PLC作为市场主流控制器,支持梯形图(Ladder Diagram)和ST(Structured Text&…

2026/7/10 2:42:14 阅读更多 →
基于Springboot+Vue租房管理系统的设计与实现设计与实现【源码+文档】

基于Springboot+Vue租房管理系统的设计与实现设计与实现【源码+文档】

系统介绍基于SpringbootVue租房管理系统有管理员,租客,屋主三个角色。管理员功能有个人中心,租客管理,屋主管理,房源信息管理,订单信息管理,屋主申诉管理,通知公告管理,留…

2026/7/10 2:42:14 阅读更多 →

最新新闻

PROJ 9.3 库集成指南:C++项目实现WGS84/UTM等10+种坐标转换

PROJ 9.3 库集成指南:C++项目实现WGS84/UTM等10+种坐标转换

PROJ 9.3 库集成指南:C项目实现WGS84/UTM等10种坐标转换地理信息系统开发中,坐标转换是绕不开的核心技术环节。当我们需要将GPS设备采集的WGS84经纬度坐标转换为平面地图使用的UTM坐标时,或者在不同国家坐标系间进行数据交换时,一…

2026/7/10 3:32:33 阅读更多 →
数字电路竞争冒险:5个真实案例解析与卡诺图冗余项设计

数字电路竞争冒险:5个真实案例解析与卡诺图冗余项设计

数字电路竞争冒险:5个真实案例解析与卡诺图冗余项设计在数字电路设计中,工程师们常常会遇到一个令人头疼的问题——竞争冒险现象。这种现象就像电路中的"幽灵",会在你最意想不到的时刻突然出现,导致系统出现难以解释的异…

2026/7/10 3:30:31 阅读更多 →
2025年AI编程工具深度对比:Cursor、Copilot、Claude Code、Trae实战评测

2025年AI编程工具深度对比:Cursor、Copilot、Claude Code、Trae实战评测

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 随着AI编程工具的快速发展,2025年的开发者面临着前所未有的选择难题。Cursor、GitHub Copilot、Claude Code和Trae这四款主…

2026/7/10 3:30:31 阅读更多 →
面向AI眼镜的会议重点与行动助手技术文档

面向AI眼镜的会议重点与行动助手技术文档

1.项目简介 本项目是一个面向AI眼镜的会议重点记录与行动整理智能体,主要用于客户拜访、线下会议、需求调研和现场办公等场景。用户进入智能体后,可以直接说会议内容,系统会在后台整理有效要点;会议过程中可以说“标记重点”突出最…

2026/7/10 3:28:31 阅读更多 →
2026 出差拜访客户带回培训视频,西瓜视频总结帮我梳理核心要点

2026 出差拜访客户带回培训视频,西瓜视频总结帮我梳理核心要点

先回答用户真正关心的问题 针对“出差带回客户培训视频,用西瓜视频总结梳理核心要点是否可行,有没有更好的工具选择”这个问题,直接给答案:如果你的培训视频本身是西瓜平台上的公开内容,用自带的西瓜视频总结完全够用…

2026/7/10 3:26:29 阅读更多 →
CICFlowMeter Python版 v0.5.0 实战:单命令提取80+维流量特征

CICFlowMeter Python版 v0.5.0 实战:单命令提取80+维流量特征

CICFlowMeter Python版 v0.5.0 实战:单命令提取80维流量特征在网络安全和数据分析领域,流量特征提取是一项基础而关键的工作。传统基于Java的CICFlowMeter虽然功能强大,但其复杂的Java/Gradle环境配置让许多Python技术栈的用户望而却步。本文…

2026/7/10 3:24:28 阅读更多 →

日新闻

STM32与LTC1864高精度ADC的SPI通信实现

STM32与LTC1864高精度ADC的SPI通信实现

1. 项目背景与核心需求在工业控制和嵌入式系统开发中,模拟信号与数字系统的无缝集成一直是工程师面临的关键挑战。LTC1864作为一款16位高精度ADC转换器,配合STM32F101ZG这类主流微控制器,能够构建高性能的模拟信号采集系统。这种组合特别适合…

2026/7/10 0:03:07 阅读更多 →
猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页视频无法下载而烦恼吗&am…

2026/7/10 0:05:09 阅读更多 →
直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

1. 直流有刷电机驱动方案概述在工业自动化和消费电子领域,直流有刷电机因其结构简单、控制方便、成本低廉等优势,仍然是许多应用场景的首选驱动方案。TC78H653FTG作为东芝推出的新一代H桥驱动器,与MKV46F256VLH16微控制器配合使用&#xff0c…

2026/7/10 0:05:09 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/9 21:41:05 阅读更多 →

月新闻