Code Monkey home page Code Monkey logo

promutor_igem2022's Introduction

ProMutor

Code Coverage

ProMutor

Protein Mutant generator : a platform for generating advantageous point mutants based on explicit modelling of evolutionary history.

Description

ProMutor is a web-based tool that predicts the effect of suggested mutations based on explicit modelling of the evolutionary history of natural sequences. Given an input sequence, it either generates a complete landscape of protein mutations or predicts an epistatic effect of mutations of interest. It also incorporates mutant sequence generation step as well as provides direct access to ColabFold notebook for predicting protein structure.

Main steps of pipeline

Pipeline scheme

Depending on the selected mode, steps of the pipeline vary. However, both start with the generation of a multiple sequence alignment (MSA).

Screening mode:

  1. MSA generation.
  2. Mutation effect landsccape generation (using GEMME tool).

Mutant generation mode:

  1. MSA generation.
  2. Generation of all possible mutants containing desired mutation sites.
  3. Prediction of their effect on protein structure based on evolutionary conservation (GEMME).

As an additional suggested step to procceed with, we propose using AlphaFold 2 or mutant protein structure prediction. We provide direct access to its notebook version ColabFold.

Installation

There are several options of running promutor remotely either using ProMutor webpage (does not require any installation) or via downloading promutor.html web-form to submit request to the remote compute from a local device.

Installations required to run ProMutor locally

ProMutor is written in python. In addition, it utilises singularity for running hhblits.

To run ProMutor locally the following tools are needed:

  • python v3.9 or higher
  • singularity

To use ProMutor, you have to download the repository and pull required containers from the DockerHub as well as install required python packages:

git clone https://gitlab.igem.org/2022/software-tools/stockholm.git
cd stockholm
singularity pull docker://elodielaine/gemme:gemme
singularity pull docker://soedinglab/hh-suite:latest
pip3 install -r requirements.txt

Database Installation

For constructing an MSA, hhlits tool utilises protein sequence databases. Here, we provide commands to install Pfam-A database, however other databases could be easily installed by providing an appropriate link.

mkdir ./uniclust
cd uniclust/
wget  https://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/pfamA_35.0.tar.gz
tar xvfz pfamA_35.0.tar.gz

List of available databases

In addition, one can build its own database. Please check hh-suite user guide or more information.

Usage

Quick start

Running remotely using web-form

  1. Go to ProMutor webpage
  2. Fill in the form acccording to tutorials provided a. Screening mode b. Mutant Generation mode

Running remotely using local submition form

  1. Download promutor.html file
  2. Open file in any browser
  3. Fill in the form acccording to tutorials provided a. Screening mode b. Mutant Generation mode

Running locally

  1. Clone the repository
cd stockholm
  1. Run tool locally in Mutant generation mode:
python3 run_container.py protein example/P27352.fasta 1,2,3 Blosum62 True pfama
  1. Run tool locally in Screening mode:
python3 run_container.py protein example/P27352.fasta 0 Blosum62 True pfama

Command line arguments

A command to run ProMutor can be used as follows:

python3 run_container.py <type_inp> <fasta> <pos> <matrix> <preserve> <database> --mand <string> --num <string>
Arguments Description Valid value
type_inp string Type of input. nucleotide or protein
fasta string Input sequence. --
pos string Comma separated list of positions to be mutated. --
matrix string Substitution matrix to be used. Blosum45, Blosum50, Blosum62, Blosum80, Blosum90, Pam30, Pam90 or Pam250
preserve string Whether the closest (True) or the furthest (False) amino acid substituent is used. True or False
database string Database to be used for creating multiple sequence alignment (MSA). uniclust, pdb70, scop70, pfama
‑‑mand string Comma separated list of positions ALWAYS to be mutated. --
‑‑num string Maximal number of mutations per sequence. --

Example:

Example input fasta file is provided in example/ directory. This simple command will run ProMutor in the Mutant generation mode.

python3 run_container.py protein example/P27352.fasta 1,2,3 Blosum62 True pfama

Contributing

We are open to any contributions and collaborations. When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.

License

License

Authors and acknowledgment

Acknowledgment

We would like to express our greatest gratitude to our principal technical supervisor Frédéric Mauron who has been of the greatest help on the technical parts of the software creation. His availability, knowledge and faith in our project allowed us to bring it to life. More specifically, Mr Mauron guided us throughout the webform-server connection steps. Last but not least, we are remarkably thankful for the server he provided us with for free.

Authors

Raphaël Mauron & Mariia Minaeva, iGEM Stockholm Team 2022

promutor_igem2022's People

Contributors

marie-minaeva avatar rmauron avatar igemsoftwareadmin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.