API

Below is an outline of the API for openff-qcsubmit. See the examples for details on how to use these objects.

Warning

The openff-qcsubmit package is still pre-alpha, so the API is still in flux.

Datasets

BasicDataset

The general QCFractal dataset class which contains all of the molecules and information about them prior to submission.

DatasetEntry

A basic data class to construct the datasets which holds any information about the molecule and options used in the qcarchive calculation.

OptimizationDataset

An optimisation dataset class which handles submission of settings differently from the basic dataset, and creates optimization datasets in the public or local qcarchive instance.

OptimizationEntry

An optimization dataset specific entry class which can handle constraints.

TorsiondriveDataset

An torsiondrive dataset class which handles submission of settings differently from the basic dataset, and creates torsiondrive datasets in the public or local qcarchive instance.

TorsionDriveEntry

A Torsiondrive dataset specific class which can check dihedral indices and store torsiondrive specific settings with built in validation.

FilterEntry

A basic data class that contains information on components run in a workflow and the associated molecules which were removed by it.

Factories

BaseDatasetFactory

The Base factory which all other dataset factories should inherit from.

BasicDatasetFactory

Basic dataset generator factory used to build work flows using workflow components before executing them to generate a dataset.

OptimizationDatasetFactory

This factory produces OptimisationDatasets which include settings associated with geometric which is used to run the optimisation.

TorsiondriveDatasetFactory

This factory produces TorsiondriveDatasets which include settings associated with geometric which is used to run the optimisation.

Procedures

GeometricProcedure

This is a settings class controlling the various runtime options that can be used when running geometric.

Constraints

Results

BasicResult

A class which stores a reference to, and allows the retrieval of, data from a single result record stored in a QCFractal instance.

BasicResultCollection

A class which stores a reference to, and allows the retrieval of, data from a single result record stored in a QCFractal instance.

OptimizationResult

A class which stores a reference to, and allows the retrieval of, data from a single optimization result record stored in a QCFractal instance.

OptimizationResultCollection

A class which stores a reference to, and allows the retrieval of, data from a single optimization result record stored in a QCFractal instance.

TorsionDriveResult

A class which stores a reference to, and allows the retrieval of, data from a single torsion drive result record stored in a QCFractal instance.

TorsionDriveResultCollection

A class which stores a reference to, and allows the retrieval of, data from a single torsion drive result record stored in a QCFractal instance.

Filters

ResultFilter

The base class for a filter which will retain selection of QC records based on a specific criterion.

CMILESResultFilter

The base class for a filter which will retain selection of QC records based solely on the CMILES ( / InChI key) associated with the record itself, and not the actual record.

SMILESFilter

A filter which will remove or retain records which were computed for molecules described by specific SMILES patterns.

SMARTSFilter

A filter which will remove or retain records which were computed for molecules which match specific SMARTS patterns.

ChargeFilter

A filter which will only retain records if their formal charge matches allowed values or is not in the exclude list.

ElementFilter

A filter which will only retain records that contain the requested elements.

HydrogenBondFilter

A filter which will remove or retain records which were computed for molecules which match specific SMARTS patterns.

ConnectivityFilter

A filter which will remove records whose corresponding molecules changed their connectivity during the computation, e.g.

RecordStatusFilter

A filter which will only retain records if their status matches a specified value.

UnperceivableStereoFilter

A filter which will drop any records computed for molecules whose stereochemistry cannot be perceived from the associated 3D conformers when re-loading the molecule from an SDF file using the OpenFF toolkit.

LowestEnergyFilter

Filter the results collection and only keep the lowest energy entries.

ConformerRMSDFilter

A filter which will retain up to a maximum number of conformers for each unique molecule (as determined by an entries InChI key) which are distinct to within a specified RMSD tolerance.

MinimumConformersFilter

A filter that will only retain molecules that have at least a specified number of conformers present in the result collection.

Caching

Workflow Components

CustomWorkflowComponent

This is an abstract base class which should be used to create all workflow components, following the design of this class should allow users to easily create new work flow components with out needing to change any of the dataset factory code.

ToolkitValidator

A pydantic mixin class that adds toolkit settings and validation along with provenance information.

Conformer Generation

StandardConformerGenerator

Standard conformer generator using the OFFTK and the back end toolkits.

Filters

ChargeFilter

Filter molecules if their formal charge is not in the charges_to_include list or is in the charges_to_exclude list.

CoverageFilter

Filters molecules based on the requested force field parameter ids.

ElementFilter

Filter the molecules based on a list of allowed elements.

MolecularWeightFilter

Filters molecules based on the minimum and maximum allowed molecular weights.

RMSDCutoffConformerFilter

Prunes conformers from a molecule that are less than a specified RMSD from all other conformers

RotorFilter

Filters molecules based on the maximum and or minimum allowed number of rotatable bonds.

SmartsFilter

Filters molecules based on if they contain certain smarts substructures.

ScanFilter

A filter to remove/include molecules from the workflow who have scans targeting the specified SMARTS.

Fragmentation

PfizerFragmenter

The openff.fragmenter implementation of the Pfizer fragmenation method as described here (doi: 10.1021/acs.jcim.9b00373)

WBOFragmenter

Fragment molecules using the WBO fragmenter class of the fragmenter module.

State Enumeration

EnumerateProtomers

Enumerate the formal charges of the input molecule using the backend toolkits through the OFFTK.

EnumerateStereoisomers

Enumerate the stereo centers and bonds of a molecule using the backend toolkits through the OFFTK, only well defined molecules are returned by this component, this is check via a OFFTK round trip.

EnumerateTautomers

Enumerate the tautomers of a molecule using the backend toolkits through the OFFTK.

ScanEnumerator

This module will tag any matching substructures for scanning, useful for torsiondrive datasets.

Utils

ComponentResult

Class to contain molecules after the execution of a workflow component this automatically applies de-duplication to the molecules.

SingleTorsion

A class used to mark torsions that will be driven for torsiondrive datasets.

DoubleTorsion

A class used to mark coupled torsions which should be scanned.

ImproperTorsion

A class to keep track of improper torsions being scanned.

TorsionIndexer

A class to keep track of the torsions highlighted for scanning, with methods for combining and deduplication.

ImproperScan

A class to hold information on Improper scans to be computed.

Scan1D

A class to hold information on 1D scans to be computed.

Scan2D

A class to hold information on 2D scans to be computed.

TorsionIndexer

A class to keep track of the torsions highlighted for scanning, with methods for combining and deduplication.

Common Structures

DatasetConfig

The basic configurations for all datasets.

ResultsConfig

A basic config class for results structures.

ComponentProperties

The workflow properties class which controls if the component can be used in multiprocessing or if the component produces duplicates.

TDSettings

A replacement of the TDKeywords class in the QCFractal which drops the dihedrals field as this is moved up the model.

PCMSettings

A class to handle PCM settings which can be used with PSi4.

QCSpec

QCSpecificationHandler

A mixin class for handling the QCSpecification

IndexCleaner

This class offers the ability to clean a molecule index that already has a numeric tag useful for datasets and results.

Metadata

A general metadata class which is required to be filled in before submitting a dataset to the qcarchive.

MoleculeAttributes

A class to hold and validate the molecule attributes associated with a QCArchive entry, All attributes are required to be entered into a dataset.

SCFProperties

The type of SCF property that should be extracted from a single point calculation.

CommonBase

A common base structure which the dataset and factory classes derive from.

Exceptions

QCSubmitException

Base QCSubmit exception, should always use the appropriate subclass of this exception.

UnsupportedFiletypeError

The file type requested is not supported.

InvalidWorkflowComponentError

The workflow component is invalid.

MissingWorkflowComponentError

The requested workflow component could not be found.

ComponentRegisterError

A component with this name has already been registered with QCSubmit.

ComponentRequirementError

The requested workflow component could not be added due to missing requirements.

InvalidClientError

The requested client address could not be contacted.

DriverError

The requested driver is not valid.

DatasetInputError

The information entered into the dataset is not valid or missing so component.

MissingBasisCoverageError

The basis set selected does not contain element coverage for all atoms in the dataset.

DihedralConnectionError

The tagged dihedral is not connected on this molecule and should not be driven.

LinearTorsionError

The tagged dihedral involves a linear bond which should not be driven.

MolecularComplexError

The molecule is a complex of two or more units.

ConstraintError

DatasetCombinationError

The types of dataset are not the same and can not be combined.

QCSpecificationError

The QCSpecification combination of method basis and program is not valid.

AngleConnectionError

The tagged angle is not connected in this molecule and the constraint or grid opt could be incorrect.

BondConnectionError

The tagged bond is not connected in this molecule and the constraint or grid opt could be incorrect.

AtomConnectionError

A general connection error raised when a general connection check fails.

PCMSettingError

A general error raised when an invalid PCM setting is entered.

InvalidDatasetError

The dataset can not be registered as it is not valid sub class of the Dataset

DatasetRegisterError

A dataset of this type has already been registered with qcsubmit

RecordTypeError

A record was not of the expected type (e.g.