-
Notifications
You must be signed in to change notification settings - Fork 37
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Aaron Virshup
authored and
Aaron Virshup
committed
Sep 28, 2016
1 parent
e6243e5
commit 6de809b
Showing
2 changed files
with
156 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
Molecular Design Toolkit Features | ||
================================= | ||
|
||
.. contents:: | ||
:depth: 5 | ||
|
||
|
||
|
||
Simulation methods | ||
------------------ | ||
|
||
Energy models | ||
^^^^^^^^^^^^^ | ||
|
||
**Methods** | ||
|
||
- :meth:`Molecule.calculate` Calculate molecular properties using the assigned energy model | ||
|
||
- :meth:`Molecule.minimize` Perform an energy minimization using the assigned energy model | ||
|
||
**Classical** | ||
|
||
- :class:`models.Forcefield` Generic Forcefield energy model (automatically chosen implementation) | ||
|
||
- :class:`models.OpenMMEnergyModel` OpenMM energy kernel for Amber/CHARMM-like forcefields | ||
|
||
- :class:`models.SanderEnergyModel` Sander energy kernel (from AmberTools) for Amber/CHARMM-like forcefields | ||
|
||
- :class:`models.Spring` A single harmonic bond 2 atoms (for testing and toy models) | ||
|
||
- :class:`models.HarmonicOscillator` A 1-D Harmonic oscillator centered at x=0 (for testing and toy models) | ||
|
||
**Quantum** | ||
|
||
- :class:`models.RHF` Generic restricted Hartree-Fock (automatically chosen implementation) | ||
|
||
- :class:`models.DFT` Generic density functional theories (automatically chosen implementation) | ||
|
||
- :class:`models.Semiempirical` Generic semiempirical theories (automatically chosen implementation) | ||
|
||
- :class:`models.PySCF` PySCF *ab initio* QM energy kernel, includes implementations for a large number of quantum energy models, including RHF, DFT, CASCI, CASSCF, MP2, and coupled cluster | ||
|
||
- :class:`models.SQM` SQM semi-empirical energy kernel (from AmberTools), includes implementations for a large number of semiempirical models, including MNDO, AM1, PM3, PM6, DFTB | ||
|
||
|
||
Integrators | ||
^^^^^^^^^^^ | ||
|
||
- :class:`integrators.VelocityVerlet` Generic Velocity Verlet dynamics (automatically chosen implementation) | ||
|
||
- :class:`integrators.Langevin` Generic Langevin type (automatically chosen implementation) | ||
|
||
- :class:`integrators.OpenMMVerlet` Velocity Verlet dynamics for use with OpenMM energy models | ||
|
||
- :class:`integrators.OpenMMLangevin` Velocity Langevin dynamics for use with OpenMM energy models | ||
|
||
- :class:`integrators.SurfaceHopping` Multi-state surface hopping dynamics using fewest switched. Implementation: internal. | ||
|
||
|
||
Interactive Widgets | ||
------------------- | ||
|
||
- :class:`viewer.Configurator` Automatically generates user interfaces for configuring simulations | ||
|
||
- :class:`viewer.GeometryViewer` 3D molecular viewer | ||
|
||
- :class:`viewer.ChemicalGraphViewer` 2D molecular viewer | ||
|
||
- :class:`widgets.OrbitalViewer` 3D molecular orbital viewer | ||
|
||
- :class:`widgets.BondSelector` widget for building lists of atoms and/or bonds | ||
|
||
- :class:`widgets.ResidueSelector` widget for building lists of atoms and/or residues | ||
|
||
- :class:`widgets.GeometryBuilder` widget for manipulating internal coordinates | ||
|
||
- :class:`widgets.Symmetrizer` widget for displaying and manipulating molecular symmetry groups | ||
|
||
- :class:`widgets.ParameterizationDisplay` 3D display of issues when assigning forcefield parameters | ||
|
||
|
||
Data analysis | ||
------------- | ||
|
||
Simulation results are stored in numpy arrays with an explicit unit system based on ``pint`` for easy analysis and comparison. A few are shown here as examples: | ||
|
||
**Static properties** | ||
|
||
- :meth:`Molecule.potential_energy`, :meth:`Molecule.forces`, :meth:`Molecule.dipole_moment`, :meth:`Molecule.wfn` Molecular properties calcualted by energy models: the potential energy, force array, dipole moment vector, and electronic wavefunction, respectively. | ||
|
||
- :class:`orbitals.ElectronWfn` A data structure storic electronic wavefunction information, as calculated by a quantum energy model. | ||
|
||
- :meth:`ElectronWfn.aobasis.fock` :meth:`ElectronWfn.aobasis.overlaps` The Fock and overlap matrices in the AO basis | ||
|
||
- :meth:`ElectronWfn.canonical.fock` :meth:`ElectronWfn.canonical.overlaps` The Fock and overlap matrices in the canonical orbital basis | ||
|
||
- :meth:`ElectronWfn.canonical.coeffs` The canonical orbital coefficients in the AO basis | ||
|
||
**Trajectory properties** | ||
|
||
- :class:`Trajectory` A data structure storing a series of molecular structures with associated properties | ||
|
||
- :meth:`Trajectory.rmsd` Calculate a timeseries of RMSD values over the course of a trajectory | ||
|
||
- :meth:`Trajectory.distance`, :meth:`Trajectory.angle`, :meth:`Trajectory.dihedral` Return a timeseries of distances, angles, or dihedral angles over the course of a trajectory | ||
|
||
- :meth:`Trajectory.time` :meth:`Trajectory.potential_energy` :meth:`Trajectory.kinetic_temperature` ``...`` - Return timeseries of times, energies, temperatures, etc. over the course of a trajectory | ||
|
||
|
||
Conversions | ||
----------- | ||
|
||
**Files and databases** | ||
|
||
- :meth:`read`, :meth:`write` read/write molecular file formats. Supports PDB, mmCIF, SDF, XYZ, MOL2, and pickled objects. Implementations: OpenBabel, BioPython, or internal. | ||
|
||
- :meth:`from_smiles` Convert a SMILES string into an MDT molecule with a 3D structure. Implementation: OpenBabel. | ||
|
||
- :meth:`from_name` Convert an IUPAC chemical name into an MDT molecule with a 3D structure. Implementation: Opsin. | ||
|
||
- :meth:`from_pdb` Download and create a molecule object from a PDB code. Implementation: BioPython. | ||
|
||
|
||
**Python objects** | ||
|
||
MDT molecules can also be converted into objects for a variety of other Python chemistry libraries: | ||
|
||
- :meth:`interfaces.mol_to_pybel`, :meth:`interfaces.pybel_to_mol` Convert an MDT molecule to/from a `pybel` (i.e. OpenBabel) molecule object. | ||
|
||
- :meth:`interfaces.mol_to_pyscf`, :meth:`interfaces.pyscf_to_mol` Convert an MDT molecule to/from a PySCF molecule object. | ||
|
||
- :meth:`interfaces.topology_to_mol`, :meth:`interfaces.mol_to_topology` Convert an OpenMM topology object to/from an MDT molecule | ||
|
||
|
||
Tools | ||
----- | ||
|
||
**Topology manipulation** | ||
|
||
- :meth:`add_hydrogen` Saturate a molecule's valence with hydrogens. Implementation: OpenBabel. | ||
|
||
- :meth:`guess_bond_orders` Assign bond orders based on geometry and/or topology. Implementation: OpenBabel. | ||
|
||
- :meth:`mutate_residues` Mutate DNA bases and amino acid residues. Implementation: PDBFixer. | ||
|
||
- :meth:`add_water_box` Add water box with optional ions. Implementation: PDBFixer. | ||
|
||
|
||
**Forcefields** | ||
|
||
- :meth:`assign_forcefield` Returns a new molecule with forcefield assignments and any missing atoms. Implementation: AmberTools/tLeap. | ||
|
||
- :meth:`parameterize` Assign forcefield parameters to a molecule. Implementation: Ambertools/antechamber. | ||
|
||
- :meth:`calc_am1_bcc_charges` :meth:`calc_gasteiger_charges` :meth:`calc_esp_charges` Calculate partial charges for use with a forcefield. Implementation: Ambertools/antechamber and Ambertools/SQM |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters