Giter Site home page Giter Site logo

ligbinder's Introduction

LigBinder 0.1a

installation:

dependencies automatic installation is disabled as BSC rejects outgoing traffic originated from within

make sure your environment has a working installation of:

python packages:

  • pyyaml
  • pytraj
  • parmed

binaries:

  • pmemd.cuda
  • sander (optional)

in order to be able to use ambertools20 python bindings, it is required to use python version 3.6.5
make sure you loaded the necessary modules before installing this package.
this must be done by running this:

module load gcc/7.3.0
module load boost/1.69.0
module load pnetcdf/1.11.2
module load amber/20
module load python/3.6.5

create a python virtual environment in a convenient folder by:

virtualenv <path> --prompt <prompt>

for example:

virtualenv .venv --prompt "(ligbinder) "

activate this environment by running

source .venv/bin/activate

with the virtual environment active, copy the repository to a folder of your choice, get in and run:

pip install .

if everything went fine you should be able to run ligbinder by executing:

ligbinder

you can also install it into your user general environment instead by (not creating and activating the virtual environment and) running

pip install --user .

this way you won't need to source any environment in the submission script.

quickstart guide

  1. create a new folder for the ligbinder dynamics and get in:

  2. create a folder named data. it will contain the relevant files

  3. copy your equilibrated pose into data/pose.rst7. it must be in rst7 format (amber binary restart file)

  4. copy the corresponding topology file into data/top.prmtop. it must be in amber parm file format

  5. copy the target pose into data/ref.crd. (amber binary format again)

  6. run ligbinder and go for pop-corn

mkdir lb_test && cd lb_test
mkdir data
cp ../my_dynamic/eq.rst7 data/pose.rst7
cp ../my_dynamic/my_topology.prmtop data/top.prmtop
cp ../my_dynamic/bound_state.crd data/ref.crd
ligbinder

detailed guide and configuration

configuration can be specified by providing a yaml file.

the currently available parameters are:

tree:
    max_depth: 20                   # maximum number of successive iterations
    max_children: 10                # maximum number of dynamics spawn from a single intermediate iteration
    tolerance: 0.5                  # rmsd tolerance to accept a node as a hit
    max_nodes: 500                  # maximum number of nodes in total
    min_relative_improvement: 0.1   # minimum rmsd improvement in relation to current rmsd. default is 10% (0.1)
    min_absolute_improvement: 1.0   # minimum rmsd improvement in absolute value
    max_steps_back: 5               # maximum difference between maximum depth reached and current depth
    use_normalized_rmsd: true       # use rmsd divided by the atom count in ligand mask. set to false
                                    # to use the rmsd regardless of the selection size

data_files:
    crd_file: "./data/pose.rst7"        # default location for project starting pose
    top_file: "./data/top.prmtop"       # default location for project topology file
    ref_file: "./data/ref.crd"          # default location for project reference file
    ref_top_file: "./data/top.prmtop"   # default location for project reference topology
                                        # it will usually be the same as the trajectory, but
                                        # just in case, this can be also configured

system:
    protein_mask: "@CA&!:LIG"           # mask for system alignment.
                                        # default is alpha carbon and not a ligand atom
    ligand_mask: ":LIG&!@H="            # mask for ligand rmsd calculation
                                        # default is ligand atoms that are not hydrogen
    restraint_mask: "@CA&!:LIG"         # mask for restraints
                                        # default is alpha carbon and not a ligand atom
    load_mask: "@CA|(:LIG&!@H=)"        # mask for system loading.
                                        # reference and problem system must end up having
                                        # equivalent topologies when this mask is applied
md:
    crd_file: "initial.rst7"        # default name for node starting file
    top_file: "top.prmtop"          # default name for node topology file
    trj_file: "traj.nc"             # default name for node trajectory file
    rst_file: "final.rst7"          # default name for node final structure file
    ref_file: "ref.crd"             # default name for node reference file
    log_file: "md.log"              # default name for md logging file
    inp_file: "md.in"               # default name for md input file
    use_hmr: true                   # use hydrogen mass repartitioning. default is true
    tstep: 4                        # integration time of 4fs. reduce to 2 if use_hmr is set to false
    steps: 250000                   # md steps. 250k * 4fs = 1 nano per node
    apply_restraints: true          # if true, apply restraints based on system.restraint_mask
    restraint_force: 1.0            # in kcal/mol A^2
    use_gpu: true                   # specify md engine version to use. use pmemd.cuda by default.
                                    # if use_gpu is set to false, sander is used instead.
                                    # it is useful for debugging, but too slow for production.

config_file: "config.yml"

results:
    join_trajectories: true
    report_dir: "results"
    idx_file: "nodes.lst"
    trj_file: "full_path.nc"
    rms_file: "nodes.rmsd"
    stats_file: "stats.txt"

running in cte-power9

it will be probably already installed over there, but in case it is not, just follow the instructions to install it.

there's an example submission script at clusters/cte-power9-example.sh

running in kraken

same story as cte-power9.

the example submissino script is clusters/kraken-example.sh

ligbinder's People

Contributors

ggutierrez-bio avatar jjuarez84 avatar

Watchers

James Cloos avatar  avatar

ligbinder's Issues

Implement normalized RMSD as success metric

right now ligbinder uses RMSD threshold to determine success on a binding event, but this is an extensive property.

an intensive property should also be made available, so the size of compared molecules wouldn't make a difference on the success threshold.

  • both RMSD and normalized RMSD should be allowed. one of them is to be selected by configuration. default value will be normalized RMSD
  • normalized RMSD will be defined as RMSD over the atom count of ligand selection via atom mask.
  • default normalized RMSD threshold will be 0.1

Running in kraken

The environment does not seem to be properly set up to run ligbinder in kraken. Following the instructions in the repo leads to:

/var/spool/slurm/d/job21835/slurm_script: line 9: ligbinder: command not found

Result trajectories (Requested feature)

It will be a nice feature if the program would output the concatenated trajectories of the different paths in the results folder. Ideally identified as binding or non-binding (e.g: binding_traj1, binding_traj2, non_binding_traj3, ...ect) and with the stats file containing the information about the nodes involved in each trajectory

The information in the results is a bit cryptic

It is not super clear why runs terminate. There is some info in the log file, but I think a more detailed output in the results will help gathering statistics to compare binders from non-binders. I don't have a super clear idea how that could work, happy to discuss at some point.

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.