2. Molecular Design Toolkit Features¶
Contents
2.1. Molecular Mechanics¶
models.ForcefieldGeneric Forcefield energy model (automatically chosen implementation)models.GAFFAmber force field for small organic moleculesmodels.OpenMMEnergyModelOpenMM energy kernel for Amber/CHARMM-like forcefieldsmodels.SanderEnergyModelSander energy kernel (from AmberTools) for Amber/CHARMM-like forcefieldsmodels.SpringA single harmonic bond 2 atoms (for testing and toy models)models.HarmonicOscillatorA 1-D Harmonic oscillator centered at x=0 (for testing and toy models)
2.2. Quantum Chemistry¶
models.RHFRestricted Hartree-Fock (automatically chosen implementation)models.DFTDensity functional theories (automatically chosen implementation)models.CASSCFComplete-active space MCSCF (automatically chosen implementation)models.SemiempiricalGeneric semiempirical theories (automatically chosen implementation)models.PySCFPySCF ab initio QM energy kernel, includes implementations for a large number of quantum energy models, including RHF, DFT, CASCI, CASSCF, MP2, and coupled clustermodels.SQMSQM semi-empirical energy kernel (from AmberTools), includes implementations for a large number of semiempirical models, including MNDO, AM1, PM3, PM6, DFTB
2.2.1. Molecular Dynamics¶
integrators.VelocityVerletGeneric Velocity Verlet dynamics (automatically chosen implementation)integrators.LangevinGeneric Langevin type (automatically chosen implementation)integrators.OpenMMVerletVelocity Verlet dynamics for use with OpenMM energy modelsintegrators.OpenMMLangevinVelocity Langevin dynamics for use with OpenMM energy modelsintegrators.SurfaceHoppingMulti-state surface hopping dynamics using fewest switched. Implementation: internal.
2.3. Interactive visualization¶
viewer.ConfiguratorAutomatically generates user interfaces for configuring simulationsviewer.GeometryViewer3D molecular viewerviewer.ChemicalGraphViewer2D molecular viewerwidgets.OrbitalViewer3D molecular orbital viewerwidgets.BondSelectorwidget for building lists of atoms and/or bondswidgets.ResidueSelectorwidget for building lists of atoms and/or residueswidgets.GeometryBuilderwidget for manipulating internal coordinateswidgets.Symmetrizerwidget for displaying and manipulating molecular symmetry groupswidgets.ParameterizationDisplay3D display of issues when assigning forcefield parameters
2.4. 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
Molecule.potential_energy(),Molecule.forces(),Molecule.dipole_moment(),Molecule.wfn()Molecular properties calcualted by energy models: the potential energy, force array, dipole moment vector, and electronic wavefunction, respectively.orbitals.ElectronWfnA data structure storic electronic wavefunction information, as calculated by a quantum energy model.ElectronWfn.aobasis.fock()ElectronWfn.aobasis.overlaps()The Fock and overlap matrices in the AO basisElectronWfn.canonical.fock()ElectronWfn.canonical.overlaps()The Fock and overlap matrices in the canonical orbital basisElectronWfn.canonical.coeffs()The canonical orbital coefficients in the AO basis
Trajectory properties
TrajectoryA data structure storing a series of molecular structures with associated propertiesTrajectory.rmsd()Calculate a timeseries of RMSD values over the course of a trajectoryTrajectory.distance(),Trajectory.angle(),Trajectory.dihedral()Return a timeseries of distances, angles, or dihedral angles over the course of a trajectoryTrajectory.time()Trajectory.potential_energy()Trajectory.kinetic_temperature()...- Return timeseries of times, energies, temperatures, etc. over the course of a trajectory
2.5. Interfaces¶
Files and databases
read(),write()read/write molecular file formats. Supports PDB, mmCIF, SDF, XYZ, MOL2, and pickled objects. Implementations: OpenBabel, BioPython, or internal.from_smiles()Convert a SMILES string into an MDT molecule with a 3D structure. Implementation: OpenBabel.from_name()Convert an IUPAC chemical name into an MDT molecule with a 3D structure. Implementation: Opsin.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:
interfaces.mol_to_pybel(),interfaces.pybel_to_mol()Convert an MDT molecule to/from a pybel (i.e. OpenBabel) molecule object.interfaces.mol_to_pyscf(),interfaces.pyscf_to_mol()Convert an MDT molecule to/from a PySCF molecule object.interfaces.topology_to_mol(),interfaces.mol_to_topology()Convert an OpenMM topology object to/from an MDT molecule
2.6. Tools¶
Topology manipulation
add_hydrogen()Saturate a molecule’s valence with hydrogens. Implementation: OpenBabel.guess_bond_orders()Assign bond orders based on geometry and/or topology. Implementation: OpenBabel.mutate_residues()Mutate DNA bases and amino acid residues. Implementation: PDBFixer.add_water_box()Add water box with optional ions. Implementation: PDBFixer.
Forcefields
assign_forcefield()Returns a new molecule with forcefield assignments and any missing atoms. Implementation: AmberTools/tLeap.parameterize()Assign forcefield parameters to a molecule. Implementation: Ambertools/antechamber.calc_am1_bcc_charges()calc_gasteiger_charges()calc_esp_charges()Calculate partial charges for use with a forcefield. Implementation: Ambertools/antechamber and Ambertools/SQM