Note: It is strongly recommended that the following steps be carried out on a virtual machine with freshly installed Ubuntu 14.04 LTS. Unfortunately, the software is not easily installable on newer versions of Ubuntu.
- Download emetnet_install_files.tar.gz from the following URL: https://github.com/rzgar/EMETNET/blob/master/emetnet_install_files.tar.gz
- Change directory to the one where the archive has been downloaded
- Open the archive using the following command: tar zxf emetnet_install_files.tar.gz
- Change directory to the opened archive as follows: cd emetnet_install_files/
- Run the installation script as follows: ./install_emetnet.sh
In the "emetnet_install_files/emetnet" folder you can find part of the C++ programs that are described in more detail in the following two publications.
- Hosseini SR, Barve A, Wagner A. Exhaustive Analysis of a Genotype Space Comprising 10 15 Central Carbon Metabolisms Reveals an Organization Conducive to Metabolic Innovation; 2015; PLOS Computational biology
- Hosseini SR, Martin OC, Wagner A. Phenotypic innovation through recombination in genome-scale metabolic networks; 2016; Proceedings of the Royal Society B.
Most of the functions in the ‘erandomwalk’ class that is used in these programs were previously written by Joao Rodriguez, a former PhD student in the lab of Andreas Wagner at the University of Zurich. The library ‘emetnet_install_files/eutils’ was also written by Joao Rodriguez. The research that resulted from this work was published in the following paper:
- Matias Rodrigues JF, Wagner A. Evolutionary plasticity and innovations in complex metabolic reaction networks. PLoS Comput Biol. 2009;5:e1000613.
The "ENVS" folder contains 50 .flx files, each of which defines a specific chemical environment with a unique carbon source.
In the "DATA" folder, you can find the following 3 files:
- universe-gcs.net A text file with 6588 lines, each representing a biochemical reaction known to exist in prokaryotic organisms.
- donor.dat This is an example of a donor genotype, which is exclusively viable on glucose. This file includes a binary vector of length 6588. Each entry of this vector corresponds to a reaction in the prokaryotic reaction universe. An entry equals one if the reaction exists in the donor genotype, and zero otherwise.
- recipient.dat Analogous to donor.dat, this file encodes a recipient genotype that is only viable on glucose. The files are used in the following two examples.
The folder "EXAMPLES” contains two fully commented C++ programs that can be executed as follows:
This program samples from a vast genotype space a pair of genotypes with the same phenotype and a given genotypic distance. The input files to the program are
- The prokaryotic universe of reactions "./DATA/universe-gcs.net"
- The initial donor genotype "./DATA/donor.dat"
- The initial recipient genotype "./DATA/recipient.dat"
- All environment files "./ENVS/*.flx"
- delta: is the desired genotypic distance between the sampled genotype pair.
The output of the program is a file with extension dat (e.g. "./donor_recipient.dat"), which includes the genotype vector of the sampled pair of donor-recipient genotypes with genotypic distance delta.
You can execute the code as follows:
sampling_phenotypedist_metropolis ./DATA/universe-gcs.net ./DATA/donor.dat ./DATA/recipient.dat ./donor_recipient.dat --delta 300 ./ENVS/*.flx
This program simulates recombination in metabolic networks. Starting from a pair of genotypes with a given genotypic distance (as created by the program described in example 1), this program creates a given number of recombinant genotypes by adding a given number of randomly selected reactions from the donor genotype to the recipient one, and deleting a given number of randomly selected genotypes from the recipient genotype.
The input files to the program are:
- The prokaryotic universe of reactions "./DATA/universe-gcs.net"
- The donor-recipient genotype pair "./DATA/donor_recipient.dat" as created by the program described in example1
- All environment files "./ENVS/.flx"
- num1: number of reactions present in the recipient (or donor) genotype
- num2: number of reactions that is present in the donor genotype, but absent in the recipient genotype (corresponding to half of the genotypic distance between donor and recipient).
- num3: number of reactions that are transferred from the donor genotype to the recipient one.
The program produces the following output files:
- a file with extension dat (e.g. "./recombinants.dat", which includes the information about how many recombinants lost viablity on one or more carbon sources, and how many gained viability on new carbons sources
- a file with extension dat_phen (e.g. ./recombinants.dat_phen), which includes the phenotype of each recombinant genotype.
You can execute the code as follows:
recombination_genomescale_phen_dist ./DATA/universe-gcs.net ./DATA/donor_recipient.dat --outnet ./recombinants.dat --num1 2079 --num2 150 --num3 5 --iter 100 ./ENVS/*.flx