In silico evolution instantiates the processes of heredity, variation, and differential reproductive success (the three "ingredients" for evolution by natural selection) within digital populations of computational agents. Consequently, these populations undergo evolution, and can be used as virtual model systems for studying evolutionary dynamics. This experimental paradigm -- used across biological modeling, artificial life, and evolutionary computation -- complements research done using in vitro and in vivo systems by enabling experiments that would be impossible in the lab or field. One key benefit is complete, exact observability. For example, it is possible to perfectly record all parent-child relationships across simulation history, yielding complete phylogenies (ancestry trees). This information reveals when traits were gained or lost, and also facilitates inference of underlying evolutionary dynamics. The Phylotrack project provides libraries for tracking and analyzing phylogenies in in silico evolution. The project is composed of 1) Phylotracklib: a header-only C++ library, developed under the umbrella of the Empirical project, and 2) Phylotrackpy: a Python wrapper around Phylotracklib, created with Pybind11. Both components supply a public-facing API to attach phylogenetic tracking to digital evolution systems, as well as a stand-alone interface for measuring a variety of popular phylogenetic topology metrics. Underlying design and C++ implementation prioritizes efficiency, allowing for fast generational turnover for agent populations numbering in the tens of thousands. Several explicit features (e.g., phylogeny pruning and abstraction, etc.) are provided for reducing the memory footprint of phylogenetic information.
翻译:计算进化通过在数字化的计算智能体群体中实例化遗传、变异和差异繁殖成功率(自然选择进化所需的三个“要素”)的过程,使这些群体经历进化,从而可作为研究进化动力学的虚拟模型系统。这一实验范式——广泛应用于生物建模、人工生命和进化计算领域——通过实现实验室或野外无法完成的实验,补充了体外和体内系统的研究。其关键优势在于具备完全、精确的可观测性。例如,可以完整记录模拟历史中所有的亲代-子代关系,从而获得完整的系统发育树(祖先谱系)。这些信息揭示了性状获得或丢失的时机,并有助于推断潜在的进化动力学。Phylotrack项目提供了用于追踪和分析计算进化中系统发育树的软件库。该项目包含:1) Phylotracklib:基于Empirical项目开发的头文件式C++库;2) Phylotrackpy:通过Pybind11构建的Phylotracklib的Python封装。两个组件均提供面向公众的API,可将系统发育追踪功能集成到数字进化系统中,同时提供独立接口用于测量多种常用的系统发育拓扑指标。底层设计和C++实现优先考虑效率,可支持数万规模智能体群体的快速世代更替。项目还提供若干显式功能(如系统发育树剪枝与抽象等)以降低系统发育信息的内存占用。