Giter Club home page Giter Club logo

colabdock's Introduction

ColabDock

Inverting AlphaFold2 structure prediction model for protein-protein docking with experimental restraints

ColabDock is a docking framework developed based on ColabDesign. It is able to incorporate experimental restraints to generate accurate protein complex structure. For details, please refer to the paper.

Open In Colab

Note the notebook is still under development.

Installation

  1. Create a python enviroment using conda.
conda create --name colabdock python=3.8
  1. Clone the repo
git clone [email protected]:JeffSHF/ColabDock.git
  1. Activate environment
cd ColabDock && conda activate colabdock
  1. Install jax
    Please refer to JAX github page to install package corresponding to your CUDA and cudnn version.
    Example:
# install jaxlib
pip install https://storage.googleapis.com/jax-releases/cuda11/jaxlib-0.3.8+cuda11.cudnn805-cp38-none-manylinux2014_x86_64.whl
# install jax
pip install jax==0.3.8
  1. Install other dependencies
pip install -r requirements.txt

Usage

Before running the code, please set the variables in the config.py file according to the descriptive information in it.

conda activate colabdock && python main.py

Restraints sampling

If you want to test ColabDock using a complex with known structure, you can generate 1v1, 1vN, or MvN restraints using the extract_rest.py script. For example, 4INS4 contains 4 protein chains, i.e., A,B,C,D. If you want to sample some 1v1 restraints between chain A and chain D, then run the following command and the program will print the sampled restraints.

python extract_rest.py ./protein/4INS4/PDB/native.pdb A,B,C,D A,D 1v1

You can also use python extract_rest.py -h to get more informations about the input parameters.

Restraints example

Suppose the complex you want to dock contains two chains, i.e., A and B, and each chain contains 10 amino acids. The "chains" variable in the config.py file is set to 'A,B'.

a. 1v1 restraint

If you want the 4th residue in chain A close to the 5th residue in chain B in the docking structure, the 1v1 restraint (rest_1v1 variable in the config.py file) should be set to [4, 15].

b. 1vN restraint

If you want the 4th residue in chain A close to one of residues from 3rd to 7th in chain B in the docking structure, the 1vN restraint (rest_1vN variable in the config.py file) should be set to [4, range(13, 18)].

c. MvN restraint

If you have two 1vN restraints, i.e., [4, range(13, 18)] and [6, range(13, 18)], and you want at least one of them satisfied in the docking structure, the MvN restraint (rest_MvN variable in the config.py file) should be set to [[4, range(13, 18)], [6, range(13, 18)], 1].

d. Repulsive restraint

If you want the 6th residue in chain A far away from the 8th residue in chain B in the docking structure, the repulsive restraint (rest_rep variable in the config.py file) should be set to [6, 18].

Links

A blog in Chinese (link)

Contributors

colabdock's People

Contributors

jeffshf avatar fabgonzal 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.