https://github.com/stevenjson/alife2018-lineage
Code and analysis for the paper "Quantifying the tape of life: Ancestry-based metrics provide insights and intuition about evolutionary dynamics"
https://github.com/stevenjson/alife2018-lineage
Last synced: 5 months ago
JSON representation
Code and analysis for the paper "Quantifying the tape of life: Ancestry-based metrics provide insights and intuition about evolutionary dynamics"
- Host: GitHub
- URL: https://github.com/stevenjson/alife2018-lineage
- Owner: stevenjson
- License: mit
- Created: 2018-04-11T20:11:19.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-05-29T15:33:47.000Z (about 8 years ago)
- Last Synced: 2025-06-12T01:38:06.073Z (about 1 year ago)
- Language: HTML
- Homepage:
- Size: 9.26 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Quantifying the tape of life: Ancestry-based metrics provide insights and intuition about evolutionary dynamics
This repo contains all of the code used to generate the paper (including running the experiments, doing data analysis, and
LaTeX code for the paper).
Supplementary material for this paper (in the form of a file that shows the code and graphs for all analysis, including the analysis that didn't fit in the paper) is available [here](https://stevenjson.github.io/ALife2018-Lineage/analysis/data_analysis.html).
Virtual reality/WebGL data visualizations of the fitness landscapes can be found [here](https://stevenjson.github.io/ALife2018-Lineage/analysis/fitness_landscape_visualizations/).
[](https://zenodo.org/badge/latestdoi/129148471)

### Dependencies:
For re-running experiments:
- [Empirical](https://github.com/emilydolson/Empirical): A library of tools for writing scientific software in C++
- Technically the [CEC Niching Competition Benchmark Function Library](https://github.com/mikeagn/CEC2013), but that code
is included in this repository for convenience.
For data analysis:
- Python 2.x for everything involving the benchmark functions
- Python 3.x for any other scripts.
- [R](https://www.r-project.org/) and [ggplot2](http://ggplot2.org/) for the stats
### Re-running the experiment:
```
cd experiment
make
./optimization_problems
```
Configuration options can be specified on the command line or via a configs.cfg file.
### Contents:
- **paper.tex**: LaTeX code for paper (submitted to ALife 2018).
- **LICENSE**: The MIT license, under which all of our code is available (note: this repository also contains code from the
[CEC benchmark functions repository](https://github.com/mikeagn/CEC2013), which is under the FreeBSD license)
- **paper**: Directory containing bibliography and style files for paper.tex (note that paper.tex has to be at the top level
of this repo to appease overleaf)
- **figs**: Directory containing all figures used in the paper.
- **experiment**: Directory containing all code that was used to run the experiment.
- *Makefile*: Contains rules to build the experiment executable.
- *OptimizationProblemExp.h*: This is where most of the code specific to this experiment lives.
- *optimization-config.h*: Defines configuration settings for these experiments.
- *optimization_problems.cc*: Contains all code specific to running this experiment on the command line
(as opposed to in a web browser)
- *scripts*: Contains scripts used for wrangling jobs on our High-Performance Computing Cluster.
- *CEC2013*: Contains the C++ implementation of the CEC benchmark functions. From [here](https://github.com/mikeagn/CEC2013).
- **configs**: Directory contained information about how our experiments were configured.
- *configs.cfg*: Base configuration file listing default settings. Spcific settings were changed for each condition
via command line flags.
- *generated_run_list files*: These files list all of the precise conditions that we ran, complete with command-line flags.
The run_list format is designed to be submitted to a PBS scheduling system using [dist_qsub](https://github.com/emilydolson/dist_qsub).
- **analysis**: Directory containing all code used to analyze the data
- *data_analysis.Rmd*: R-markdwon file containing all of the stats and plotting code
- *data_analysis.html*: html file generated by knitting the R-markdown file (contains embedded graphs)
- *real_value_data.csv*: The complete data-set generated while experiments were run.
- *all_dom_data.csv*: Post-hoc stats calculated about the dominant lineage from each replicate.
- *fitness_landscape_visualization*: Code to make the WebVR fitness landscape data visualization (this is a submodule,
linked to [this repository](https://github.com/emilydolson/fitness_landscape_visualizations)). Note that extracted path data all lives in this repo.
- *cec_python_library*: Contains code that depends on the CEC benchmark function Python implementation:
- cec2013: the Python implementation of the CEC benchmark functions. From [here](https://github.com/mikeagn/CEC2013).
- data: Precalculated data that the code in cec2013 relies on. From [here](https://github.com/mikeagn/CEC2013).
- LICENSE.txt: License for the CEC benchmark function implementations.
- analyze_landscapes.py: A python script to the generate the heat maps and upper and lower bounds data used by the
webvr visualization.
- extract_dominant_lineage_info.py: A script to extract data about the dominant lineage from each condition (phenotypic volatility and the full path) post hoc.
Note about git history: This paper was split off from a larger project. To simplify reproducing the data described here,
we have created this new repository. The full git history for all of these files can be found in the [original repo](https://github.com/stevenjson/ALife2018-LineageOthello);