Giter VIP home page Giter VIP logo

patchman's Introduction

PatchMAN protocol for blind peptide-protein docking






Description

PatchMAN (Patch-Motif AligNments) maps the receptor surface for local structural motif matches in structures of protein monomers and interfaces, to extract complementary fragments and derive templates for peptide-protein docking.

The protocol consists of 4 consecutive steps: (1) Definition of surface patches on the receptor; (2) Identification of structural motif matches in protein structures, and an interacting fragment that can be used as template for the bound peptide; (3) Generation of the peptide-protein complex template structure, by superimposing the interacting peptide back onto the receptor, and (4) Replacing side chains according to the peptide sequence (threading), refinement and scoring of the model.

What's new in v2.0?

  • BSA filter added to improve efficiency
  • nstruct is calculated automatically
  • Added scripts to ease installation

Installation

Downloading software and data

  1. Register for MASTER v1.6 and obtain download URL.
  2. Create a .env file to contain login information: cp sample.env .env
  3. Edit download_data_and_software.sh file with MASTER's URL.
  4. Run bash download_data_and_software.sh that will take care of downloading all the required files and extracting the database for MASTER search into the databases/masterDB and databases/master_clean directory. Downloading Rosetta, PyRosetta and the MASTER database can take significant amount of time, depending on your network. The script downloads the versions of the softwares that are used in the paper.

❗ Note: Running MPI in Singularity containers require that the version of the hose and container MPI match. The script automatically detects the version of host OpenMPI (required to speed up FlexPepDock runs) and downloads it. If the container is not built on the host computer that will run it, the variable OMPI_VERSION might need to be manually modified.

Option 1: Installation with Singularity containers (recommended)

Three singularity definition files are provided for compiling MASTER, Rosetta and PyRosetta together with all the required python scripts. How you need to build singularity images might be system dependent, as it requires sudo. For example, you might need to run virtual machines or other similar systems. The images can be built with:

sudo singularity build rosetta.sif rosetta.def   # compiling Rosetta can take significant amount of time
sudo singularity build python.sif python.def    
sudo singularity build master.sif master.def     # this also takes care of patching PatchMAN

Option 2: Installation without containers

  • To install python packages and PyRosetta, create a virtual environment and activate it. One example:

    conda create -n patchman python=3.5         # newer python versions can also be used
    conda activate patchman  # or activate.csh, based on your shell type
    pip3 install -r requirements.txt # install required packages
    python3 --version # get your Python3 version
    

    Download PyRosetta wheel that matches your python3 version and your OS with the link.

    pip3 install <downloaded pyrosetta wheel> 
    

    To get support on PyRosetta and its installation, visit: https://www.pyrosetta.org/downloads

  • Install Rosetta from the downloaded rosetta.tar.gz with mpi support. You can change the number of used cores (-j argument) according to your system

    cd containers/
    mkdir rosetta
    tar -xzf rosetta.tar.gz -C rosetta --strip-components=1
    cd rosetta/main/source 
    python scons.py -j 4 extras=mpi,serialization mode=release bin/FlexPepDocking.mpiserialization.linuxgccrelease bin/cluster.mpiserialization.linuxgccrelease
    

    For further support on Rosetta installation, please refer to the documentation.

  • Set up MASTER

    • The downloaded source code needs a slight modification for running PatchMAN . This can be done in 2 different ways:
      • Programatically (using the patch file in the bin/ directory):

        patch -l master/src/Match.cpp bin/master.patch
        
      • Manually: Go to line 107 in the Match.cpp file and add the following code (before return os;):

        double *T=((Match*)(&m))->getTranslation();
        double **R=((Match*)(&m))->getRotation();
        
        os << " T: " << T[0]    << " " << T[1]    << " " << T[2]    << " ";
        os << " U: " << R[0][0] << " " << R[0][1] << " " << R[0][2] << " "
                     << R[1][0] << " " << R[1][1] << " " << R[1][2] << " "
                     << R[2][0] << " " << R[2][1] << " " << R[2][2] << " ===" ;
        
    • After patching, compile master with
      cd master 
      make all
      
      For further info and support on MASTER, please read the INSTALL and MASTER's homepage
  • Create a .env file from sample.env, uncomment and edit the paths in the bottom of the file.


Quick start

PatchMAN can be run with:

bash PatchMAN_protocol.sh <arguments> RECEPTOR PEPTIDE

where RECEPTOR is a PDB file and PEPTIDE is the peptide sequence to be docked. The peptide can contain post-translational modifications, denoted by Rosetta standards, e.g. [SER:phosphorylated]. The available PTMs can be listed with

singularity run containers/rosetta.sif ls /rosetta/main/database/chemical/residue_type_sets/fa_standard/patches

❗ Note that the protocol script is set up to use Singularity containers. If you compiled Rosetta, PyRosetta or MASTER without containers, you will need to edit the $ROSETTA, $PYTHON and $MASTER environmental variables accordingly.

❗ Note that the protocol script is set up to use Slurm job scheduler. Using an other type of scheduler needs editing of the PatchMAN_protocol.sh file and .sh files in the bin/ directory. Unfortunately, we cannot help with optimizing the pipeline to another system.

Test run

A test run of PatchMAN can be performed on the 1ssh.pdb in the test/ directory. Turning off receptor backbone minimization for testing purposes decreases runtime:

PatchMAN_protocol.sh -m false -w test/ 1ssh.pdb EGPPPAMPARPT

Running parameters

-m minimize receptor backbone (default: false)
-w working directory (Default: current directory)
-c master cutoff (Default: 1.5)
-n job name (Default: PatchMAN_JOB)
-v verbose mode, print information about the job

Citing PatchMAN

Matching protein surface structural patches for high-resolution blind peptide docking
Alisa Khramushin, Ziv Ben-Aharon, Tomer Tsaban, Julia Varga, Orly Avraham, Ora Schueler-Furman
Proceedings of the National Academy of Sciences 119.18 (2022): e2121153119.

Please also cite the following papers:

Rapid Search for Tertiary Fragments Reveals Protein Sequence-Structure Relationships
Zhou J., Grigoryan G.
Protein Science, 24(4): 508-524, 2015.

Sub-angstrom modeling of complexes between flexible peptides and globular proteins
Raveh B, London N, Schueler-Furman O. (2010).
Proteins 78:2029-40.

PyRosetta: a script-based interface for implementing molecular modeling algorithms using Rosetta
Chaudhury S, Lyskov S, Gray JJ.
Bioinformatics. 2010;26(5):689-691. doi:10.1093/bioinformatics/btq007

patchman's People

Contributors

alisa-kh avatar gezmi avatar orafurman avatar

Stargazers

Gabriel Axel avatar Yunshu Liu avatar David Zhu avatar jianmubai avatar Ripple Lau avatar wook2014 avatar KeithTab avatar Juno Xiong avatar Luffy avatar dragon10 avatar Eternal Cheng avatar Lei Lu avatar Mercury avatar Zhenping Li avatar  avatar Jiarui Lu avatar Hu GE avatar Lei Wang avatar dw avatar Sean Peldom Zhang avatar Bozitao Zhong avatar  avatar Yuan Liu avatar Alexander Goncearenco avatar

Watchers

 avatar  avatar

patchman's Issues

missing line in README.txt

double *T=((Match*)(&m))->getTranslation();
One line of code is missing in the rendered README page due to lack of ENTER after '''

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.