Skip to content

LigGrep is a free, open-source program for identifying docked poses that participate in user-specified receptor/ligand interactions. As input, LigGrep accepts a protein receptor file (PDB, PDBQT), a directory containing many docked-compound files (PDB, PDBQT, SDF), and a list of user-specified filters (JSON).

License

durrantlab/liggrep

1.0.0
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

LigGrep 1.0.0

usage: liggrep.py [-h] [-m MODE] [-o BABEL_EXEC] [-f FILE] [-v] [--num_processors N] [--job_manager {serial,multiprocessing,mpi}] [-t] [-i] receptor ligands filters

LigGrep 1.0.0, a free, open-source program for identifying docked poses that participate in user-specified receptor/ligand interactions. As input, LigGrep accepts a protein receptor file (PDB, PDBQT), a directory containing many docked-compound files (PDB, PDBQT, SDF), and a list of user-specified filters (JSON). It evaluates each docked pose and outputs the names of the compounds with poses that pass all filters.

positional arguments: receptor PDBQT file containing receptor information. ligands Directory of PDBQT files containing the docked-ligand files. filters JSON file containing filters, which are formatted as a list of dictionaries.

optional arguments: -h, --help show this help message and exit -m MODE, --mode MODE Optional user-specified bond-order mode. If OPENBABEL, LigGrep will assign bond orders using the open-babel executable specified via the --babel_exec parameter. If SMILES, LigGrep will use SMILES files to assign bond orders. These files must be in the same directory as the docked-ligand files, and they must be similarly named (except with the .smi extension). If NONE, LigGrep will not attempt to assign bond orders. The docked ligands must either be in a format that itself specifies bond orders (e.g., SDF), or the user- specified filters must not depend on bond orders. Default: NONE -o BABEL_EXEC, --babel_exec BABEL_EXEC Optional path to the OpenBabel executable. -f FILE, --file FILE The name of the file were LigGrep analysis should be saved. Defaults to "output.txt". -v, --verbose Indicate why molecules and poses are rejected (standard output). --num_processors N, -p N Number of processors to use for parallel calculations. Defaults to 1. --job_manager {serial,multiprocessing,mpi} Determine what style of multiprocessing to use: serial, mpi, or multiprocessing. Serial will override the num_processors flag, forcing it to be one. MPI mode requires mpi4py 2.1.0 or higher. Defaults to serial. -t, --test Run optional tests to verify that code updates don't break functionality. -i, --internal_test (Optional parameter used for internal testing.)

EXAMPLES OF USE:

  1. Prepare a virtual library and save all 3D models to a single SDF file in the present directory:

python liggrep.py ./liggrep/examples/receptors/receptor.pdb
"./liggrep/examples/ligands/sdf/*.sdf" ./liggrep/examples/filters.json

  1. Assign bond orders to PDBQT-formatted ligands using SMI files in the same directory:

python liggrep.py ./liggrep/examples/receptors/receptor.pdbqt
"./liggrep/examples/ligands/pdb/*.pdb" ./liggrep/examples/filters.json
--mode SMILES

  1. Or use Open Babel to assign bond orders:

python liggrep.py ./liggrep/examples/receptors/receptor.pdbqt
"./liggrep/examples/ligands/pdb/*.pdb" ./liggrep/examples/filters.json
--mode OPENBABEL --babel_exec /usr/local/bin/obabel

  1. By default, LigGrep saves the names of the poses that pass all filters to "output.txt". You can optionally specify a different output file:

python liggrep.py ./liggrep/examples/receptors/receptor.pdb
"./liggrep/examples/ligands/sdf/*.sdf" ./liggrep/examples/filters.json
--file other_output.txt

  1. You can tell LigGrep to output why each ligand/pose is accepted or rejected:

python liggrep.py ./liggrep/examples/receptors/receptor.pdb
"./liggrep/examples/ligands/sdf/*.sdf" ./liggrep/examples/filters.json
--verbose

  1. By default, LigGrep runs in serial mode, meaning it runs on only one processor. You can also use multiple processors to speed the process. Requesting -1 processors means all processors will be used.

python liggrep.py ./liggrep/examples/receptors/receptor.pdb
"./liggrep/examples/ligands/sdf/*.sdf" ./liggrep/examples/filters.json
--job_manager multiprocessing --num_processors -1

About

LigGrep is a free, open-source program for identifying docked poses that participate in user-specified receptor/ligand interactions. As input, LigGrep accepts a protein receptor file (PDB, PDBQT), a directory containing many docked-compound files (PDB, PDBQT, SDF), and a list of user-specified filters (JSON).

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages