This project serves as a template for building web-based bioinformatics tools. It provides essential functionalities common to our web servers, such as user input, job submission, and results provision. The template is built on Flask and integrates with Slivka for running bioinformatics tools. This project aims to be a starting point that can be extended and customized for various bioinformatics applications.
- User Interface: A simple interface for file or text-based submissions.
- Job Submission: Integration with the Slivka backend for job management.
- Session Management: Keeps track of user sessions for job tracking and results provisioning.
- Extensibility: Designed to be easily extendable for custom functionalities.
This project follows a standard Flask application structure and plus the following key components:
-
config.py
: Contains all the configuration variables that the app needs. This includes settings like where to find the database and other services. -
submission.py
: Responsible for handling job submissions and processing. It integrates with the Slivka backend for running bioinformatics tools. -
session_db.py
: Manages the database interactions required for session management. -
scripts/
: Contains scripts for maintaining the service in production.
- Python 3.11
- Flask
- Slivka
- Other dependencies are listed in
requirements.txt
Configurations like session storage and logging can be adjusted in config.py
. Environment variables can also be used to override these settings. Refer to the file for more details.
-
Clone this repository:
git clone https://github.com/your-username/SM_dundee-resource-templates.git
-
Navigate to the project directory:
cd SM_dundee-resource-templates
-
Create a virtual environment:
python3 -m venv .venv
-
Activate the virtual environment:
source .venv/bin/activate
-
Install the requirements:
pip install -r requirements.txt
-
Start the Flask app:
python app.py
-
Open your web browser and navigate to
http://localhost:5000
. -
Follow the interface to submit your bioinformatics job.
To add custom functionalities:
- Extend the classes provided in
submission.py
. - Add your processing logic.
- Update the forms and templates as needed.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
-
Geoff Barton, Jim Procter, Mateusz Warowny, James Abbott, Ben Soares and Javier Sanchez Utges for their contributions to this project and the Dundee Resource.
-
This project was developed as part of the BBSRC funded Dundee Resource for Protein Structure Prediction and Sequence Analysis (grant number 208391/Z/17/Z).