VirtualMicrobes can be installed on a LINUX machine (tested on Ubuntu 16.04), and also functions fully on Ubuntu for Windows. We highly recommend installing it using a virtual python environment, which ensures all dependencies (and their version) do not conflict and break your current python projects 😉


Before you begin, make sure you have 1) python2.7, 2) numpy and 3) virtualenv installed, and 3) libgsl-dev installed

To install libgsl-dev, run:
sudo apt-get install libgsl-dev

From top to bottom: clone the code from bitbucket, make a virtual environment, activate it, and use pip to install virtualmicrobes in developer mode (-e), run it

#STEP 1) First some dependencies. 
# The following three packages are 100% necessary. 
sudo apt install virtualenv 
sudo apt install python2 
sudo apt-get install graphviz
# I'm not 100% sure you need any of these 
sudo apt-get install python-dev
sudo apt-get install python-setuptools

#STEP 2) Setup virtual environment
#Check where python2.7 is installed with "which":
which python2.7 # Depending on your OS, this returns somthing like /urs/bin/python2.7

# Then, install an virtual env based on the old python like so:
virtualenv -p /usr/bin/python2.7 mypy --system-site-packages
source ~/mypy/bin/activate                                        # (or wherever else you stored your virtual env in the previous step)

#STEP 3) Clone the latest developer branch and install:
# Clone latest DEVELOP branch of virtual microbes, and pip install BASED ON THIS CLONE (this is where the cython issues you had came in, don't use the normal pip install, use -e!)
git clone -b develop
pip install -e virtual-microbes/                                  # This will install other dependencies automatically... at least for me ;)

#Step 4) Test run: evo --name MyFirstMicrobes

Trouble shooting

Trouble shooting:
Q: When I type it says ‘file not found’
Did pip install VirtualMicrobe run without errors? Does ‘which’ give a path to your virtual environment? Did you activate
your local environment (mypy in the above examples)
Q: I tried to use an option, but it says it doesn’t recognize it
General options ( –help) go BEFORE the keyword evo, while other options go AFTER evo. If you use keyword options (such as mutation-rates) makes sure to include a dummy argument (-) before evo so it knows no more mutation-rates follow: –mutation-rates point_mutation=0.8 tandem_dup=0.8 stretch_del=0.8 stretch_invert=0.8 stretch_translocate=0.8 – evo
–name Rediculous_Mutation_Rates