Giter VIP home page Giter VIP logo

pdbprep's Introduction

Prepare PDB files for MD minimization with OpenMM Amber14 forcefield.

1. Install dependencies

Install the following dependencies in the same Python environment:

  1. Install OpenMM: conda install -c conda-forge openmm
  2. Install chardet: conda install chardet
  3. Install pdb2pqr: pip install pdb2pqr
  4. Install @joaomcteixeira fork of the Pras_Server as follows:
# ensure to install the fork outside the `pdbprep` repository, if needed,
# navigate to the parent directy in case you are in the `pdbprep` repository
# folder
cd ..

# clone the fork and compile the software
git clone https://github.com/joaomcteixeira/Pras_Server
cd Pras_Server
git fetch
git checkout nolog
cd Pras_Server_C++
g++ -std=c++17 src/*.cpp -o PRAS

Why the fork? Because in the fork's branch the logging operations were removed to avoid writing thousand of log files to disk. All credit about PRAS should be given to the original authors:

2. Give execution permission to files

In the current pdbprep repository folder, give the necessary permissions to the *.py and .sh files:

  • If you're still on the Pras folder: cd ../pdbprep
  • Give permission: chmod u+x *.py pdb_prepare.sh

The pdb_*.py files were adapted from the pdb-tools project from Alexandre Bonvin lab.

http://www.bonvinlab.org/pdb-tools/

Here, @joaomcteixeira modifed the scripts reducing their versatility to improve their speed. Hence, the pdb-tools scripts provided here won't work outside the pdbprep context. If you want to use pdb-tools for any other need, install the official package pip install pdb-tools, and cite the original work.

If PRAS was not placed in the default location (as suggested above), add the absolute path to the PRAS file in the pdb_prepare.sh file (edit line 4 of pbd_prepare.sh).

3. Prepare PDBs

3.1 source the setup.sh file

From within the pdbprep folder, source the setup.sh file: source setup.sh. You need to perform this operation every time you want to use pdbprep in a new terminal window.

3.2 Prepare the PDB files

To prepare the PDB files:

  1. Navigate to the folder where you want the new PDBs to be saved.
  2. create a file with the list of paths to the input PDB files. You can use ls path/to/my/pdbs/*.pdb > pdblist from command-line or create a new file and paste path/to/my/pdbs/*.pdb inside.
  3. run pdb_prepare.sh pdblist <N>, where N is the numbers of threads you want to use.

The script will create a series of folders for the different steps. If everything goes okay, temporary PDBs will be deleted and only those in the last folder 4_ready_to_minimize will be saved. If something goes wrong with a PDB, its intermediate temporary files won't be deleted and we can check them afterwards.

Several comments in the pdb_prepare.sh file explain the process.

4. Troubleshooting

4.1 Can't find Python

In case the script can find the Python interpreter, type whereis python (or which python) and update the python path in the shabang (1st line) of the *.py files accordingly.

pdbprep's People

Contributors

danibodor avatar joaomcteixeira 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.