How to prepare a receptor file for AutoDock4
This How-to applies to:
This How-to is intended for: User
The receptor file contains one line for each
atom in the receptor to be used in an AutoDock experiment. Preparing the receptor involves ensuring that its atoms conform to the AutoDock4 atom
types by adding gasteiger charges if necessary, merging non-polar
hydrogens and detecting aromatic carbons. The formatted receptor is written in a 'pdbqt' file. The pdbqt
format is 'pdb' plus 'q' for partial charge and 't' for AD4 atom type.
Special AD4 atom types are OA, NA, SA for hbond accepting O,N and S atoms, HD for hbond donor H atoms, N for non-hydrogen bonding nitrogens and A
for carbons in planar cycles. For any other atom, its AD4 atom type is
the same as its element. The receptor file can be prepared interatively using AutoDockTools (ADT) or with prepare_receptor4.py,
a python script which can be found in AutoDockTools/Utilities24.
Typing the name of a script in that directory at a shell prompt results
in printing Usage: which is an overview of how to use the script.
prepare_receptor4.py -r filename
Description of command...
[-v] verbose output (default is minimal output)
[-o pdbqt_filename] (default is 'molecule_name.pdbqt')
[-A] type(s) of repairs to make:
'bonds_hydrogens': build bonds and add hydrogens
'bonds': build a single bond from each atom with no bonds to its closest neighbor
'hydrogens': add hydrogens
'checkhydrogens': add hydrogens only if there are none already
'None': do not make any repairs
(default is 'None': do not to make any repairs)
[-C] preserve all input charges ie do not add new charges
(default is addition of gasteiger charges)
[-p] preserve input charges on specific atom types, eg -p Zn -p Fe
[-U] cleanup type:
'nphs': merge charges and remove non-polar hydrogens
'lps': merge charges and remove lone pairs
'waters': remove water residues
'nonstdres': remove chains composed entirely of residues of
types other than the standard 20 amino acids
'deleteAltB': remove XX@B atoms and rename XX@A atoms->XX
(default is 'nphs_lps_waters_nonstdres')
[-e] delete every nonstd residue from any chain
'True': any residue whose name is not in this list:
['CYS', 'ILE', 'SER', 'VAL', 'GLN', 'LYS', 'ASN',
'PRO', 'THR', 'PHE', 'ALA', 'HIS', 'GLY', 'ASP',
'LEU', 'ARG', 'TRP', 'GLU', 'TYR','MET']
will be deleted from any chain. NB: there are no
nucleic acid residue names at all in the list.
(default is False which means not to do this)
(default is 'automatic': outputfile is written with no further user input)
Procedure1. Install MGLTools if you have not already done so. This will install the graphical user interface and the Python shell scripts for ADT (AutoDockTools). See also: How to setup ADT scripts.
2. In your working directory either copy 'prepare_receptor4.py' from "MGLTools/MGLToolsPckgs/AutoDockTools/Utilities24", or make sure your path includes 'local_install', the directory where MGLTools is installed locally.
yourpath = local_install/MGLTools/MGLToolsPckgs/AutoDockTools/Utilities24
3. Run the script at the command prompt using the "pythonsh" script with the desired flags and arguments:
pythonsh [yourpath or .]/prepare_receptor4.py -r receptor_filename [options]pythonsh [yourpath/ or './']prepare_receptor4.py -l ligand.pdb [options]
InputThe receptor file should contain only one molecule, the one to be formatted as the receptor. It should already have all hydrogens added [see below].
OutputThe output filename default is the input file stem plus .pdbqt. For example, 'hsg1.pdb' by default is written to 'hsg1.pdbqt'.
Options1. -A: optional repairs to molecule
'hydrogens': choose to add hydrogens. PyBabel is used for adding all hydrogens, not just polar-hydrogens
'bonds': build a bond between any atom which has no bonds and the atom nearest to it.
'': do no repairs
(the default is to do no repairs)
2. -C: preserve all input charges ie do not add charges
3. -p atomtype: preserve the input charge on a specific atom type, eg -p Zn -p Fe
4. -U: cleanup type
'nphs': merge non-polar hydrogens by adding the charge of each to the carbon to which it is bonded and
removing the non-polar hydrogen from the ligand molecule which implements 'United-Atom' model.
'lps': merge lone-pairs by adding the charge of each to the atom to which it is bonded and removing the lone-pair.
'waters': remove water residues
'nonstdres': remove chains composed entirely of residues of types other than the standard 20 amino acids
'deleteAltB': remove XX@B atoms and rename XX@A atoms 'XX'
'': do no cleanup
(the default is 'nphs_lps_waters_nonstdres')
5. -e: delete every nonstd residue from any chain"
'True': any residue whose name is not in this list:"
'LEU', 'ARG', 'TRP', 'GLU', 'TYR','MET']"
will be deleted from any chain. NB: there are no "
nucleic acid residue names at all in the list. "
(default is False which means not to do this)"
8. -M: interactive mode
This option processes the molecule according to the input options but does not write the outputfile.
Sample usage: pythonsh -i prepare_receptor4.py -r hsg1.pdb -M
(default is automatic mode which exits after writing outputfile)
Known problems1. The default for repairs is to do no repairs. Nonetheless, all hydrogens must be added to the receptor if they have not already been added. The rationale is that the user probably has already added hydrogens. If not, the 'hydrogens' repair option must be used.
2. Formatting the receptor involves building bonds between atoms which are within vanDerWaals radii of each other to determine the torsionTree. For this reason, some input atom coordinates cannot be processed without using the -A 'bonds' repair option.