|
| 1 | +--- |
| 2 | +layout: efflux |
| 3 | +title: 'Phylotrack: C++ and Python libraries for "in silico" phylogenetic tracking' |
| 4 | +date: 2023-08-10 |
| 5 | +permalink: "/pubs/:title" |
| 6 | +category: preprint |
| 7 | +download: https://github.com/openjournals/joss-papers/blob/joss.05754/joss.05754/10.21105.joss.05754.pdf |
| 8 | +doi: "10.21105/joss.04866" |
| 9 | +authors: |
| 10 | + - Emily Dolson |
| 11 | + - Santiago Rodriguez-Papa |
| 12 | + - Matthew Andres Moreno |
| 13 | +venue: Journal of Open Source Software |
| 14 | +projects: |
| 15 | + - hstrat |
| 16 | +abstract: | |
| 17 | + 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. |
| 18 | + Consequently, these populations undergo evolution, and can be used as virtual model systems for studying evolutionary dynamics. |
| 19 | + This experimental paradigm --- used across biological modeling, artificial life, and evolutionary computation --- complements research done using in vitro and in vivo systems by enabling the user to conduct experiments that would be impossible in the lab or field [@dolsonDigitalEvolutionEcology2021]. |
| 20 | + One key benefit is complete, exact observability. |
| 21 | + For example, it is possible to perfectly record the full set of parent-child relationships over the history of a population, yielding precise and accurate phylogenies (ancestry trees). |
| 22 | + This information reveals the sequences of events behind gain, loss, or maintenance of specific traits, and also facilitates making inferences about the underlying evolutionary dynamics of a given system. |
| 23 | +
|
| 24 | + The Phylotrack project provides libraries for tracking and analyzing phylogenies in in silico evolution. |
| 25 | + 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. |
| 26 | + 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. |
| 27 | + The underlying algorithm design prioritizes efficiency, allowing Phylotrack to support large agent populations with rapid generational turnover. |
| 28 | + The underlying C++ implementation ensures fast, memory-efficient performance, with multiple explicit features (e.g., phylogeny pruning and abstraction, etc.) for reducing the memory footprint of phylogenetic information. |
| 29 | +bibtex: |- |
| 30 | + in review |
| 31 | +citation: in review |
| 32 | +--- |
0 commit comments