ADCP v1.1

This page is under construction and currently only provides a few examples of running the software illustrating the new capabilities.

To run these examples you should download a receptor and ligand for 3Q47

the following command will compute the 3Q47.trg target file

Copy to Clipboard

agfr runs AutoGridFr which computes target files.

-r specified the receptor and here we provide the pdbqt file
-l specifies the ligand and here we provide the crystallographic peptide. When a ligand is provided, agfr will use it to defined the docking box as the ligand’s bounding box with 4 Angstroms padding.
-asv 1.1 specifies that we want to compute preferred starting ligand position in the docking box using version 1.1 of AutoSite rather than 1.0 which is for small molecules
-o 3Q47 specifies the name of target file to write (e.g. 3Q47.trg)

This command should generate the following output in the console and write the 3D47.trg target file


the following command will run ADCP with modified aminoacids

Copy to Clipboard

In version 1.1 of ADCP the peptide sequence allows the specification of non-natural amino acids using the following syntax “[&]x” .

The optional & will make the amino acid Dextro instead of the default L Chirality.

The ‘x‘ character specifies the coarse bead used to represent the sidechain. Currently all single letter code for natural amino acids can be used in this position.

The name of the modified sidechain is specified between chevrons i.e. <>. In the example above, the first amino acid will be represented as an asparagine in the coarse model and an asparagine derivative sidechain (BHD) from the Swiss sidechain library will be used for the full atom representation. The peptide will also contain a D-Aspartic acid in position 5.

NOTE: the modified side chain will be loaded from a library file. In this case the Swiss library specified with -L swiss

Here we perform only 2 MC searches (-N 2) each allotted (2000 evals) as the purpose is mainly to run the command quickly rather than finding real docked poses. the command will produce the output shown below and create 2 files: a multi model PDB file called testNSAAandD_out.pdb and a summary file called testNSAAandD_summary.dlg in the working directory (-w) testDir.

After the calculation the testDir folder contains the following files

testNSAAandD_out.pdb ; a multi model PDB file with the docked poses

testNSAAandD_summary.dlg: the docking log files

ADCP v1.1 supports OpenMM based minimization and re-ranking of docked poses. In this document, we provide examples to use of this feature. For all these examples, we assume that user is already aware of using ADCP with standard options (flags).

OpenMM based re-ranking of ADCP docked poses containing standard amino acids :

The option “-nmin” activates the OpenMM-based minimization of poses followed by reranking. The following example will dock a peptide (sequence: “grctksicfpd”) with the protein receptor ( from 3Q47.trg ) and minimize the top 5 docked solution using openMM.

Copy to Clipboard

This command will generate on-screen output like:

In addition to the default ADCP output files, this command will also generate “example1_omm_rescored_out.pdb” containing minimized and reranked top-docked solutions (receptor+peptide) and amber topology and coordinate files for each reranked docked solutions in directory “testDir1/example1_omm_amber_parm” that can be used for the further analysis of docked poses and free-energy calculation using Molecular Dynamics (or other Molecular Mechanics) simulation.

Additional options:
The number of minimization iterations (-nitr), solvent environment (-env), and output order of re-ranked solutions (-dr) can also be used to control the openMM-based minimization behavior. For example:

Copy to Clipboard

Description of each option:
-nitr 500: Defines 500 minimization steps for each docked pose.
-env implicit: The implicit solvent environment will be used for minimization. The default is minimization in vacuum.
-dr: To report the minimized solutions based on docking score ordered from best to worst. Default order is best to worst openMM-based ranking score.
-reint: To openMM-based ranking by interaction energy (Ecomplex -Ereceptor -Epeptide) rather than (Ecomplex -Ereceptor).

Minimization options for already docked solutions:
Post Docking Minimization (-pdmin) : This option allows you to apply openMM minimization to already docked poses. When selected, ADCP will skip the re-docking step and instead initiate openMM minimization on poses from the previously docked output file. Ensure that you use the same target file (-T), jobName (-o), and sequence (-s) descriptions as you did during the docking process.

Resume Failed minimization ( -resumemin ): This option is used to continue an interrupted openMM minimization and re-ranking process. It can only be employed in conjunction with Post Docking Minimization (-pdmin) and NOT overwriting (-O) modes.

OpenMM-based minimization of ADCP docked poses containing non-standard amino acids:
By default, the force-field parameter set used for openMM-based minimization lacks parameters for most non-standard amino acids. Therefore, ADCP defaults to using the “sannerlab” openMM parameter set for 182 non-standard amino acids and the swiss openMM parameter set for 20 non-terminal non-standard amino acids. These parameter sets are specially designed for Swiss non-standard amino acids and require proper licensing obtained from the original developer of the SwissSideChain database. For a comprehensive list of supported non-standard amino acids, refer to the /ADCP/data/openMMff/AVAILABLE_PARAMETER.dat file.

In cases where an openMM parameter set for a specific non-standard amino acid is unavailable or not provided, ADCP will utilize pdbfixer(v1.8) to substitute non-standard amino acids with standard ones. If pdbfixer cannot replace a non-standard amino acid, it will be mutated to “ALA” (alanine) for openMM-based re-ranking.

Other Options for Handling OpenMM-Based Minimization of Non-Standard Amino Acids:
-F: This option is used to specify the utilization of openMM parameter sets (swiss, sannerlab, or none) from the ‘ADCP/data/openMMff’ directory. The ‘none’ option can be chosen to restrict the use of any system default parameter sets.

-f: To specify the use of user-defined (developed) openMM parameter sets for supporting new or unlisted non-standard amino acids. This requires three files containing force-field data, bond definitions, and hydrogen definitions. Ensure that you provide all three files in the same directory with the same initial names. For example, if you use ‘-f ./XXXX_ff.xml’, the program will expect a force-field file (./XXXX_ff.xml), a bond definition file (./XXXX_residues.xml), and a hydrogen definition file (./XXXX_hydrogen_def.xml), all located in the same directory.

ADCP v1.1 supports docking peptides containing non-natural amino acid (NSAA). Each NSAA has a name (e.g. PTR) and the software expects the find parameters for this non-natural sidechain in library files provided on the command line (see -l and -L options). ADCP ships with a library for natural amino acids (always loaded) and a library of fluorinated amino acids. We also developed parameters from all the amino acids from the SwissSideChain. The somewhat restrictive license listed on the website will be replaced by a CC-BY 4.0 licence and we ahve been granted the right to distribute the ADCP library for this set of 209 amino acids in D- and L- form.

We have assembled a library comprising 182/209 non-natural amino acids (NNAs) obtained from the SwissSideChain database, encompassing both L- and D-chiralities. This comprehensive library equips the ADCP with the capability to handle all currently existing NNAs found in the Protein Data Bank (PDB). To enable seamless integration of peptides containing NNAs at various positions within the peptide sequence into OpenMM, we undertook the following steps:

i) Partial Charges for NNAs:The partial charges provided by SwissSidechain were originally designed for NNAs not situated at the N- or C-terminus of a peptide. Consequently, we calculated partial charges for NNAs in both terminal and non-terminal configurations using the R.E.D. (RESP ESP charge Derive) server, utilizing GAMESS as the backend for partial charge calculations. The process closely follows the steps described here: https://upjv.q4md-forcefieldtools.org/Tutorial/Tutorial-3.php#11. To represent terminal and non-terminal configurations of each NNA, we appropriately capped them with ACE and/or NME chemical groups.

ii) Force-Field Parameters:We utilized parmchk2 from Ambertools to identify all the necessary amber force-field parameters (including bond, angle, dihedral, improper, electrostatic, and van der Waals) based on the mol2 files generated by the R.E.D. server. These parameters were outputted as an frcmod file.

iii) FFXML Files: We employed parmed on the frcmod and mol2 files to generate a pair of OpenMM-compatible FFXML format partial force-field files for each NNA variant. Subsequently, we combined the information from each pair of FFXML files into a single FFXML file, which comprehensively represents all the parameters required for the Amber force field. In the end, all these separate FFXML files were consolidated into a single file, resulting in a complete set of parameters for 184 NNAs. This consolidated FFXML file includes all the essential parameters for the Amber force field and can be loaded by OpenMM. As a result, the latest version of ADCP (v1.1) now supports NNAs and OpenMM.

To efficiently utilize this set of parameters in the OpenMM engine, we made multiple adjustments during the loading, cleaning, and simulation for each structure:

  1. Preventing the removal or swapping of NSTs by loading the residue definition file in pdbfixer and modifying the pdbfixer.nonstandardResidues list, which is subsequently used for swapping.
  2. Introducing ‘OXT’ at the C-terminal NSTs, addressing the missing step from pdbfixer. Since pdbfixer uses modeler to add missing hydrogen atoms, it correctly handles N-terminal residues but does not accommodate terminal NSTs.
  3. Overriding the default hydrogen definition file reloading to incorporate NST-specific definitions or to apply specific parameter sets for residues with identical names (e.g., ORN).
  4. Supporting residues with identical molecular structures (e.g., THR and ALO) by providing specific residue templates for amino acids with similar structures.
  5. Overriding the PDB writing process to handle 4-letter NST codes, employing a modified pdbwriter.

This tutorial explains the steps required to generate a rotamer file for a non-standard amino acid and incorporate it in ADCP to support docking peptides with the non-standarad amino acid.

Step 1:

To run this tutorial you need to download THIS zip file with dummy non-standard amino acids and randomly generated Dunbrack-like rotamer files. First make a directory with your choice of name as I created “~/ADCP_examples/genLib”  then

cd ~/ADCP_examples/genLib

Download command: wget https://ccsb.scripps.edu/mamba/examples/libGenExample.zip

Unzip downloaded  file as:

unzip libGenExample.zip
Archive:  libGenExample.zip
creating: input/
inflating: input/rotamer_details.dat
creating: input/pdbfiles/
creating: input/pdbfiles/D/
inflating: input/pdbfiles/D/DSOO.pdb
inflating: input/pdbfiles/D/DFOO.pdb
creating: input/pdbfiles/L/
inflating: input/pdbfiles/L/FOO.pdb
inflating: input/pdbfiles/L/SOO.pdb
creating: input/libfiles/
inflating: input/libfiles/FOO_random1.lib
inflating: input/libfiles/SOO_random1.lib

The extracted input directory has files arranged as:

input/
├── libfiles
│   ├── FOO_random1.lib
│   └── SOO_random1.lib
├── pdbfiles
│   ├── D
│   │   ├── DFOO.pdb
│   │   └── DSOO.pdb
│   └── L
│   ├── FOO.pdb
│   └── SOO.pdb
└── rotamer_details.dat

Step 2: Extract rotamer information

run command : extractRotamerInfo -l input/libfiles/ -p input/pdbfiles/ -i _random1.lib -r input/rotamer_details.dat -o rotamerinfo.py

output: 

extractRotamerInfo -l input/libfiles/ -p input/pdbfiles/ -i _random1.lib -r input/rotamer_details.dat -o rotamerinfo.py
file ‘rotamerinfo.py’ is created successfully. Run ‘makeLibFile’ to generate lib file.

Step 3: generate lib file

run command: run command: xxxxxx@xxxxxxx:~/ADCP_examples/genLib$ makeLibFile -p input/pdbfiles -r input/rotamer_details.dat -t rotamerinfo.py -o my_foo_soo.lib

output:

run command: xxxxxx@xxxxxxx:~/ADCP_examples/genLib$ makeLibFile -p input/pdbfiles -r input/rotamer_details.dat -t rotamerinfo.py -o my_foo_soo.lib
Using residue list from “input/rotamer_details.dat” for lib file generation!
Working on AA: FOO
Working on AA: SOO
Working on AA: DFOO
Working on AA: DSOO
ADCP acceptable lib file: ‘my_foo_soo.lib’ generated successfully

Step 4: Use the newly generated lib file in docking

You may need to download example TRG file to use this lib file in docking

mkdir trialRun

cd trialRun

download trg file as:

wget https://ccsb.scripps.edu/mamba/examples/3Q47.trg

run ADCP as:

adcp -T 3Q47.trg -s “toto&or” -w testDir -o myfoo -l ../my_foo_soo.lib -O -n 2000 -m 5

output:

xxxxxx@xxxxxxx:~/ADCP_examples/genLib/trialRun$ adcp -T 3Q47.trg
-s “toto&or” -w testDir -o myfoo -l ../my_foo_soo.lib -O -n 2000 -m
5
Warning: importing ‘simtk.openmm’ is deprecated.  Import ‘openmm’ instead.
Inflating target file 3Q47.trg
performing MC searches with: /home/xxxxxx/micromamba/envs/adcpsuite/lib/python3.7/s
ite-packages/ADCP/CrankiteAD_Linux-x86_64_1.1
target data from file: 3Q47.trg
job name: myfoo, summary file myfoo_summary.dlg, docked poses: myfoo_out.pdb
Detected 8 cores, using 8 cores.
using user rotamer library ../my_foo_soo.lib
/home/xxxxxx/ADCP_examples/genLib/my_foo_soo.lib
Performing 50 MC searches using 2000 evals each using a random seed.
Performing search (50 ADCP runs with 2000 steps each) …
0%   10   20   30   40   50   60   70   80   90   100%
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
Docking performed in 17.50 seconds, i.e. 0 hours 00 minutes 17.497510 seconds
bestEnergies [-8.65548, 5.90048, -5.13314, -2.50491, -9.35804, -9.19329, -2.81013, –
1.74652, 10.6427, -8.70252, 5.33932, -6.51859, -4.53209, -2.26573, -6.50981, 107.556
, -2.19785, 93.4734, -2.83973, 41.595, 1.46017, 21.8029, -5.90187, 5.43427, 57.0555,
-7.2611, 1.32635, -5.67726, 77.4642, 13.9936, -3.42446, -1.72998, -5.50438, 43.6464
, -9.0449, -0.338065, 28.147, 99.3097, -1.75186, 0.0199449, 57.5305, 1.69477, 17.885
4, -7.71046, 6.23085, 44.6776, -2.42758, -7.00984, -3.08003, -2.38094] bestEnergy in run 5 -9.358040 (0)
Analyzing results ….
concatenating trajectories for run with best energy < 10.641960
concatenated 50 trajectories
Clustering MC trajectories based in contacts using cutoff: 0.800000
finished calculating neighbors for 935 poses with 2.5 seconds
mode |  affinity  | ref. | clust. | rmsd | energy | best |
| (kcal/mol) | fnc  |  size  | stdv |  stdv  | run  |
—–+————+——+——–+——+——–+——+
1         -5.5      0.0      12      NA      NA    131
2         -5.4      0.0       7      NA      NA    155
3         -5.4      0.0      13      NA      NA    688
4         -5.2      0.0      10      NA      NA    255
5         -5.1      0.0      19      NA      NA    038
Calculations completed 20.23 seconds, i.e. 0 hours 00 minutes 17.497510 seconds
MC search command: cd testDir/myfoo; /home/xxxxxx/micromamba/envs/adcpsuite/lib/pyt
hon3.7/site-packages/ADCP/CrankiteAD_Linux-x86_64_1.1 -t 2 “toto&or”
-l /home/xxxxxx/ADCP_examples/genLib/my_foo_soo.lib -T /home/xxxxxx/ADCP_example
s/genLib/trialRun/testDir/myfoo/3Q47 -r 1×2000 -p Bias=NULL,external=5,constrains,1.
0,1.0,Opt=1,0.25,0.75,0.0 -s 443707 -o run_1.pdb
seed: [‘184967’, ‘204672’, ‘248667’, ‘104977’, ‘845292’, ‘429831’, ‘870589’, ‘652790
‘, ‘719532’, ‘124334’, ‘754509’, ‘373822’, ‘475064’, ‘81804’, ‘437507’, ‘778027’, ‘9
2723’, ‘273272’, ‘107599’, ‘210609’, ‘355627’, ‘291098’, ‘368513’, ‘843115’, ‘161654
‘, ‘137867’, ‘302545’, ‘148886’, ‘923061’, ‘909799’, ‘425771’, ‘378073’, ‘147542’, ‘
178035’, ‘120937’, ‘540806’, ‘186303’, ‘843805’, ‘33583’, ‘625700’, ‘111739’, ‘16821
7’] removing working folder testDir/myfoo