Skip to content

Commit

Permalink
Add missing file changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Aaron Virshup authored and Aaron Virshup committed Sep 28, 2016
1 parent e6243e5 commit 6de809b
Show file tree
Hide file tree
Showing 2 changed files with 156 additions and 0 deletions.
155 changes: 155 additions & 0 deletions docs/features.rst
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
1 change: 1 addition & 0 deletions moldesign/_static_data/pint_atomic_units.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ ps = picosecond = 1.0 * piscosecond
amu = 1.0 * atomic_mass_units
ang = 1.0 * angstrom
eV = electron_volt
debye = 0.393430307 * elementary_charge * bohr

0 comments on commit 6de809b

Please sign in to comment.