phievo_sizecontrol
PhiEvo evolution algorithm modified to account for a biochemical kinetics in a time varying volume.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Repository
PhiEvo evolution algorithm modified to account for a biochemical kinetics in a time varying volume.
Basic Info
- Host: GitHub
- Owner: FelixPG
- License: lgpl-3.0
- Language: Jupyter Notebook
- Default Branch: main
- Size: 5.49 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
PhiEvo_SizeControl
PhiEvo evolution algorithm modified to account for a biochemical kinetics in a time varying volume.
Install φ-evo
φ-evo relies on python>=3.5, pip, and c.
The software has been successfully tested on the three main operating systems(windows,mac OSX, and GNU-linux) but we recommend using a GNU-linux distribution(ubuntu) as it has been tested more thoroughly and more regularly on this platform.
install Anaconda
The _phievo package depends on python>=3.5. If python is not already installed on your computer, we recommend to install it by using the anaconda distribution.
Among other things, anaconda provides the standard package manager of python pip. Before anything, it is good to check that you are working with the most recent version of pip:
bash
pip install --upgrade pip
Note: When multiple versions of python are installed on the same computer, you may need to specify the version of python or pip you are using: python (pip) for python2 and python3 (pip3) for python3. Make sure that the which pip and which python return the right pip (and python) installation path. For simplicity we will use pip in the following instructions.
Note: If you install packages for all the users of your computer, you need to have admidistrator rights and use sudo before the pip command. It can happens that your global and your local pip are not the same. To make sure the administrator uses the right pip, run sudo which pip. The installation instructions assume you do not need to add sudo before pip.
install the package
With pip installed, the installation is straight forward, run:
bash
pip install https://github.com/phievo/phievo/blob/master/dist/phievo-1.1.zip?raw=true
Install gcc on windows
Windows does not come with the gcc compiler installed but the free software foundation provides a minimal distribution of the gnu softwares for windows, it is called MinGW.
Once you have downloaded mingw-get-setup.exe, run it. A selection panel will open. We recommend you to install at least the two following packages(the others are not relevant for φ-evo):
- mingw-developper-toolkit
- mingw32-base
Choose the default directory.
After the installation is finished, update windows PATH so that it knows where to look for the gcc command. Open a the command prompt and run:
bash
setx PATH "%path%;C:\MinGW\bin"
Note: gcc is distributed by other packages such as code blocks or visual basics. In such case, you do not need to install MinGw. Just upload you PATH so that windows knows where is the gcc compiler.
Install gcc on mac osx
OSX does not have the gcc compiler installed by default either. There are different ways to install it. The fastest is probably via homebrew:
bash
brew install gcc
If gcc is not already installed on you system (via macports or Xcode), homebrew\'s gcc should be automatically in the system's PATH.
Install pygraphviz
pygraphviz is not included in the default dependencies of phievo because it does not exist natively on windows and we wanted to publish a version that that runs on all the systems. pygraphviz is used only to display network layouts. If it is not installed, phievo will print a warning and use networkx spring layout instead.
On max OSX, you have to use homebrew to install graphvix first :
bash
brew install graphviz pkg-config
pip install pygraphviz
On GNU/linux, installing the dependencies varies depanding on the distribution. We tested the following on debian and ubuntu
bash
sudo apt-get install graphviz graphviz-dev pkg-config
sudo pip install pygraphviz
On other distributions, you want to find the equivalent of graphviz, graphviz-dev, and pkg-config.
We found that sometimes on ubuntu the C linking to the graphviz library does not work properly. The fix is to be more explicit on the linking for the pip command:
bash
sudo pip install pygraphviz --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/lib/graphviz/"
run_evolution.py script
An extra script (run_evolution.py) needs to be downloaded with the phievo package to start an evolution. It is stored in the root of the phievo repository.
You can either manually download it or open a python terminal and run ```python
import phievo phievo.download_tools() ```
The former utility also downloads a jupyter notebook that can be used to analyse the results of a simulation in current directory.
Analyze notebook
We provide a jupyter notebook at the root of the github repository to help with the analysis of the runs. If you wand to run it, you will need to install several extra python libraries, to help with this, they are writen in extra.txt.
bash
pip install -r https://raw.githubusercontent.com/phievo/phievo/master/extra.txt
Similarly to the (run_evolution.py) script, Analyze Run.ipynb is downloaded when you call the phievo.download_tools() function.
The jupyter kernel is started with the following command
bash
jupyter notebook
Usually it autmotically opens a new windows in your terminal in which you need to select AnalyzeRun.ipynb. If the windows does not open, it can be open manually by copy-pasting the url printed in your shell after you ran the command in a wer browser.
When using the plotly package, you may find that the plots do dot display well in the notebook (white square), the solution to this problem is to increase the io rate allocated to the notebook by using the NotebookApp.iopub_data_rate_limit option when starting jupyter:
bash
jupyter notebook --NotebookApp.iopub_data_rate_limit=10000000000
Test your installation
To test that everything works properly, we recommend that you run an example simulation. Several examples of simulations are stored in the github repository Examples directory. You can download all the simulations by cloning the repository with git:
bash
git clone https://github.com/phievo/phievo.git
This will also download phievo's code.
To download a single example there is a built-in tool that can be run in a python shell:
```python
import phievo
Downloads run_evolution.py and AnalyzeRun.ipynb in the current directory
phievo.download_tools()
Downloads an example project directory
phievo.download_example("adaptation") ```
The function download_example allows to download one of the following examples:
- adaptation
- somite
- hox
- hox_pareto
- lac_operon
- immune
- seed_adaptation
- seedadaptationpruning
- seed_somite
- seedsomitepruning
- seed_lacOperon
- seedlacOperonpruning
- seedhoxpareto_light
The examples starting with "seed_" keyword also contain the results of the simulations. The results can directly be visualized in the Analyze notebook.
After downloading an example project directory and the run_evolution.py script you are all set to start an evolution.
bash
|-- run_evolution.py
|-- AnalyzeRun.ipynb
`-- example_adaptation/
|-- initialization.py
|-- fitness.c
|-- init_history.py
`-- input.c
To launch the evolution, simply run
bash
python run_evolution.py -m example_adaptation
Specifically for the size control project, you can run
bash
python run_evolution.py -m sizecontrol
which contains modified versions of the main, utilities, integrator, initialization and init_history files to account for a time-varying cell volume.
Note: You can add the -c option (./run_evolution.py -cm example_adaptation) to delete a Seed that was created by a former run and prevents a new run to start. Be careful, a deleted seed cannot be recovered.
If everything works correctly you should see the evolution starting. When an evolution is running it displays regularly updates of its current state in the terminal and a STOP.txt file is created at the root of the project. The purpose of the STOP file is to have a quick method to check on the current state of a run when it is launched as a background task. When the STOP file is deleted, the run stops.
Create a new project
To start a new project, the best is to use an existing example as a template and to modify the relevant parameters.
Similarly to the Analyze notebook, we also propose the ProjectCreator.ipynb notebook to help with the creation of a new project.
```bash jupyter notebook ProjectCreator.ipynb
```
Owner
- Login: FelixPG
- Kind: user
- Repositories: 1
- Profile: https://github.com/FelixPG
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: PhiEvo - Size Control
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Felix
family-names: Proulx-Giraldeau
email: felix.proulx-giraldeau@mail.mcgill.ca
affiliation: McGill University
- given-names: 'Paul '
family-names: François
email: paul.francois2@mcgill.ca
affiliation: McGill University