This repository contains the code for simulating the growth of a Biofilm after attachment using Molecular dynamics simulation methods. The project was build as part of the iGEM 2020 Contest. The numerical model and simulation were implemented by Team Hannover. Functionalities to make the software tool more accessible were added in collaboration with the Team TU Darmstadt. The BiofilmSimulation software can be installed a a python package, documented under https://pypi.org/project/BiofilmSimulation.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
- About the Project
- Getting Started
- Usage
- Roadmap
- Contributing
- License
- Contact
- iGEM Competition
- Acknowledgements
The project aims to simulate the growth of a biofilm in early stages. An biofilm is an consortium of bacteria embedded in a extracelluar matrix consisting of EPS (extracellular polymeric substances). Origin of such biofilms is the attachment of initial bacteria to a surface.
As part of the iGEM Competition 2020, the Hannover Team designed a sensor based on biological cell, which is capable of detecting the adhernce of a biofilm to at an early stage. The sensor can be attached to implant surfaces and used as a diagnostical tool. Therefore, we are interested in the growth behaviour of biofilms in an early stage. We use computational methods of Molecular Dynamics simulation and a biophysical approach to model the biofilm growth. Furthermore the BiofilmSimulation module provides functions for visualization of the data generated in the simulation.
This is an example of how you may set up your project locally. To get a local copy up and running follow these simple example steps.
We recommend installing anaconda on your machine. Anaconda provides many functionalities including an easy way to set up python enviroments. Check out the Anaconda installation instructions.
You will need a few python packages to run the simulation on your local machine. You can eithercreate a conda enviroment from the
conda_env.yml
file or download the packages on your own via pip.
We provide step-by-step instructions on how to get our software running using a conda enviroment.
- Clone the repo
git clone https://github.com/igemsoftwareadmin/Hannover.git
- Navigate in the root folder (the folder which contains the
setup.py
) and run
conda env create -f env/iGEM-biofilm-model.yml
- Start the enviroment by running
conda activate iGEM-biofilm-model
- Install our software tool as a python package in your conda enviroment with pip (package installer for Python). The package is listed at https://pypi.org/project/BiofilmSimulation and can be installed by running
pip install BiofilmSimulation
Another option is to run
pip install .
in the root folder. This will run the setup.py file and also adds our BiofilmSimulation module to your enviroment. In both cases, if the installation was succesfull the anaconda prompt will print
Successfully built BiofilmSimulation
Installing collected packages: BiofilmSimulation
Successfully installed BiofilmSimulation-1.0.0
To be able to save the 2D animation of the simulation, you also need the ffmpeg - Writer
. Install it in your enviromnet with:
conda install -c conda-forge ffmpeg
You can also directly start a simulation by running the example_usage.py
script.
Activate the iGEM-biofilm-model
enviroment as described above and navigate to the root folder.
Type
python example/example_usage.py
This will start a dialog in the console in which you can specify the bacteria strain, the number of initial bacteria and the simulation duration.
Another usage example is provided in form of a jupyter notebook. Make sure to check it out to see the functionalities provided. If you are using anaconda, jupyter will already be installed. To start the example jupyter notebook run
jupyter-notebook
Then connect to
http://localhost:8888/
and navigate to the folder, in which you cloned the repository. Start the notebook by clicking on the example.ipynb
file.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
-
David Theidel - theidel AT stud dot uni-hannover dot de
-
Project Link: https://github.com/igemsoftwareadmin/Hannover
-
To find out more abour the awesome iGEM Comeptition check our https://2020.igem.org/
-
More about the project of the Hannover Team can be found here: https://2020.igem.org/Team:Hannover
-
Details on the used methods: https://2020.igem.org/Team:Hannover/Model / https://2020.igem.org/Team:Hannover/Software