在群体遗传学研究中,构建系统发育树是解析群体遗传结构和演化历史的核心手段。无论是单核苷酸多态性(SNP)分析、单倍型网络构建,还是群体分化研究,研究者常面临一个挑战:如何将复杂的群体遗传关系(如分支拓扑结构、节点支持率、遗传距离)以专业且直观的方式呈现?群体系统发育树凭借其"遗传关系可视化"的优势,成为群体遗传学论文中的关键图表,通过分支长度表示遗传差异、节点形状反映支持率,清晰展示个体或群体间的亲缘关系。然而,传统工具如R(ape, ggtree)、Python(DendroPy)或FigTree的绘图流程往往涉及繁琐的树文件处理、分支优化和注释调整,让研究者耗费大量时间在代码调试和图形美化上。
AI大模型的介入彻底改变了这一局面。只需提供您的群体遗传数据(如Newick/NEXUS格式的树文件),并用自然语言描述定制需求(如标注群体分组),AI即可自动生成"端到端"绘图脚本:从数据解析(处理缺失数据、优化分支布局)、美学调整(智能分支着色、自动标签避让),到添加专业元素(比例尺、图例、群体标记),最终生成可直接发表的高清矢量图——分支结构清晰,注释信息完整,配色符合领域审美标准,真正实现"专业绘图,一键生成"。
本文将带您体验如何通过AI协作,在短短5分钟内完成一幅专业的群体系统发育树,助您在群体遗传学研究中以极致的效率和专业度获得竞争优势!
需要绘制群体的系统发育树,为了让他更高效的出图,我们尽量描述的详细一点,这样能够减少我们后面修改的次数,更容易得到想要的结果,首先确认自己的路径和绘图需要的文件,需要2个文件,分别是
1. 树文件(NWK格式)
2. 样本分类文件
这里只截取了一小部分,类似的文件大家肯定见过,这里就不多赘述了
写完了的提示词如下,大家可以参考一下格式
读取两个文件
工作路径: /home/liuyf/pop-gwas/test
树文件: fasttree.nwk
样本分类文件: group.txt (行=样本,列=分类,只有2列,没有列名 )
绘图工具: ggtree
图形类型:进化树
颜色映射:分组的部分使用set3
绘图细节:先绘制进化树,再将分组信息添加到树的数据中,为每个分组添加背景颜色,添加样本名称标签
在deepseek输出上面写好的提示词,如果问题复杂可以打开deepthink
这样简单的就不需要了
给了详细的代码,我们来到rstudio运行一下结果如下:
基本符合要求了,有的地方不太好,比如颜色之间相互覆盖,然后样本名称之间存在重叠等
最终绘图代码
# 加载必要的包
library(ggtree)
library(ggplot2)
# 读取数据
tree <- read.tree("fasttree.nwk")
group_data <- read.table("group.txt", header = FALSE, col.names = c("sample", "group"))
# 创建圆形树(关键参数设置)
p <- ggtree(tree,
layout = "circular", # 必须的圆形布局
branch.length = "none", # 忽略分支长度
open.angle = 20) %<+% group_data + # 合并分组数据
# 枝条颜色映射分组
geom_tree(aes(color = group),
size = 1.2,
lineend = "round") +
# 颜色设置
scale_color_brewer(
palette = "Set3",
name = "Group",
na.value = "black"
) +
# 标签优化核心设置(不使用repel)
geom_tiplab(
aes(color = group, angle = angle), # 关键:继承圆形角度
size = 2.5,
offset = 1.8, # 控制标签与枝条末端的距离(关键参数)
hjust = 0.5, # 居中显示
show.legend = FALSE,
align = TRUE # 自动对齐角度
) +
# 布局控制
theme_void() +
theme(
legend.position = "bottom",
aspect.ratio = 1 # 保持圆形
)
# 显示图形
print(p)
# 保存(建议大尺寸画布)
ggsave("circular_tree_clean.png", p,
width = 10, height = 10, # 增大画布解决边缘拥挤
dpi = 600, bg = "white")
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!