OpenStructure
Loading...
Searching...
No Matches
Functions
ost.mol.mm.antechamber Namespace Reference

Functions

 _GetInteraction (functype, atoms, params)
 
 _MakeComponentBuildingBlock (eh, ff_dict)
 
 _ParseModifiedPDB (filename)
 
 _ParseAmberForceField (filename)
 
 RunAntechamber (res_name, filename, format='ccif', amberhome=None, base_out_dir=None)
 
 AddFromFiles (force_field, frcmod_filename, mpdb_filename)
 
 AddFromPath (force_field, out_dir)
 
 AddIon (force_field, res_name, atom_name, atom_mass, atom_charge, lj_sigma, lj_epsilon)
 

Function Documentation

◆ _GetInteraction()

_GetInteraction (   functype,
  atoms,
  params 
)
protected

helper functions

Get an mm.Interaction with the given func-type and params for the given
atoms (name and types extracted from there).

Definition at line 31 of file antechamber.py.

◆ _MakeComponentBuildingBlock()

_MakeComponentBuildingBlock (   eh,
  ff_dict 
)
protected
Take EntityHandle eh (from ParseModifiedPDB) and ff_dict (from 
ParseAmberForceField) and return BuildingBlock.

Definition at line 40 of file antechamber.py.

◆ _ParseAmberForceField()

_ParseAmberForceField (   filename)
protected
Read frcmod file produced by parmchk2 and return dictionary with all
entries for masses, bonds, angles, dihedrals, impropers and non-bonded (LJ)
interactions. Stored as key/list-of-value pairs:
- 'MASS': [atype, mass]
- 'BOND': [atype1, atype2, d0, k]
- 'ANGL': [atype1, atype2, atype3, a0, k]
- 'DIHE': [atype1, atype2, atype3, atype4, idiv, period, phase, k/idiv]
- 'IMPR': [atype1, atype2, atype3, atype4, period, phase, k]
- 'NONB': [Rvdw, epsilon]

Definition at line 209 of file antechamber.py.

◆ _ParseModifiedPDB()

_ParseModifiedPDB (   filename)
protected
Read mpdb file produced by antechamber and return tuple of:
- EntityHandle with connectivity, atom types (property 'type') and charges
- Residue name as extracted from the mpdb file
A RuntimeError is raised if the file can contains multiple residues.

Definition at line 154 of file antechamber.py.

◆ AddFromFiles()

AddFromFiles (   force_field,
  frcmod_filename,
  mpdb_filename 
)
Add data from a frcmod and an mpdb file to a force field.

This will add a new :class:`~ost.mol.mm.BuildingBlock` to `force_field` for
the residue defined in those files (residue name is extracted from the mpdb
file which can only contain a single residue). Charges for each atom are
extracted from the mpdb file. According to the frcmod file, an
:class:`~ost.mol.mm.Interaction` is added for each bond, angle, dihedral and
improper. Atom types with masses and non-bonded interactions are added to
`force_field` as needed.

:param force_field: A force field object to which the new parameters are
                    added.
:type force_field:  :class:`~ost.mol.mm.Forcefield`
:param frcmod_filename: Path to ``frcmod`` file as generated by ``parmchk2``.
:type frcmod_filename:  :class:`str`
:param mpdb_filename: Path to mpdb file as generated by ``antechamber``.
:type mpdb_filename:  :class:`str`
:return: The updated force field (same as `force_field`).
:rtype:  :class:`~ost.mol.mm.Forcefield`

Definition at line 403 of file antechamber.py.

◆ AddFromPath()

AddFromPath (   force_field,
  out_dir 
)
Add data from a directory created with :meth:`Run` to a force field.
See :meth:`AddFromFiles` for details.

:param force_field: A force field object to which the new parameters are
                    added.
:type force_field:  :class:`~ost.mol.mm.Forcefield`
:param out_dir: Output directory as created with :meth:`Run`. Must contain
                files ``frcmod`` and ``out.mpdb``.
:type out_dir:  :class:`str`
:return: The updated force field (same as `force_field`).
:rtype:  :class:`~ost.mol.mm.Forcefield`

Definition at line 461 of file antechamber.py.

◆ AddIon()

AddIon (   force_field,
  res_name,
  atom_name,
  atom_mass,
  atom_charge,
  lj_sigma,
  lj_epsilon 
)
Add a single atom as an ion to a force field.

Since Antechamber cannot deal with ions, you can add simple ones easily with
this function. This adds a :class:`~ost.mol.mm.BuildingBlock` to `force_field`
for the given residue name containing a single atom. The atom will have a type
with the same name as the atom name and the given mass, charge and non-bonded
(LJ) interaction parameters.

:param force_field: A force field object to which the ion is added.
:type force_field:  :class:`~ost.mol.mm.Forcefield`
:param res_name: Residue name for the ion to be added.
:type res_name:  :class:`str`
:param atom_name: Atom name which is also used as atom type name.
:type atom_name:  :class:`str`
:param atom_mass: Mass of the atom.
:type atom_mass:  :class:`float`
:param atom_charge: Charge of the atom.
:type atom_charge:  :class:`float`
:param lj_sigma: The sigma parameter for the non-bonded LJ interaction.
:type lj_sigma:  :class:`float` in nm
:param lj_epsilon: The sigma parameter for the non-bonded LJ interaction.
:type lj_epsilon:  :class:`float` in kJ/mol

Definition at line 478 of file antechamber.py.

◆ RunAntechamber()

RunAntechamber (   res_name,
  filename,
  format = 'ccif',
  amberhome = None,
  base_out_dir = None 
)
Run Antechamber to guess force field parameters for a given residue name.

This requires an installation of AmberTools (tested with AmberTools15) with
binaries ``antechamber`` and ``parmchk2``.

This has the same restrictions as Antechamber itself and we assume the input
to be uncharged. Note that Antechamber cannot deal with metal ions and other
non-organic elements.

The results are stored in a separate folder named `res_name` within
`base_out_dir` (if given, otherwise the current working directory). The main
output files are ``frcmod`` and ``out.mpdb``. The former contains force field
parameters and masses. The latter maps atom names to atom types and defines
the partial charges. The same output could be obtained as follows:

.. code-block:: console

   $ antechamber -i <FILENAME> -fi <FORMAT> -bk '<RES_NAME>' -o out.mol2 -fo mol2 -c bcc -pf yes
   $ parmchk2 -i out.mol2 -f mol2 -o frcmod -a Y
   $ antechamber -i out.mol2 -fi mol2 -o out.mpdb -fo mpdb -pf yes

The force field parameters can be manually modified if needed. It can for
instance happen that some parameters cannot be identified. Those lines will
be marked with a comment "ATTN, need revision".

:param res_name: Residue name for which we desire force field parameters.
:type res_name:  :class:`str`
:param filename: Path to a file which contains the necessary information for
                 `res_name`. It must include all hydrogens.
:type filename:  :class:`str`
:param format: Format of file given with `filename`. Common formats are 'ccif'
               for PDB's component dictionary or 'pdb' for a PDB file
               containing the desired residue with all hydrogens.
:type format:  :class:`str`
:param amberhome: Base path of your AmberTools installation. If not None,
                  we look for ``antechamber`` and ``parmchk2`` within
                  ``AMBERHOME/bin`` additionally to the system's ``PATH``.
:type amberhome:  :class:`str`
:param base_out_dir: Path to a base path, where the output will be stored.
                     If None, the current working directory is used.
:type base_out_dir:  :class:`str`

Definition at line 293 of file antechamber.py.