Rank epistasis: A new model for analyzing epistaticinteractions in the absence of quantifiable fitness scores
This repository holds all data from our class project for CSE 845 during MSU's spring 2020 semester.
Authors:
- Acacia Ackles
- Austin Ferguson
- Connor Grady
This project examines a new, rank-based metric for measuring epistasis in a population. In short, the metric exists in four steps:
- Rank all organisms in population based on performance
- Mutate all organisms at a particular locus
- Rank all these mutatnts using the same methods from step 1
- Compute the edit distance between the two rankings.
For a thorough dive, we eoncourage you to read the class paper written on the topic here.
Below is information supplemental to the paper:
All additional plots are located in the subdirectories of the ./analysis/plots folder.
All final analyses are in the root level of the ./analysis/ directory. Older analyses are still drifiting around, mostly in ./analysis/old.
The only source code that varies from the main branch of MABE is the NKWorld, which is composed of two files located in ./World/NKWorld
Thanks to the modularity of MABE and the beaufty of GitHub, replicating the work in this project is simple.
First we clone the repository:
git clone https://github.com/alackles/cse845.git
cd cse845
Next we need to build MABE:
python pythonTools/mbuild.py
To run the program, we simply run MABE:
./mabe
However, we almost always want to run MABE with settings files, so we do that as follows (example settings files included in repo):
./mabe -f settings*
That's pretty much it!
If you desire to run a large batch of experiments (as we did in the paper), it's easiest to use mq.
Additional information on mq is given by the help file:
python pythonTools/mq.py -h
Standard mq uses a condition file to specify the runs that will be conducted.
Our condition file is included here, and you can see most of the treatments from the paper as commented-out condition lines.
To run mq with a condition file we run:
python pythonTools/mq.py -f {FILENAME}
Though to run this you need to either include the flag --runLocal
or --runHPCC
.
That's it!
If you do run a ton of data, several convenience scripts are included. Specifically, ./scrape.R, ./scrape_mutant.R, and ./combine.R which are written to scrape data off MSU's supercomputing cluster with minimal work. Then, the data can be passed through the data analyses in ./analysis/