Getting Started

Get and Run ProMod3

Either utilize containers or start from source code:

  1. Fetch the source code from https://git.scicore.unibas.ch/schwede/ProMod3.git. Or directly pull it with git:

    $ git clone https://git.scicore.unibas.ch/schwede/ProMod3.git <DIR>
    
  2. Obtain all dependencies and compile ProMod3 with cmake and make (see here).

  3. Ensure that you have a stage/bin folder which includes a pm executable. For convenience, add the folder to your PATH env. variable.

  4. You can now execute ProMod3 by running the following in your terminal:

$ pm <COMMAND>

Here <COMMAND> can be:

  • a predefined “action” (see here)

  • the path to a python script, such as the following example:

    from ost import io
    from promod3 import loop
    
    # generate backbone with dihedrals of a helix and store it
    sequence = "HELLYEAH"
    bb_list = loop.BackboneList(sequence)
    io.SavePDB(bb_list.ToEntity(), "test.pdb")
    

    The execution of this script should generate a test.pdb file, which you can visualize with any pdb reader (e.g. dng from OST).

Modelling pipeline

ProMod3 is meant to help you perform operations for protein homology modelling. Commonly, your input is a template structure and an alignment of the template to the desired target sequence. The modelling steps then are:

  • Build a raw model from a template by copying the part of the template which is conserved

  • Perform loop modelling to close all gaps (see loop module)

  • Reconstruct sidechains (using sidechain module)

  • Minimize energy of final model using molecular mechanics (using ost.mol.mm from OST)

Since a good amount of time is spent in OpenMM routines to minimize energy, we try to use the fast and multi-threaded “CPU” platform of OpenMM (should be included and working on any hardware supported by OpenMM). If the platform is not available, we use the slower “Reference” platform. For the “CPU” platform, multiple CPU threads can be used by setting the env. variable PM3_OPENMM_CPU_THREADS to the number of desired threads. If the variable is not set, 1 thread will be used by default.

Search

Enter search terms or a module, class or function name.

Contents