Conformer Search Settings
ConformerProperties
pydantic-model
Bases: BaseModel
Descriptors of a conformer's properties.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
solvent_accessible_surface_area
|
average SASA (Ų) |
required | |
polar_solvent_accessible_surface_area
|
average SASA for non-C/H elements (Ų) |
required | |
radius_of_gyration
|
radius of gyration (Å) |
required |
Show JSON schema:
{
"description": "Descriptors of a conformer's properties.\n\n:param solvent_accessible_surface_area: average SASA (\u00c5\u00b2)\n:param polar_solvent_accessible_surface_area: average SASA for non-C/H elements (\u00c5\u00b2)\n:param radius_of_gyration: radius of gyration (\u00c5)",
"properties": {
"solvent_accessible_surface_area": {
"exclusiveMinimum": 0,
"title": "Solvent Accessible Surface Area",
"type": "number"
},
"polar_solvent_accessible_surface_area": {
"minimum": 0,
"title": "Polar Solvent Accessible Surface Area",
"type": "number"
},
"radius_of_gyration": {
"exclusiveMinimum": 0,
"title": "Radius Of Gyration",
"type": "number"
}
},
"required": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration"
],
"title": "ConformerProperties",
"type": "object"
}
Fields:
-
solvent_accessible_surface_area(PositiveFloat) -
polar_solvent_accessible_surface_area(NonNegativeFloat) -
radius_of_gyration(PositiveFloat)
ConformerClusteringDescriptor
Bases: LowercaseStrEnum
Potential descriptors to employ in conformer clustering.
ConformerClusteringSettings
pydantic-model
Bases: BaseModel
Settings for clustering conformers based on their three-dimensional properties.
The properties used for clustering by default are: - Solvent-accessible surface area - Polar solvent-accessible surface area - Radius of gyration - Plane of best fit - Normalized principal moment ratios 1 and 2
Rowan uses k-means clustering to identify representative conformers. This loosely follows Wilcken and co-workers (10.1007/s10822-020-00337-7).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
num_clusters
|
number of clusters to include |
required | |
conformers_per_cluster
|
number of compounds to pick from each cluster |
required |
Show JSON schema:
{
"$defs": {
"ConformerClusteringDescriptor": {
"description": "Potential descriptors to employ in conformer clustering.",
"enum": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"title": "ConformerClusteringDescriptor",
"type": "string"
}
},
"description": "Settings for clustering conformers based on their three-dimensional properties.\n\nThe properties used for clustering by default are:\n- Solvent-accessible surface area\n- Polar solvent-accessible surface area\n- Radius of gyration\n- Plane of best fit\n- Normalized principal moment ratios 1 and 2\n\nRowan uses k-means clustering to identify representative conformers.\nThis loosely follows Wilcken and co-workers (10.1007/s10822-020-00337-7).\n\n:param num_clusters: number of clusters to include\n:param conformers_per_cluster: number of compounds to pick from each cluster",
"properties": {
"descriptors": {
"default": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"items": {
"$ref": "#/$defs/ConformerClusteringDescriptor"
},
"title": "Descriptors",
"type": "array"
},
"num_clusters": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Clusters",
"type": "integer"
},
"conformers_per_cluster": {
"default": 3,
"exclusiveMinimum": 0,
"title": "Conformers Per Cluster",
"type": "integer"
}
},
"title": "ConformerClusteringSettings",
"type": "object"
}
Fields:
-
descriptors(list[ConformerClusteringDescriptor]) -
num_clusters(PositiveInt) -
conformers_per_cluster(PositiveInt)
ConformerGenSettings
pydantic-model
Bases: BaseModel
Conformer generation settings.
Conformers are generated and an initial screening is performed to remove duplicates and high-energy conformers.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
screening
|
post-generation screening settings |
required | |
constraints
|
constraints for conformer generation |
required | |
nci
|
add a constraining potential for non-covalent interactions |
required | |
max_confs
|
maximum number of conformers to keep |
required |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
}
},
"description": "Conformer generation settings.\n\nConformers are generated and an initial screening is performed to remove duplicates and high-energy conformers.\n\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation\n:param nci: add a constraining potential for non-covalent interactions\n:param max_confs: maximum number of conformers to keep",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
}
},
"title": "ConformerGenSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None)
ETKDGSettings
pydantic-model
Bases: ConformerGenSettings
Settings for ETKDG conformer generation.
Inherited:
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
screening
|
post-generation screening settings |
required | |
constraints
|
constraints for conformer generation |
required | |
nci
|
add a constraining potential for non-covalent interactions (not supported in ETKDG) |
required | |
max_confs
|
maximum number of conformers to keep New: |
required | |
num_initial_confs
|
number of initial conformers to generate |
required | |
num_confs_considered
|
number of conformers to consider for optimization |
required | |
num_confs_taken
|
number of final conformers to take |
required | |
max_mmff_energy
|
MMFF energy cutoff |
required | |
max_mmff_iterations
|
MMFF optimization iterations |
required |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
}
},
"description": "Settings for ETKDG conformer generation.\n\nInherited:\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation\n:param nci: add a constraining potential for non-covalent interactions (not supported in ETKDG)\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param num_initial_confs: number of initial conformers to generate\n:param num_confs_considered: number of conformers to consider for optimization\n:param num_confs_taken: number of final conformers to take\n:param max_mmff_energy: MMFF energy cutoff\n:param max_mmff_iterations: MMFF optimization iterations",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"num_confs_considered": {
"default": 100,
"title": "Num Confs Considered",
"type": "integer"
},
"max_mmff_iterations": {
"default": 500,
"title": "Max Mmff Iterations",
"type": "integer"
},
"max_mmff_energy": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 30,
"title": "Max Mmff Energy"
},
"settings_type": {
"const": "etkdg",
"default": "etkdg",
"title": "Settings Type",
"type": "string"
}
},
"title": "ETKDGSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
num_initial_confs(int) -
num_confs_considered(int) -
max_mmff_iterations(int) -
max_mmff_energy(float | None) -
settings_type(Literal['etkdg'])
Validators:
-
check_constraints→constraints -
check_nci→nci
iMTDSettings
pydantic-model
Bases: ConformerGenSettings, ABC
Settings for iMTD style conformer generation.
See https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/choose_settings.f90#L202 and https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/confparse.f90#L825 for how quick, superquick, and megaquick are defined.
See build_imtd_setings(mode) for sensible defaults.
Inherited:
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
screening
|
post-generation screening settings (not used) |
required | |
constraints
|
constraints to add |
required | |
nci
|
add an ellipsoide potential around the input structure |
required | |
max_confs
|
maximum number of conformers to keep New: |
required | |
mtd_method
|
method for the metadynamics |
required | |
mtd_runtype
|
algorithm used |
required | |
speed
|
speed of the calculations (CREST specific setting) |
required | |
reopt
|
re-optimize conformers (corrects for the lack of rotamer metadynamics and GC) |
required | |
free_energy_weights
|
calculate frequencies and re-weight based on free energies |
required | |
energy_window
|
energy window used, in kcal/mol (CREST specific setting). if set, overrides default from speed |
required | |
solvent_settings
|
solvent to use, if any |
required |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\n:param solvent: solvent to use\n:param model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"iMTDSpeeds": {
"enum": [
"megaquick",
"superquick",
"quick",
"normal",
"extensive"
],
"title": "iMTDSpeeds",
"type": "string"
}
},
"description": "Settings for iMTD style conformer generation.\n\nSee https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/choose_settings.f90#L202\nand https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/confparse.f90#L825\nfor how quick, superquick, and megaquick are defined.\n\nSee build_imtd_setings(mode) for sensible defaults.\n\nInherited:\n:param screening: post-generation screening settings (not used)\n:param constraints: constraints to add\n:param nci: add an ellipsoide potential around the input structure\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param mtd_method: method for the metadynamics\n:param mtd_runtype: algorithm used\n:param speed: speed of the calculations (CREST specific setting)\n:param reopt: re-optimize conformers (corrects for the lack of rotamer metadynamics and GC)\n:param free_energy_weights: calculate frequencies and re-weight based on free energies\n:param energy_window: energy window used, in kcal/mol (CREST specific setting). if set, overrides default from speed\n:param solvent_settings: solvent to use, if any",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"settings_type": {
"const": "imtd",
"default": "imtd",
"title": "Settings Type",
"type": "string"
},
"mtd_method": {
"default": "gfn_ff",
"enum": [
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb"
],
"title": "Mtd Method",
"type": "string"
},
"mtd_runtype": {
"default": "imtd-gc",
"title": "Mtd Runtype",
"type": "string"
},
"speed": {
"$ref": "#/$defs/iMTDSpeeds",
"default": "quick"
},
"reopt": {
"default": false,
"title": "Reopt",
"type": "boolean"
},
"free_energy_weights": {
"default": false,
"title": "Free Energy Weights",
"type": "boolean"
},
"energy_window": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Energy Window"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "iMTDSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
settings_type(Literal['imtd']) -
mtd_method(XTBMethod) -
mtd_runtype(str) -
speed(iMTDSpeeds) -
reopt(bool) -
free_energy_weights(bool) -
energy_window(PositiveFloat | None) -
solvent_settings(SolventSettings | None)
Validators:
-
validate_and_build_imtdgc_settings
from_mode
classmethod
Settings for iMTD style conformer generation.
RECKLESS: - GFN-FF//MTD(GFN-FF) - Megaquick - No GC - No rotamer metadynamics - Energy window = 5.0 - Run scaling factor = 0.5 - 6 MTD runs RAPID: - GFN0//MTD(GFN-FF) - Superquick - No GC - No rotamer metadynamics - Energy window = 5.0 - Run scaling factor = 0.5 - 6 MTD runs CAREFUL: - GFN2//MTD(GFN-FF) - Quick - GC (for iMTD-GC) - Rotamer metadynamics (for iMTD-GC) - Energy window = 5.0 - Run scaling factor = 0.5 - 6 MTD runs METICULOUS: - GFN2//MTD(GFN2) - "Normal" - GC (for iMTD-GC) - Rotamer metadynamics (for iMTD-GC) - Energy window = 6.0 - Run scaling factor = 1 - 14 MTD runs (2 with extreme values)
LyrebirdSettings
pydantic-model
Bases: ConformerGenSettings
Settings for Lyrebird-based conformer generation.
Inherited:
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
screening
|
post-generation screening settings |
required | |
constraints
|
constraints for conformer generation (not supported) |
required | |
nci
|
add a constraining potential for non-covalent interactions (not supported) |
required | |
max_confs
|
maximum number of conformers to keep New: |
required | |
num_initial_confs
|
number of initial conformers to generate |
required |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
}
},
"description": "Settings for Lyrebird-based conformer generation.\n\nInherited:\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation (not supported)\n:param nci: add a constraining potential for non-covalent interactions (not supported)\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param num_initial_confs: number of initial conformers to generate",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"settings_type": {
"const": "lyrebird",
"default": "lyrebird",
"title": "Settings Type",
"type": "string"
}
},
"title": "LyrebirdSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
num_initial_confs(int) -
settings_type(Literal['lyrebird'])
Validators:
-
check_constraints→constraints -
check_nci→nci
MonteCarloMultipleMinimumSettings
pydantic-model
Bases: ConformerGenSettings
Settings for Monte-Carlo-multiple-minimum-based conformer generation. Default values recommended by Nick Casetti.
Inherited:
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
screening
|
post-generation screening settings |
required | |
constraints
|
constraints for conformer generation (not supported) |
required | |
nci
|
add a constraining potential for non-covalent interactions (not supported) |
required | |
max_confs
|
maximum number of conformers to keep New: |
required | |
num_monte_carlo_iterations
|
number of Monte Carlo iterations to run |
required | |
rmsd_threshold
|
threshold to determine if MCMM output structures are identical |
required | |
energy_window
|
maximum energy window above the minimum-energy conformer above which to retain (kcal/mol) |
required | |
monte_carlo_settings
|
energy computation method for Monte-Carlo steps |
required |
Show JSON schema:
{
"$defs": {
"BasisSet": {
"description": "Atomic orbital basis set.\n\n:param name: basis set name (e.g., def2-SVP, cc-pVDZ)\n:param overrides: element or atom-specific basis set overrides\n:param cutoff_threshold: basis function screening threshold",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"overrides": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/BasisSetOverride"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"title": "Overrides"
},
"cutoff_threshold": {
"default": 1e-10,
"exclusiveMinimum": 0,
"title": "Cutoff Threshold",
"type": "number"
}
},
"required": [
"name"
],
"title": "BasisSet",
"type": "object"
},
"BasisSetOverride": {
"description": "Basis set override for specific atoms or elements.\n\n:param name: basis set name for override\n:param atomic_numbers: atomic numbers to override (mutually exclusive with atoms)\n:param atoms: 1-indexed atom indices to override (mutually exclusive with atomic_numbers)",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"atomic_numbers": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atomic Numbers"
},
"atoms": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atoms"
}
},
"required": [
"name"
],
"title": "BasisSetOverride",
"type": "object"
},
"ComputeSettings": {
"description": "Hardware compute settings.\n\n:param requested_compute_type: requested hardware type\n:param compute_type_used: actual hardware type used (set after execution)",
"properties": {
"requested_compute_type": {
"$ref": "#/$defs/ComputeType",
"default": "cpu"
},
"compute_type_used": {
"anyOf": [
{
"$ref": "#/$defs/ComputeType"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "ComputeSettings",
"type": "object"
},
"ComputeType": {
"description": "Hardware compute type.",
"enum": [
"cpu",
"gpu",
"auto"
],
"title": "ComputeType",
"type": "string"
},
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Correction": {
"description": "Various post hoc corrections.",
"enum": [
"d3bj",
"d3",
"d4",
"gcp"
],
"title": "Correction",
"type": "string"
},
"Engine": {
"description": "Computational chemistry engine.",
"enum": [
"aimnet2",
"egret",
"gpu4pyscf",
"mace",
"mopac",
"openff",
"omol25",
"orb",
"psi4",
"pyscf",
"quantum_espresso",
"tblite",
"terachem",
"xtb"
],
"title": "Engine",
"type": "string"
},
"Method": {
"description": "Computational chemistry method.",
"enum": [
"hf",
"hf_3c",
"pbe",
"bp86",
"b97_3c",
"b97_d3bj",
"r2scan",
"r2scan_3c",
"tpss",
"m06l",
"pbe0",
"b3lyp",
"tpssh",
"m06",
"m062x",
"camb3lyp",
"wb97x_d3",
"wb97x_v",
"wb97x_3c",
"wb97m_v",
"wb97m_d3bj",
"dsd_blyp_d3bj",
"skala",
"aimnet2_wb97md3",
"mace_mp_0",
"mace_mp_0b2_l",
"omol25_conserving_s",
"uma_s_omol",
"uma_s_1_2_omol",
"uma_m_omol",
"uma_s_omat",
"uma_s_1_2_omat",
"uma_m_omat",
"uma_s_omc",
"uma_s_1_2_omc",
"uma_m_omc",
"orb_v3_conservative_inf_omat",
"orb_v3_conservative_omol",
"egret_1",
"egret_1e",
"egret_1t",
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb",
"pm6",
"pm6_d3h4x",
"pm6_org",
"pm7",
"off_sage_2_0_0",
"off_sage_2_2_1",
"off_sage_2_3_0",
"smirnoff_2_0_0_amber_am1bcc",
"smirnoff_2_2_1_amber_am1bcc"
],
"title": "Method",
"type": "string"
},
"Mode": {
"description": "Calculation accuracy mode.",
"enum": [
"auto",
"reckless",
"rapid",
"careful",
"meticulous",
"debug",
"manual"
],
"title": "Mode",
"type": "string"
},
"OmegaTuning": {
"description": "Options for omega (range-separation parameter) tuning",
"enum": [
"koopmans",
"generalized_koopmans",
"half"
],
"title": "OmegaTuning",
"type": "string"
},
"OptimizationSettings": {
"description": "Geometry optimization settings.\n\n:param max_steps: maximum number of optimization steps\n:param transition_state: perform transition state optimization\n:param recalc_hess_every: recalculate Hessian every n steps (0 = never)\n:param max_gradient_threshold: convergence threshold for max gradient, in Hartree/\u00c5\n:param rms_gradient_threshold: convergence threshold for RMS gradient, in Hartree/\u00c5\n:param max_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param rms_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param energy_threshold: convergence threshold for energy change, in Hartree\n:param optimize_cell: optimize unit cell (periodic systems only)\n:param constraints: geometric constraints to apply\n:param save_intermediate_steps: save intermediate geometries",
"properties": {
"max_steps": {
"default": 250,
"exclusiveMinimum": 0,
"title": "Max Steps",
"type": "integer"
},
"transition_state": {
"default": false,
"title": "Transition State",
"type": "boolean"
},
"recalc_hess_every": {
"default": 0,
"title": "Recalc Hess Every",
"type": "integer"
},
"max_gradient_threshold": {
"default": 0.0005,
"exclusiveMinimum": 0,
"title": "Max Gradient Threshold",
"type": "number"
},
"rms_gradient_threshold": {
"default": 0.0003,
"exclusiveMinimum": 0,
"title": "Rms Gradient Threshold",
"type": "number"
},
"max_displacement_threshold": {
"default": 0.002,
"exclusiveMinimum": 0,
"title": "Max Displacement Threshold",
"type": "number"
},
"rms_displacement_threshold": {
"default": 0.001,
"exclusiveMinimum": 0,
"title": "Rms Displacement Threshold",
"type": "number"
},
"energy_threshold": {
"default": 1e-06,
"exclusiveMinimum": 0,
"title": "Energy Threshold",
"type": "number"
},
"optimize_cell": {
"default": false,
"title": "Optimize Cell",
"type": "boolean"
},
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"save_intermediate_steps": {
"default": true,
"title": "Save Intermediate Steps",
"type": "boolean"
}
},
"title": "OptimizationSettings",
"type": "object"
},
"PBCDFTSettings": {
"description": "PBC DFT settings.\n\n:param plane_wave_cutoff: plane-wave kinetic-energy cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n:param charge_density_cutoff: charge-density plane-wave cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n:param kpoints: Monkhorst\u2013Pack k-point-grid dimensions; (None -> \u00c5\u207b\u00b9 = .3)\n:param smearing_type: occupations smearing type\n:param smearing_width: smearing width, if relevant (Hartree)\n:param hubbard_u: DFT+U on-site Coulomb repulsion per element symbol (Hartree)\n None = no DFT+U; \"auto\" = automatic U values from MP database",
"properties": {
"plane_wave_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Plane Wave Cutoff"
},
"charge_density_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Charge Density Cutoff"
},
"kpoints": {
"anyOf": [
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Kpoints"
},
"smearing_type": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSmearing"
},
{
"type": "null"
}
],
"default": null
},
"smearing_width": {
"default": 0.005,
"exclusiveMinimum": 0,
"title": "Smearing Width",
"type": "number"
},
"hubbard_u": {
"anyOf": [
{
"additionalProperties": {
"exclusiveMinimum": 0,
"type": "number"
},
"type": "object"
},
{
"const": "auto",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Hubbard U"
}
},
"title": "PBCDFTSettings",
"type": "object"
},
"PBCDFTSmearing": {
"description": "Smearing types for occupations in PBC DFT calculations.",
"enum": [
"marzari_vanderbilt",
"methfessel_paxton",
"fermi_dirac",
"gaussian"
],
"title": "PBCDFTSmearing",
"type": "string"
},
"SCFSettings": {
"description": "Settings for SCF convergence.\n\n:param max_iters: maximum number of SCF iterations to permit\n:param soscf: whether or not to use SOSCF (second-order SCF).",
"properties": {
"max_iters": {
"default": 250,
"title": "Max Iters",
"type": "integer"
},
"soscf": {
"$ref": "#/$defs/UseSOSCF",
"default": "upon_failure"
}
},
"title": "SCFSettings",
"type": "object"
},
"Settings": {
"description": "Settings for (base) computational chemistry calculations.\n\n:param mode: calculation mode (affects thresholds for optimizations, etc.)\n:param tasks: tasks to perform (deprecated, specify in workflows or calculations instead)\n:param method: computational method\n:param basis_set: basis set to use (autopopulated for 3c methods)\n:param engine: computational engine to use (auto-selected if None)\n:param corrections: list of corrections to apply (e.g. D3BJ, D4)\n:param solvent_settings: solvent model settings (if any)\n:param omega: range-separation parameter (Bohr\u207b\u00b9) or method to tune it (optional)\n:param excited_state_settings: settings for excited-state calculations (if any)\n:param pbc_dft_settings: settings specific to DFT calculations on periodic systems\n:param scf_settings: SCF settings\n:param opt_settings: geometry optimization settings\n:param thermochem_settings: thermochemistry settings\n:param compute_settings: hardware settings",
"properties": {
"mode": {
"$ref": "#/$defs/Mode",
"default": "auto"
},
"tasks": {
"default": [
"energy",
"charge",
"dipole"
],
"items": {
"$ref": "#/$defs/Task"
},
"title": "Tasks",
"type": "array"
},
"method": {
"$ref": "#/$defs/Method",
"default": "hf"
},
"basis_set": {
"anyOf": [
{
"$ref": "#/$defs/BasisSet"
},
{
"type": "null"
}
],
"default": null
},
"engine": {
"$ref": "#/$defs/Engine",
"default": null
},
"corrections": {
"default": [],
"items": {
"$ref": "#/$defs/Correction"
},
"title": "Corrections",
"type": "array"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
},
"omega": {
"anyOf": [
{
"$ref": "#/$defs/OmegaTuning"
},
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Omega"
},
"excited_state_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"tddft_settings": "#/$defs/TDDFTSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/TDDFTSettings"
}
]
},
{
"type": "null"
}
],
"default": null,
"title": "Excited State Settings"
},
"pbc_dft_settings": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSettings"
},
{
"type": "null"
}
],
"default": null
},
"scf_settings": {
"$ref": "#/$defs/SCFSettings",
"default": {
"max_iters": 250,
"soscf": "upon_failure"
}
},
"opt_settings": {
"$ref": "#/$defs/OptimizationSettings",
"default": {
"max_steps": 250,
"transition_state": false,
"recalc_hess_every": 0,
"max_gradient_threshold": 0.0005,
"rms_gradient_threshold": 0.0003,
"max_displacement_threshold": 0.002,
"rms_displacement_threshold": 0.001,
"energy_threshold": 1e-06,
"optimize_cell": false,
"constraints": [],
"save_intermediate_steps": true
}
},
"thermochem_settings": {
"$ref": "#/$defs/ThermochemistrySettings",
"default": {
"cutoff_frequency": 100.0,
"temperature": 298.0,
"scaling_factor": 1.0,
"concentration": 0.0408740470708
}
},
"compute_settings": {
"$ref": "#/$defs/ComputeSettings",
"default": {
"requested_compute_type": "cpu",
"compute_type_used": null
}
}
},
"title": "Settings",
"type": "object"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\n:param solvent: solvent to use\n:param model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"TDDFTSettings": {
"description": "Settings for TDDFT calculations.\n\nNew:\n:param tda: use Tamm-Dancoff approximation\n:param num_excitations: number of excitations to calculate\n:param target_root: root to target (for gradient/optimization)",
"properties": {
"tda": {
"default": true,
"title": "Tda",
"type": "boolean"
},
"num_excitations": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Excitations",
"type": "integer"
},
"target_root": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Target Root"
},
"settings_type": {
"const": "tddft_settings",
"default": "tddft_settings",
"title": "Settings Type",
"type": "string"
}
},
"title": "TDDFTSettings",
"type": "object"
},
"Task": {
"description": "Calculation task type.",
"enum": [
"energy",
"gradient",
"optimize",
"optimize_ts",
"charge",
"spin_density",
"dipole",
"hessian",
"frequencies",
"stress",
"band_structure",
"elastic_tensor"
],
"title": "Task",
"type": "string"
},
"ThermochemistrySettings": {
"description": "Thermochemistry calculation settings.\n\n:param cutoff_frequency: Cramer/Truhlar quasi-harmonic cutoff, in cm^-1\n:param temperature: temperature for thermochemistry, in K\n:param scaling_factor: frequency scaling factor\n:param concentration: concentration, in M (defaults to 1 atm)",
"properties": {
"cutoff_frequency": {
"default": 100,
"minimum": 0,
"title": "Cutoff Frequency",
"type": "number"
},
"temperature": {
"default": 298,
"minimum": 0,
"title": "Temperature",
"type": "number"
},
"scaling_factor": {
"default": 1.0,
"minimum": 0,
"title": "Scaling Factor",
"type": "number"
},
"concentration": {
"default": 0.0408740470708,
"minimum": 0,
"title": "Concentration",
"type": "number"
}
},
"title": "ThermochemistrySettings",
"type": "object"
},
"UseSOSCF": {
"enum": [
"always",
"upon_failure",
"never"
],
"title": "UseSOSCF",
"type": "string"
}
},
"description": "Settings for Monte-Carlo-multiple-minimum-based conformer generation.\nDefault values recommended by Nick Casetti.\n\nInherited:\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation (not supported)\n:param nci: add a constraining potential for non-covalent interactions (not supported)\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param num_monte_carlo_iterations: number of Monte Carlo iterations to run\n:param rmsd_threshold: threshold to determine if MCMM output structures are identical\n:param energy_window: maximum energy window above the minimum-energy conformer above which to retain (kcal/mol)\n:param monte_carlo_settings: energy computation method for Monte-Carlo steps",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"energy_settings": {
"$ref": "#/$defs/Settings",
"default": {
"mode": "rapid",
"tasks": [
"energy",
"charge",
"dipole"
],
"method": "aimnet2_wb97md3",
"basis_set": null,
"engine": "aimnet2",
"corrections": [],
"solvent_settings": null,
"omega": null,
"excited_state_settings": null,
"pbc_dft_settings": null,
"scf_settings": {
"max_iters": 250,
"soscf": "upon_failure"
},
"opt_settings": {
"constraints": [],
"energy_threshold": 5e-05,
"max_displacement_threshold": 0.002,
"max_gradient_threshold": 0.005,
"max_steps": 250,
"optimize_cell": false,
"recalc_hess_every": 0,
"rms_displacement_threshold": 0.001,
"rms_gradient_threshold": 0.0035,
"save_intermediate_steps": true,
"transition_state": false
},
"thermochem_settings": {
"concentration": 0.0408740470708,
"cutoff_frequency": 100.0,
"scaling_factor": 1.0,
"temperature": 298.0
},
"compute_settings": {
"compute_type_used": null,
"requested_compute_type": "cpu"
},
"level_of_theory": "aimnet2_wb97md3"
}
},
"num_monte_carlo_iterations": {
"default": 250,
"title": "Num Monte Carlo Iterations",
"type": "integer"
},
"rmsd_threshold": {
"default": 0.5,
"title": "Rmsd Threshold",
"type": "number"
},
"energy_window": {
"default": 20,
"title": "Energy Window",
"type": "number"
},
"settings_type": {
"const": "monte_carlo_multiple_minimum",
"default": "monte_carlo_multiple_minimum",
"title": "Settings Type",
"type": "string"
}
},
"title": "MonteCarloMultipleMinimumSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
energy_settings(Settings) -
num_monte_carlo_iterations(int) -
rmsd_threshold(float) -
energy_window(float) -
settings_type(Literal['monte_carlo_multiple_minimum'])
Validators:
-
check_constraints→constraints -
check_nci→nci
OpenConfSettings
pydantic-model
Bases: ConformerGenSettings
Settings for OpenConf-based conformer generation.
OpenConf uses a hybrid ETKDG seeding + MCMM torsion-walk exploration strategy with PRISM deduplication.
Inherited:
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
FREEZE_ATOMS constraints only; pins specified atoms via MMFF position restraints and excludes their rotors from the move set |
required | |
nci
|
not supported |
required | |
max_confs
|
maximum number of conformers to return New: |
required | |
n_steps
|
number of MCMM exploration steps (primary quality/speed lever) |
required | |
energy_window_kcal
|
energy window for keeping conformers (kcal/mol) |
required | |
parent_strategy
|
how to select parent conformers for mutation - "softmax": energy-biased; favors low-energy basins (good for NMR/property prediction) - "uniform": random; maximizes diversity (good for docking) - "best": always mutate the lowest-energy conformer; fastest but least diverse |
required | |
final_select
|
how the final conformer set is selected - "diverse": k-means clustering on 3D shape descriptors; one conformer per cluster - "energy": lowest-energy conformers only (best for Boltzmann-weighted applications) |
required | |
do_final_refine
|
run full MMFF minimization on final set (slower but more accurate geometries) |
required |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
}
},
"description": "Settings for OpenConf-based conformer generation.\n\nOpenConf uses a hybrid ETKDG seeding + MCMM torsion-walk exploration\nstrategy with PRISM deduplication.\n\nInherited:\n:param constraints: FREEZE_ATOMS constraints only; pins specified atoms via MMFF\n position restraints and excludes their rotors from the move set\n:param nci: not supported\n:param max_confs: maximum number of conformers to return\n\nNew:\n:param n_steps: number of MCMM exploration steps (primary quality/speed lever)\n:param energy_window_kcal: energy window for keeping conformers (kcal/mol)\n:param parent_strategy: how to select parent conformers for mutation\n - \"softmax\": energy-biased; favors low-energy basins (good for NMR/property prediction)\n - \"uniform\": random; maximizes diversity (good for docking)\n - \"best\": always mutate the lowest-energy conformer; fastest but least diverse\n:param final_select: how the final conformer set is selected\n - \"diverse\": k-means clustering on 3D shape descriptors; one conformer per cluster\n - \"energy\": lowest-energy conformers only (best for Boltzmann-weighted applications)\n:param do_final_refine: run full MMFF minimization on final set (slower but more accurate geometries)",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"n_steps": {
"default": 200,
"exclusiveMinimum": 0,
"title": "N Steps",
"type": "integer"
},
"energy_window_kcal": {
"default": 10.0,
"exclusiveMinimum": 0,
"title": "Energy Window Kcal",
"type": "number"
},
"parent_strategy": {
"default": "softmax",
"enum": [
"softmax",
"uniform",
"best"
],
"title": "Parent Strategy",
"type": "string"
},
"final_select": {
"default": "diverse",
"enum": [
"energy",
"diverse"
],
"title": "Final Select",
"type": "string"
},
"do_final_refine": {
"default": true,
"title": "Do Final Refine",
"type": "boolean"
},
"settings_type": {
"const": "openconf",
"default": "openconf",
"title": "Settings Type",
"type": "string"
}
},
"title": "OpenConfSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
n_steps(PositiveInt) -
energy_window_kcal(PositiveFloat) -
parent_strategy(Literal['softmax', 'uniform', 'best']) -
final_select(Literal['energy', 'diverse']) -
do_final_refine(bool) -
settings_type(Literal['openconf'])
Validators:
-
check_constraints→constraints -
check_nci→nci
ConformerGenMixin
pydantic-model
Bases: BaseModel
Mixin for classes need conformer generation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
conf_gen_settings
|
settings for conformer generation |
required | |
constraints
|
constraints to add |
required | |
nci
|
add a constraining potential for non-covalent interactions |
required | |
max_confs
|
maximum number of conformers to keep |
required | |
clustering_settings
|
how to cluster the conformers (if at all) |
required |
Show JSON schema:
{
"$defs": {
"BasisSet": {
"description": "Atomic orbital basis set.\n\n:param name: basis set name (e.g., def2-SVP, cc-pVDZ)\n:param overrides: element or atom-specific basis set overrides\n:param cutoff_threshold: basis function screening threshold",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"overrides": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/BasisSetOverride"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"title": "Overrides"
},
"cutoff_threshold": {
"default": 1e-10,
"exclusiveMinimum": 0,
"title": "Cutoff Threshold",
"type": "number"
}
},
"required": [
"name"
],
"title": "BasisSet",
"type": "object"
},
"BasisSetOverride": {
"description": "Basis set override for specific atoms or elements.\n\n:param name: basis set name for override\n:param atomic_numbers: atomic numbers to override (mutually exclusive with atoms)\n:param atoms: 1-indexed atom indices to override (mutually exclusive with atomic_numbers)",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"atomic_numbers": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atomic Numbers"
},
"atoms": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atoms"
}
},
"required": [
"name"
],
"title": "BasisSetOverride",
"type": "object"
},
"ComputeSettings": {
"description": "Hardware compute settings.\n\n:param requested_compute_type: requested hardware type\n:param compute_type_used: actual hardware type used (set after execution)",
"properties": {
"requested_compute_type": {
"$ref": "#/$defs/ComputeType",
"default": "cpu"
},
"compute_type_used": {
"anyOf": [
{
"$ref": "#/$defs/ComputeType"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "ComputeSettings",
"type": "object"
},
"ComputeType": {
"description": "Hardware compute type.",
"enum": [
"cpu",
"gpu",
"auto"
],
"title": "ComputeType",
"type": "string"
},
"ConformerClusteringDescriptor": {
"description": "Potential descriptors to employ in conformer clustering.",
"enum": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"title": "ConformerClusteringDescriptor",
"type": "string"
},
"ConformerClusteringSettings": {
"description": "Settings for clustering conformers based on their three-dimensional properties.\n\nThe properties used for clustering by default are:\n- Solvent-accessible surface area\n- Polar solvent-accessible surface area\n- Radius of gyration\n- Plane of best fit\n- Normalized principal moment ratios 1 and 2\n\nRowan uses k-means clustering to identify representative conformers.\nThis loosely follows Wilcken and co-workers (10.1007/s10822-020-00337-7).\n\n:param num_clusters: number of clusters to include\n:param conformers_per_cluster: number of compounds to pick from each cluster",
"properties": {
"descriptors": {
"default": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"items": {
"$ref": "#/$defs/ConformerClusteringDescriptor"
},
"title": "Descriptors",
"type": "array"
},
"num_clusters": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Clusters",
"type": "integer"
},
"conformers_per_cluster": {
"default": 3,
"exclusiveMinimum": 0,
"title": "Conformers Per Cluster",
"type": "integer"
}
},
"title": "ConformerClusteringSettings",
"type": "object"
},
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Correction": {
"description": "Various post hoc corrections.",
"enum": [
"d3bj",
"d3",
"d4",
"gcp"
],
"title": "Correction",
"type": "string"
},
"ETKDGSettings": {
"description": "Settings for ETKDG conformer generation.\n\nInherited:\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation\n:param nci: add a constraining potential for non-covalent interactions (not supported in ETKDG)\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param num_initial_confs: number of initial conformers to generate\n:param num_confs_considered: number of conformers to consider for optimization\n:param num_confs_taken: number of final conformers to take\n:param max_mmff_energy: MMFF energy cutoff\n:param max_mmff_iterations: MMFF optimization iterations",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"num_confs_considered": {
"default": 100,
"title": "Num Confs Considered",
"type": "integer"
},
"max_mmff_iterations": {
"default": 500,
"title": "Max Mmff Iterations",
"type": "integer"
},
"max_mmff_energy": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 30,
"title": "Max Mmff Energy"
},
"settings_type": {
"const": "etkdg",
"default": "etkdg",
"title": "Settings Type",
"type": "string"
}
},
"title": "ETKDGSettings",
"type": "object"
},
"Engine": {
"description": "Computational chemistry engine.",
"enum": [
"aimnet2",
"egret",
"gpu4pyscf",
"mace",
"mopac",
"openff",
"omol25",
"orb",
"psi4",
"pyscf",
"quantum_espresso",
"tblite",
"terachem",
"xtb"
],
"title": "Engine",
"type": "string"
},
"LyrebirdSettings": {
"description": "Settings for Lyrebird-based conformer generation.\n\nInherited:\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation (not supported)\n:param nci: add a constraining potential for non-covalent interactions (not supported)\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param num_initial_confs: number of initial conformers to generate",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"settings_type": {
"const": "lyrebird",
"default": "lyrebird",
"title": "Settings Type",
"type": "string"
}
},
"title": "LyrebirdSettings",
"type": "object"
},
"Method": {
"description": "Computational chemistry method.",
"enum": [
"hf",
"hf_3c",
"pbe",
"bp86",
"b97_3c",
"b97_d3bj",
"r2scan",
"r2scan_3c",
"tpss",
"m06l",
"pbe0",
"b3lyp",
"tpssh",
"m06",
"m062x",
"camb3lyp",
"wb97x_d3",
"wb97x_v",
"wb97x_3c",
"wb97m_v",
"wb97m_d3bj",
"dsd_blyp_d3bj",
"skala",
"aimnet2_wb97md3",
"mace_mp_0",
"mace_mp_0b2_l",
"omol25_conserving_s",
"uma_s_omol",
"uma_s_1_2_omol",
"uma_m_omol",
"uma_s_omat",
"uma_s_1_2_omat",
"uma_m_omat",
"uma_s_omc",
"uma_s_1_2_omc",
"uma_m_omc",
"orb_v3_conservative_inf_omat",
"orb_v3_conservative_omol",
"egret_1",
"egret_1e",
"egret_1t",
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb",
"pm6",
"pm6_d3h4x",
"pm6_org",
"pm7",
"off_sage_2_0_0",
"off_sage_2_2_1",
"off_sage_2_3_0",
"smirnoff_2_0_0_amber_am1bcc",
"smirnoff_2_2_1_amber_am1bcc"
],
"title": "Method",
"type": "string"
},
"Mode": {
"description": "Calculation accuracy mode.",
"enum": [
"auto",
"reckless",
"rapid",
"careful",
"meticulous",
"debug",
"manual"
],
"title": "Mode",
"type": "string"
},
"MonteCarloMultipleMinimumSettings": {
"description": "Settings for Monte-Carlo-multiple-minimum-based conformer generation.\nDefault values recommended by Nick Casetti.\n\nInherited:\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation (not supported)\n:param nci: add a constraining potential for non-covalent interactions (not supported)\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param num_monte_carlo_iterations: number of Monte Carlo iterations to run\n:param rmsd_threshold: threshold to determine if MCMM output structures are identical\n:param energy_window: maximum energy window above the minimum-energy conformer above which to retain (kcal/mol)\n:param monte_carlo_settings: energy computation method for Monte-Carlo steps",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"energy_settings": {
"$ref": "#/$defs/Settings",
"default": {
"mode": "rapid",
"tasks": [
"energy",
"charge",
"dipole"
],
"method": "aimnet2_wb97md3",
"basis_set": null,
"engine": "aimnet2",
"corrections": [],
"solvent_settings": null,
"omega": null,
"excited_state_settings": null,
"pbc_dft_settings": null,
"scf_settings": {
"max_iters": 250,
"soscf": "upon_failure"
},
"opt_settings": {
"constraints": [],
"energy_threshold": 5e-05,
"max_displacement_threshold": 0.002,
"max_gradient_threshold": 0.005,
"max_steps": 250,
"optimize_cell": false,
"recalc_hess_every": 0,
"rms_displacement_threshold": 0.001,
"rms_gradient_threshold": 0.0035,
"save_intermediate_steps": true,
"transition_state": false
},
"thermochem_settings": {
"concentration": 0.0408740470708,
"cutoff_frequency": 100.0,
"scaling_factor": 1.0,
"temperature": 298.0
},
"compute_settings": {
"compute_type_used": null,
"requested_compute_type": "cpu"
},
"level_of_theory": "aimnet2_wb97md3"
}
},
"num_monte_carlo_iterations": {
"default": 250,
"title": "Num Monte Carlo Iterations",
"type": "integer"
},
"rmsd_threshold": {
"default": 0.5,
"title": "Rmsd Threshold",
"type": "number"
},
"energy_window": {
"default": 20,
"title": "Energy Window",
"type": "number"
},
"settings_type": {
"const": "monte_carlo_multiple_minimum",
"default": "monte_carlo_multiple_minimum",
"title": "Settings Type",
"type": "string"
}
},
"title": "MonteCarloMultipleMinimumSettings",
"type": "object"
},
"OmegaTuning": {
"description": "Options for omega (range-separation parameter) tuning",
"enum": [
"koopmans",
"generalized_koopmans",
"half"
],
"title": "OmegaTuning",
"type": "string"
},
"OpenConfSettings": {
"description": "Settings for OpenConf-based conformer generation.\n\nOpenConf uses a hybrid ETKDG seeding + MCMM torsion-walk exploration\nstrategy with PRISM deduplication.\n\nInherited:\n:param constraints: FREEZE_ATOMS constraints only; pins specified atoms via MMFF\n position restraints and excludes their rotors from the move set\n:param nci: not supported\n:param max_confs: maximum number of conformers to return\n\nNew:\n:param n_steps: number of MCMM exploration steps (primary quality/speed lever)\n:param energy_window_kcal: energy window for keeping conformers (kcal/mol)\n:param parent_strategy: how to select parent conformers for mutation\n - \"softmax\": energy-biased; favors low-energy basins (good for NMR/property prediction)\n - \"uniform\": random; maximizes diversity (good for docking)\n - \"best\": always mutate the lowest-energy conformer; fastest but least diverse\n:param final_select: how the final conformer set is selected\n - \"diverse\": k-means clustering on 3D shape descriptors; one conformer per cluster\n - \"energy\": lowest-energy conformers only (best for Boltzmann-weighted applications)\n:param do_final_refine: run full MMFF minimization on final set (slower but more accurate geometries)",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"n_steps": {
"default": 200,
"exclusiveMinimum": 0,
"title": "N Steps",
"type": "integer"
},
"energy_window_kcal": {
"default": 10.0,
"exclusiveMinimum": 0,
"title": "Energy Window Kcal",
"type": "number"
},
"parent_strategy": {
"default": "softmax",
"enum": [
"softmax",
"uniform",
"best"
],
"title": "Parent Strategy",
"type": "string"
},
"final_select": {
"default": "diverse",
"enum": [
"energy",
"diverse"
],
"title": "Final Select",
"type": "string"
},
"do_final_refine": {
"default": true,
"title": "Do Final Refine",
"type": "boolean"
},
"settings_type": {
"const": "openconf",
"default": "openconf",
"title": "Settings Type",
"type": "string"
}
},
"title": "OpenConfSettings",
"type": "object"
},
"OptimizationSettings": {
"description": "Geometry optimization settings.\n\n:param max_steps: maximum number of optimization steps\n:param transition_state: perform transition state optimization\n:param recalc_hess_every: recalculate Hessian every n steps (0 = never)\n:param max_gradient_threshold: convergence threshold for max gradient, in Hartree/\u00c5\n:param rms_gradient_threshold: convergence threshold for RMS gradient, in Hartree/\u00c5\n:param max_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param rms_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param energy_threshold: convergence threshold for energy change, in Hartree\n:param optimize_cell: optimize unit cell (periodic systems only)\n:param constraints: geometric constraints to apply\n:param save_intermediate_steps: save intermediate geometries",
"properties": {
"max_steps": {
"default": 250,
"exclusiveMinimum": 0,
"title": "Max Steps",
"type": "integer"
},
"transition_state": {
"default": false,
"title": "Transition State",
"type": "boolean"
},
"recalc_hess_every": {
"default": 0,
"title": "Recalc Hess Every",
"type": "integer"
},
"max_gradient_threshold": {
"default": 0.0005,
"exclusiveMinimum": 0,
"title": "Max Gradient Threshold",
"type": "number"
},
"rms_gradient_threshold": {
"default": 0.0003,
"exclusiveMinimum": 0,
"title": "Rms Gradient Threshold",
"type": "number"
},
"max_displacement_threshold": {
"default": 0.002,
"exclusiveMinimum": 0,
"title": "Max Displacement Threshold",
"type": "number"
},
"rms_displacement_threshold": {
"default": 0.001,
"exclusiveMinimum": 0,
"title": "Rms Displacement Threshold",
"type": "number"
},
"energy_threshold": {
"default": 1e-06,
"exclusiveMinimum": 0,
"title": "Energy Threshold",
"type": "number"
},
"optimize_cell": {
"default": false,
"title": "Optimize Cell",
"type": "boolean"
},
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"save_intermediate_steps": {
"default": true,
"title": "Save Intermediate Steps",
"type": "boolean"
}
},
"title": "OptimizationSettings",
"type": "object"
},
"PBCDFTSettings": {
"description": "PBC DFT settings.\n\n:param plane_wave_cutoff: plane-wave kinetic-energy cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n:param charge_density_cutoff: charge-density plane-wave cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n:param kpoints: Monkhorst\u2013Pack k-point-grid dimensions; (None -> \u00c5\u207b\u00b9 = .3)\n:param smearing_type: occupations smearing type\n:param smearing_width: smearing width, if relevant (Hartree)\n:param hubbard_u: DFT+U on-site Coulomb repulsion per element symbol (Hartree)\n None = no DFT+U; \"auto\" = automatic U values from MP database",
"properties": {
"plane_wave_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Plane Wave Cutoff"
},
"charge_density_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Charge Density Cutoff"
},
"kpoints": {
"anyOf": [
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Kpoints"
},
"smearing_type": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSmearing"
},
{
"type": "null"
}
],
"default": null
},
"smearing_width": {
"default": 0.005,
"exclusiveMinimum": 0,
"title": "Smearing Width",
"type": "number"
},
"hubbard_u": {
"anyOf": [
{
"additionalProperties": {
"exclusiveMinimum": 0,
"type": "number"
},
"type": "object"
},
{
"const": "auto",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Hubbard U"
}
},
"title": "PBCDFTSettings",
"type": "object"
},
"PBCDFTSmearing": {
"description": "Smearing types for occupations in PBC DFT calculations.",
"enum": [
"marzari_vanderbilt",
"methfessel_paxton",
"fermi_dirac",
"gaussian"
],
"title": "PBCDFTSmearing",
"type": "string"
},
"SCFSettings": {
"description": "Settings for SCF convergence.\n\n:param max_iters: maximum number of SCF iterations to permit\n:param soscf: whether or not to use SOSCF (second-order SCF).",
"properties": {
"max_iters": {
"default": 250,
"title": "Max Iters",
"type": "integer"
},
"soscf": {
"$ref": "#/$defs/UseSOSCF",
"default": "upon_failure"
}
},
"title": "SCFSettings",
"type": "object"
},
"Settings": {
"description": "Settings for (base) computational chemistry calculations.\n\n:param mode: calculation mode (affects thresholds for optimizations, etc.)\n:param tasks: tasks to perform (deprecated, specify in workflows or calculations instead)\n:param method: computational method\n:param basis_set: basis set to use (autopopulated for 3c methods)\n:param engine: computational engine to use (auto-selected if None)\n:param corrections: list of corrections to apply (e.g. D3BJ, D4)\n:param solvent_settings: solvent model settings (if any)\n:param omega: range-separation parameter (Bohr\u207b\u00b9) or method to tune it (optional)\n:param excited_state_settings: settings for excited-state calculations (if any)\n:param pbc_dft_settings: settings specific to DFT calculations on periodic systems\n:param scf_settings: SCF settings\n:param opt_settings: geometry optimization settings\n:param thermochem_settings: thermochemistry settings\n:param compute_settings: hardware settings",
"properties": {
"mode": {
"$ref": "#/$defs/Mode",
"default": "auto"
},
"tasks": {
"default": [
"energy",
"charge",
"dipole"
],
"items": {
"$ref": "#/$defs/Task"
},
"title": "Tasks",
"type": "array"
},
"method": {
"$ref": "#/$defs/Method",
"default": "hf"
},
"basis_set": {
"anyOf": [
{
"$ref": "#/$defs/BasisSet"
},
{
"type": "null"
}
],
"default": null
},
"engine": {
"$ref": "#/$defs/Engine",
"default": null
},
"corrections": {
"default": [],
"items": {
"$ref": "#/$defs/Correction"
},
"title": "Corrections",
"type": "array"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
},
"omega": {
"anyOf": [
{
"$ref": "#/$defs/OmegaTuning"
},
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Omega"
},
"excited_state_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"tddft_settings": "#/$defs/TDDFTSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/TDDFTSettings"
}
]
},
{
"type": "null"
}
],
"default": null,
"title": "Excited State Settings"
},
"pbc_dft_settings": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSettings"
},
{
"type": "null"
}
],
"default": null
},
"scf_settings": {
"$ref": "#/$defs/SCFSettings",
"default": {
"max_iters": 250,
"soscf": "upon_failure"
}
},
"opt_settings": {
"$ref": "#/$defs/OptimizationSettings",
"default": {
"max_steps": 250,
"transition_state": false,
"recalc_hess_every": 0,
"max_gradient_threshold": 0.0005,
"rms_gradient_threshold": 0.0003,
"max_displacement_threshold": 0.002,
"rms_displacement_threshold": 0.001,
"energy_threshold": 1e-06,
"optimize_cell": false,
"constraints": [],
"save_intermediate_steps": true
}
},
"thermochem_settings": {
"$ref": "#/$defs/ThermochemistrySettings",
"default": {
"cutoff_frequency": 100.0,
"temperature": 298.0,
"scaling_factor": 1.0,
"concentration": 0.0408740470708
}
},
"compute_settings": {
"$ref": "#/$defs/ComputeSettings",
"default": {
"requested_compute_type": "cpu",
"compute_type_used": null
}
}
},
"title": "Settings",
"type": "object"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\n:param solvent: solvent to use\n:param model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"TDDFTSettings": {
"description": "Settings for TDDFT calculations.\n\nNew:\n:param tda: use Tamm-Dancoff approximation\n:param num_excitations: number of excitations to calculate\n:param target_root: root to target (for gradient/optimization)",
"properties": {
"tda": {
"default": true,
"title": "Tda",
"type": "boolean"
},
"num_excitations": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Excitations",
"type": "integer"
},
"target_root": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Target Root"
},
"settings_type": {
"const": "tddft_settings",
"default": "tddft_settings",
"title": "Settings Type",
"type": "string"
}
},
"title": "TDDFTSettings",
"type": "object"
},
"Task": {
"description": "Calculation task type.",
"enum": [
"energy",
"gradient",
"optimize",
"optimize_ts",
"charge",
"spin_density",
"dipole",
"hessian",
"frequencies",
"stress",
"band_structure",
"elastic_tensor"
],
"title": "Task",
"type": "string"
},
"ThermochemistrySettings": {
"description": "Thermochemistry calculation settings.\n\n:param cutoff_frequency: Cramer/Truhlar quasi-harmonic cutoff, in cm^-1\n:param temperature: temperature for thermochemistry, in K\n:param scaling_factor: frequency scaling factor\n:param concentration: concentration, in M (defaults to 1 atm)",
"properties": {
"cutoff_frequency": {
"default": 100,
"minimum": 0,
"title": "Cutoff Frequency",
"type": "number"
},
"temperature": {
"default": 298,
"minimum": 0,
"title": "Temperature",
"type": "number"
},
"scaling_factor": {
"default": 1.0,
"minimum": 0,
"title": "Scaling Factor",
"type": "number"
},
"concentration": {
"default": 0.0408740470708,
"minimum": 0,
"title": "Concentration",
"type": "number"
}
},
"title": "ThermochemistrySettings",
"type": "object"
},
"UseSOSCF": {
"enum": [
"always",
"upon_failure",
"never"
],
"title": "UseSOSCF",
"type": "string"
},
"iMTDSettings": {
"description": "Settings for iMTD style conformer generation.\n\nSee https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/choose_settings.f90#L202\nand https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/confparse.f90#L825\nfor how quick, superquick, and megaquick are defined.\n\nSee build_imtd_setings(mode) for sensible defaults.\n\nInherited:\n:param screening: post-generation screening settings (not used)\n:param constraints: constraints to add\n:param nci: add an ellipsoide potential around the input structure\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param mtd_method: method for the metadynamics\n:param mtd_runtype: algorithm used\n:param speed: speed of the calculations (CREST specific setting)\n:param reopt: re-optimize conformers (corrects for the lack of rotamer metadynamics and GC)\n:param free_energy_weights: calculate frequencies and re-weight based on free energies\n:param energy_window: energy window used, in kcal/mol (CREST specific setting). if set, overrides default from speed\n:param solvent_settings: solvent to use, if any",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"settings_type": {
"const": "imtd",
"default": "imtd",
"title": "Settings Type",
"type": "string"
},
"mtd_method": {
"default": "gfn_ff",
"enum": [
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb"
],
"title": "Mtd Method",
"type": "string"
},
"mtd_runtype": {
"default": "imtd-gc",
"title": "Mtd Runtype",
"type": "string"
},
"speed": {
"$ref": "#/$defs/iMTDSpeeds",
"default": "quick"
},
"reopt": {
"default": false,
"title": "Reopt",
"type": "boolean"
},
"free_energy_weights": {
"default": false,
"title": "Free Energy Weights",
"type": "boolean"
},
"energy_window": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Energy Window"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "iMTDSettings",
"type": "object"
},
"iMTDSpeeds": {
"enum": [
"megaquick",
"superquick",
"quick",
"normal",
"extensive"
],
"title": "iMTDSpeeds",
"type": "string"
}
},
"description": "Mixin for classes need conformer generation.\n\n:param conf_gen_settings: settings for conformer generation\n:param constraints: constraints to add\n:param nci: add a constraining potential for non-covalent interactions\n:param max_confs: maximum number of conformers to keep\n:param clustering_settings: how to cluster the conformers (if at all)",
"properties": {
"conf_gen_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"etkdg": "#/$defs/ETKDGSettings",
"imtd": "#/$defs/iMTDSettings",
"lyrebird": "#/$defs/LyrebirdSettings",
"monte_carlo_multiple_minimum": "#/$defs/MonteCarloMultipleMinimumSettings",
"openconf": "#/$defs/OpenConfSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/ETKDGSettings"
},
{
"$ref": "#/$defs/iMTDSettings"
},
{
"$ref": "#/$defs/LyrebirdSettings"
},
{
"$ref": "#/$defs/MonteCarloMultipleMinimumSettings"
},
{
"$ref": "#/$defs/OpenConfSettings"
}
]
},
{
"type": "null"
}
],
"title": "Conf Gen Settings"
},
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"conformer_clustering_settings": {
"anyOf": [
{
"$ref": "#/$defs/ConformerClusteringSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"conf_gen_settings"
],
"title": "ConformerGenMixin",
"type": "object"
}
Fields:
-
conf_gen_settings(ConformerGenSettingsUnion | None) -
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(int | None) -
conformer_clustering_settings(ConformerClusteringSettings | None)
ConformerSearchMixin
pydantic-model
Bases: ConformerGenMixin, MultiStageOptMixin
Mixin for classes need conformer search—a combination of conformer generation and optimization.
Inherited (ConformerGenMixin):
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
conf_gen_settings
|
settings for conformer generation |
required | |
constraints
|
constraints to add |
required | |
nci
|
add a constraining potential for non-covalent interactions Inherited (MultiStageOptMixin): |
required | |
multistage_opt_settings
|
settings for the optimization |
required |
Show JSON schema:
{
"$defs": {
"BasisSet": {
"description": "Atomic orbital basis set.\n\n:param name: basis set name (e.g., def2-SVP, cc-pVDZ)\n:param overrides: element or atom-specific basis set overrides\n:param cutoff_threshold: basis function screening threshold",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"overrides": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/BasisSetOverride"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"title": "Overrides"
},
"cutoff_threshold": {
"default": 1e-10,
"exclusiveMinimum": 0,
"title": "Cutoff Threshold",
"type": "number"
}
},
"required": [
"name"
],
"title": "BasisSet",
"type": "object"
},
"BasisSetOverride": {
"description": "Basis set override for specific atoms or elements.\n\n:param name: basis set name for override\n:param atomic_numbers: atomic numbers to override (mutually exclusive with atoms)\n:param atoms: 1-indexed atom indices to override (mutually exclusive with atomic_numbers)",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"atomic_numbers": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atomic Numbers"
},
"atoms": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atoms"
}
},
"required": [
"name"
],
"title": "BasisSetOverride",
"type": "object"
},
"ComputeSettings": {
"description": "Hardware compute settings.\n\n:param requested_compute_type: requested hardware type\n:param compute_type_used: actual hardware type used (set after execution)",
"properties": {
"requested_compute_type": {
"$ref": "#/$defs/ComputeType",
"default": "cpu"
},
"compute_type_used": {
"anyOf": [
{
"$ref": "#/$defs/ComputeType"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "ComputeSettings",
"type": "object"
},
"ComputeType": {
"description": "Hardware compute type.",
"enum": [
"cpu",
"gpu",
"auto"
],
"title": "ComputeType",
"type": "string"
},
"ConformerClusteringDescriptor": {
"description": "Potential descriptors to employ in conformer clustering.",
"enum": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"title": "ConformerClusteringDescriptor",
"type": "string"
},
"ConformerClusteringSettings": {
"description": "Settings for clustering conformers based on their three-dimensional properties.\n\nThe properties used for clustering by default are:\n- Solvent-accessible surface area\n- Polar solvent-accessible surface area\n- Radius of gyration\n- Plane of best fit\n- Normalized principal moment ratios 1 and 2\n\nRowan uses k-means clustering to identify representative conformers.\nThis loosely follows Wilcken and co-workers (10.1007/s10822-020-00337-7).\n\n:param num_clusters: number of clusters to include\n:param conformers_per_cluster: number of compounds to pick from each cluster",
"properties": {
"descriptors": {
"default": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"items": {
"$ref": "#/$defs/ConformerClusteringDescriptor"
},
"title": "Descriptors",
"type": "array"
},
"num_clusters": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Clusters",
"type": "integer"
},
"conformers_per_cluster": {
"default": 3,
"exclusiveMinimum": 0,
"title": "Conformers Per Cluster",
"type": "integer"
}
},
"title": "ConformerClusteringSettings",
"type": "object"
},
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Correction": {
"description": "Various post hoc corrections.",
"enum": [
"d3bj",
"d3",
"d4",
"gcp"
],
"title": "Correction",
"type": "string"
},
"ETKDGSettings": {
"description": "Settings for ETKDG conformer generation.\n\nInherited:\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation\n:param nci: add a constraining potential for non-covalent interactions (not supported in ETKDG)\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param num_initial_confs: number of initial conformers to generate\n:param num_confs_considered: number of conformers to consider for optimization\n:param num_confs_taken: number of final conformers to take\n:param max_mmff_energy: MMFF energy cutoff\n:param max_mmff_iterations: MMFF optimization iterations",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"num_confs_considered": {
"default": 100,
"title": "Num Confs Considered",
"type": "integer"
},
"max_mmff_iterations": {
"default": 500,
"title": "Max Mmff Iterations",
"type": "integer"
},
"max_mmff_energy": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 30,
"title": "Max Mmff Energy"
},
"settings_type": {
"const": "etkdg",
"default": "etkdg",
"title": "Settings Type",
"type": "string"
}
},
"title": "ETKDGSettings",
"type": "object"
},
"Engine": {
"description": "Computational chemistry engine.",
"enum": [
"aimnet2",
"egret",
"gpu4pyscf",
"mace",
"mopac",
"openff",
"omol25",
"orb",
"psi4",
"pyscf",
"quantum_espresso",
"tblite",
"terachem",
"xtb"
],
"title": "Engine",
"type": "string"
},
"LyrebirdSettings": {
"description": "Settings for Lyrebird-based conformer generation.\n\nInherited:\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation (not supported)\n:param nci: add a constraining potential for non-covalent interactions (not supported)\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param num_initial_confs: number of initial conformers to generate",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"settings_type": {
"const": "lyrebird",
"default": "lyrebird",
"title": "Settings Type",
"type": "string"
}
},
"title": "LyrebirdSettings",
"type": "object"
},
"Method": {
"description": "Computational chemistry method.",
"enum": [
"hf",
"hf_3c",
"pbe",
"bp86",
"b97_3c",
"b97_d3bj",
"r2scan",
"r2scan_3c",
"tpss",
"m06l",
"pbe0",
"b3lyp",
"tpssh",
"m06",
"m062x",
"camb3lyp",
"wb97x_d3",
"wb97x_v",
"wb97x_3c",
"wb97m_v",
"wb97m_d3bj",
"dsd_blyp_d3bj",
"skala",
"aimnet2_wb97md3",
"mace_mp_0",
"mace_mp_0b2_l",
"omol25_conserving_s",
"uma_s_omol",
"uma_s_1_2_omol",
"uma_m_omol",
"uma_s_omat",
"uma_s_1_2_omat",
"uma_m_omat",
"uma_s_omc",
"uma_s_1_2_omc",
"uma_m_omc",
"orb_v3_conservative_inf_omat",
"orb_v3_conservative_omol",
"egret_1",
"egret_1e",
"egret_1t",
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb",
"pm6",
"pm6_d3h4x",
"pm6_org",
"pm7",
"off_sage_2_0_0",
"off_sage_2_2_1",
"off_sage_2_3_0",
"smirnoff_2_0_0_amber_am1bcc",
"smirnoff_2_2_1_amber_am1bcc"
],
"title": "Method",
"type": "string"
},
"Mode": {
"description": "Calculation accuracy mode.",
"enum": [
"auto",
"reckless",
"rapid",
"careful",
"meticulous",
"debug",
"manual"
],
"title": "Mode",
"type": "string"
},
"MonteCarloMultipleMinimumSettings": {
"description": "Settings for Monte-Carlo-multiple-minimum-based conformer generation.\nDefault values recommended by Nick Casetti.\n\nInherited:\n:param screening: post-generation screening settings\n:param constraints: constraints for conformer generation (not supported)\n:param nci: add a constraining potential for non-covalent interactions (not supported)\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param num_monte_carlo_iterations: number of Monte Carlo iterations to run\n:param rmsd_threshold: threshold to determine if MCMM output structures are identical\n:param energy_window: maximum energy window above the minimum-energy conformer above which to retain (kcal/mol)\n:param monte_carlo_settings: energy computation method for Monte-Carlo steps",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"energy_settings": {
"$ref": "#/$defs/Settings",
"default": {
"mode": "rapid",
"tasks": [
"energy",
"charge",
"dipole"
],
"method": "aimnet2_wb97md3",
"basis_set": null,
"engine": "aimnet2",
"corrections": [],
"solvent_settings": null,
"omega": null,
"excited_state_settings": null,
"pbc_dft_settings": null,
"scf_settings": {
"max_iters": 250,
"soscf": "upon_failure"
},
"opt_settings": {
"constraints": [],
"energy_threshold": 5e-05,
"max_displacement_threshold": 0.002,
"max_gradient_threshold": 0.005,
"max_steps": 250,
"optimize_cell": false,
"recalc_hess_every": 0,
"rms_displacement_threshold": 0.001,
"rms_gradient_threshold": 0.0035,
"save_intermediate_steps": true,
"transition_state": false
},
"thermochem_settings": {
"concentration": 0.0408740470708,
"cutoff_frequency": 100.0,
"scaling_factor": 1.0,
"temperature": 298.0
},
"compute_settings": {
"compute_type_used": null,
"requested_compute_type": "cpu"
},
"level_of_theory": "aimnet2_wb97md3"
}
},
"num_monte_carlo_iterations": {
"default": 250,
"title": "Num Monte Carlo Iterations",
"type": "integer"
},
"rmsd_threshold": {
"default": 0.5,
"title": "Rmsd Threshold",
"type": "number"
},
"energy_window": {
"default": 20,
"title": "Energy Window",
"type": "number"
},
"settings_type": {
"const": "monte_carlo_multiple_minimum",
"default": "monte_carlo_multiple_minimum",
"title": "Settings Type",
"type": "string"
}
},
"title": "MonteCarloMultipleMinimumSettings",
"type": "object"
},
"MultiStageOptSettings": {
"description": "Settings for multi-stage optimizations.\n\n:param optimization_settings: list of opt settings to apply successively\n:param singlepoint_settings: final single point settings\n:param frequencies: whether to calculate frequencies on the last optimization step\n\n>>> s1 = Settings(method=Method.GFN2_XTB)\n>>> s2 = Settings(method=Method.R2SCAN3C, solvent_settings=SolventSettings(solvent=Solvent.HEXANE, model=SolventModel.CPCM))\n>>> msos = MultiStageOptSettings(optimization_settings=[s1], singlepoint_settings=s2)\n>>> msos.level_of_theory\n'r2scan_3c/cpcm(hexane)//gfn2_xtb'",
"properties": {
"optimization_settings": {
"default": [],
"items": {
"$ref": "#/$defs/Settings"
},
"title": "Optimization Settings",
"type": "array"
},
"singlepoint_settings": {
"anyOf": [
{
"$ref": "#/$defs/Settings"
},
{
"type": "null"
}
],
"default": null
},
"frequencies": {
"default": false,
"title": "Frequencies",
"type": "boolean"
}
},
"title": "MultiStageOptSettings",
"type": "object"
},
"OmegaTuning": {
"description": "Options for omega (range-separation parameter) tuning",
"enum": [
"koopmans",
"generalized_koopmans",
"half"
],
"title": "OmegaTuning",
"type": "string"
},
"OpenConfSettings": {
"description": "Settings for OpenConf-based conformer generation.\n\nOpenConf uses a hybrid ETKDG seeding + MCMM torsion-walk exploration\nstrategy with PRISM deduplication.\n\nInherited:\n:param constraints: FREEZE_ATOMS constraints only; pins specified atoms via MMFF\n position restraints and excludes their rotors from the move set\n:param nci: not supported\n:param max_confs: maximum number of conformers to return\n\nNew:\n:param n_steps: number of MCMM exploration steps (primary quality/speed lever)\n:param energy_window_kcal: energy window for keeping conformers (kcal/mol)\n:param parent_strategy: how to select parent conformers for mutation\n - \"softmax\": energy-biased; favors low-energy basins (good for NMR/property prediction)\n - \"uniform\": random; maximizes diversity (good for docking)\n - \"best\": always mutate the lowest-energy conformer; fastest but least diverse\n:param final_select: how the final conformer set is selected\n - \"diverse\": k-means clustering on 3D shape descriptors; one conformer per cluster\n - \"energy\": lowest-energy conformers only (best for Boltzmann-weighted applications)\n:param do_final_refine: run full MMFF minimization on final set (slower but more accurate geometries)",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"n_steps": {
"default": 200,
"exclusiveMinimum": 0,
"title": "N Steps",
"type": "integer"
},
"energy_window_kcal": {
"default": 10.0,
"exclusiveMinimum": 0,
"title": "Energy Window Kcal",
"type": "number"
},
"parent_strategy": {
"default": "softmax",
"enum": [
"softmax",
"uniform",
"best"
],
"title": "Parent Strategy",
"type": "string"
},
"final_select": {
"default": "diverse",
"enum": [
"energy",
"diverse"
],
"title": "Final Select",
"type": "string"
},
"do_final_refine": {
"default": true,
"title": "Do Final Refine",
"type": "boolean"
},
"settings_type": {
"const": "openconf",
"default": "openconf",
"title": "Settings Type",
"type": "string"
}
},
"title": "OpenConfSettings",
"type": "object"
},
"OptimizationSettings": {
"description": "Geometry optimization settings.\n\n:param max_steps: maximum number of optimization steps\n:param transition_state: perform transition state optimization\n:param recalc_hess_every: recalculate Hessian every n steps (0 = never)\n:param max_gradient_threshold: convergence threshold for max gradient, in Hartree/\u00c5\n:param rms_gradient_threshold: convergence threshold for RMS gradient, in Hartree/\u00c5\n:param max_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param rms_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param energy_threshold: convergence threshold for energy change, in Hartree\n:param optimize_cell: optimize unit cell (periodic systems only)\n:param constraints: geometric constraints to apply\n:param save_intermediate_steps: save intermediate geometries",
"properties": {
"max_steps": {
"default": 250,
"exclusiveMinimum": 0,
"title": "Max Steps",
"type": "integer"
},
"transition_state": {
"default": false,
"title": "Transition State",
"type": "boolean"
},
"recalc_hess_every": {
"default": 0,
"title": "Recalc Hess Every",
"type": "integer"
},
"max_gradient_threshold": {
"default": 0.0005,
"exclusiveMinimum": 0,
"title": "Max Gradient Threshold",
"type": "number"
},
"rms_gradient_threshold": {
"default": 0.0003,
"exclusiveMinimum": 0,
"title": "Rms Gradient Threshold",
"type": "number"
},
"max_displacement_threshold": {
"default": 0.002,
"exclusiveMinimum": 0,
"title": "Max Displacement Threshold",
"type": "number"
},
"rms_displacement_threshold": {
"default": 0.001,
"exclusiveMinimum": 0,
"title": "Rms Displacement Threshold",
"type": "number"
},
"energy_threshold": {
"default": 1e-06,
"exclusiveMinimum": 0,
"title": "Energy Threshold",
"type": "number"
},
"optimize_cell": {
"default": false,
"title": "Optimize Cell",
"type": "boolean"
},
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"save_intermediate_steps": {
"default": true,
"title": "Save Intermediate Steps",
"type": "boolean"
}
},
"title": "OptimizationSettings",
"type": "object"
},
"PBCDFTSettings": {
"description": "PBC DFT settings.\n\n:param plane_wave_cutoff: plane-wave kinetic-energy cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n:param charge_density_cutoff: charge-density plane-wave cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n:param kpoints: Monkhorst\u2013Pack k-point-grid dimensions; (None -> \u00c5\u207b\u00b9 = .3)\n:param smearing_type: occupations smearing type\n:param smearing_width: smearing width, if relevant (Hartree)\n:param hubbard_u: DFT+U on-site Coulomb repulsion per element symbol (Hartree)\n None = no DFT+U; \"auto\" = automatic U values from MP database",
"properties": {
"plane_wave_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Plane Wave Cutoff"
},
"charge_density_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Charge Density Cutoff"
},
"kpoints": {
"anyOf": [
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Kpoints"
},
"smearing_type": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSmearing"
},
{
"type": "null"
}
],
"default": null
},
"smearing_width": {
"default": 0.005,
"exclusiveMinimum": 0,
"title": "Smearing Width",
"type": "number"
},
"hubbard_u": {
"anyOf": [
{
"additionalProperties": {
"exclusiveMinimum": 0,
"type": "number"
},
"type": "object"
},
{
"const": "auto",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Hubbard U"
}
},
"title": "PBCDFTSettings",
"type": "object"
},
"PBCDFTSmearing": {
"description": "Smearing types for occupations in PBC DFT calculations.",
"enum": [
"marzari_vanderbilt",
"methfessel_paxton",
"fermi_dirac",
"gaussian"
],
"title": "PBCDFTSmearing",
"type": "string"
},
"SCFSettings": {
"description": "Settings for SCF convergence.\n\n:param max_iters: maximum number of SCF iterations to permit\n:param soscf: whether or not to use SOSCF (second-order SCF).",
"properties": {
"max_iters": {
"default": 250,
"title": "Max Iters",
"type": "integer"
},
"soscf": {
"$ref": "#/$defs/UseSOSCF",
"default": "upon_failure"
}
},
"title": "SCFSettings",
"type": "object"
},
"Settings": {
"description": "Settings for (base) computational chemistry calculations.\n\n:param mode: calculation mode (affects thresholds for optimizations, etc.)\n:param tasks: tasks to perform (deprecated, specify in workflows or calculations instead)\n:param method: computational method\n:param basis_set: basis set to use (autopopulated for 3c methods)\n:param engine: computational engine to use (auto-selected if None)\n:param corrections: list of corrections to apply (e.g. D3BJ, D4)\n:param solvent_settings: solvent model settings (if any)\n:param omega: range-separation parameter (Bohr\u207b\u00b9) or method to tune it (optional)\n:param excited_state_settings: settings for excited-state calculations (if any)\n:param pbc_dft_settings: settings specific to DFT calculations on periodic systems\n:param scf_settings: SCF settings\n:param opt_settings: geometry optimization settings\n:param thermochem_settings: thermochemistry settings\n:param compute_settings: hardware settings",
"properties": {
"mode": {
"$ref": "#/$defs/Mode",
"default": "auto"
},
"tasks": {
"default": [
"energy",
"charge",
"dipole"
],
"items": {
"$ref": "#/$defs/Task"
},
"title": "Tasks",
"type": "array"
},
"method": {
"$ref": "#/$defs/Method",
"default": "hf"
},
"basis_set": {
"anyOf": [
{
"$ref": "#/$defs/BasisSet"
},
{
"type": "null"
}
],
"default": null
},
"engine": {
"$ref": "#/$defs/Engine",
"default": null
},
"corrections": {
"default": [],
"items": {
"$ref": "#/$defs/Correction"
},
"title": "Corrections",
"type": "array"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
},
"omega": {
"anyOf": [
{
"$ref": "#/$defs/OmegaTuning"
},
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Omega"
},
"excited_state_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"tddft_settings": "#/$defs/TDDFTSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/TDDFTSettings"
}
]
},
{
"type": "null"
}
],
"default": null,
"title": "Excited State Settings"
},
"pbc_dft_settings": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSettings"
},
{
"type": "null"
}
],
"default": null
},
"scf_settings": {
"$ref": "#/$defs/SCFSettings",
"default": {
"max_iters": 250,
"soscf": "upon_failure"
}
},
"opt_settings": {
"$ref": "#/$defs/OptimizationSettings",
"default": {
"max_steps": 250,
"transition_state": false,
"recalc_hess_every": 0,
"max_gradient_threshold": 0.0005,
"rms_gradient_threshold": 0.0003,
"max_displacement_threshold": 0.002,
"rms_displacement_threshold": 0.001,
"energy_threshold": 1e-06,
"optimize_cell": false,
"constraints": [],
"save_intermediate_steps": true
}
},
"thermochem_settings": {
"$ref": "#/$defs/ThermochemistrySettings",
"default": {
"cutoff_frequency": 100.0,
"temperature": 298.0,
"scaling_factor": 1.0,
"concentration": 0.0408740470708
}
},
"compute_settings": {
"$ref": "#/$defs/ComputeSettings",
"default": {
"requested_compute_type": "cpu",
"compute_type_used": null
}
}
},
"title": "Settings",
"type": "object"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\n:param solvent: solvent to use\n:param model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"TDDFTSettings": {
"description": "Settings for TDDFT calculations.\n\nNew:\n:param tda: use Tamm-Dancoff approximation\n:param num_excitations: number of excitations to calculate\n:param target_root: root to target (for gradient/optimization)",
"properties": {
"tda": {
"default": true,
"title": "Tda",
"type": "boolean"
},
"num_excitations": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Excitations",
"type": "integer"
},
"target_root": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Target Root"
},
"settings_type": {
"const": "tddft_settings",
"default": "tddft_settings",
"title": "Settings Type",
"type": "string"
}
},
"title": "TDDFTSettings",
"type": "object"
},
"Task": {
"description": "Calculation task type.",
"enum": [
"energy",
"gradient",
"optimize",
"optimize_ts",
"charge",
"spin_density",
"dipole",
"hessian",
"frequencies",
"stress",
"band_structure",
"elastic_tensor"
],
"title": "Task",
"type": "string"
},
"ThermochemistrySettings": {
"description": "Thermochemistry calculation settings.\n\n:param cutoff_frequency: Cramer/Truhlar quasi-harmonic cutoff, in cm^-1\n:param temperature: temperature for thermochemistry, in K\n:param scaling_factor: frequency scaling factor\n:param concentration: concentration, in M (defaults to 1 atm)",
"properties": {
"cutoff_frequency": {
"default": 100,
"minimum": 0,
"title": "Cutoff Frequency",
"type": "number"
},
"temperature": {
"default": 298,
"minimum": 0,
"title": "Temperature",
"type": "number"
},
"scaling_factor": {
"default": 1.0,
"minimum": 0,
"title": "Scaling Factor",
"type": "number"
},
"concentration": {
"default": 0.0408740470708,
"minimum": 0,
"title": "Concentration",
"type": "number"
}
},
"title": "ThermochemistrySettings",
"type": "object"
},
"UseSOSCF": {
"enum": [
"always",
"upon_failure",
"never"
],
"title": "UseSOSCF",
"type": "string"
},
"iMTDSettings": {
"description": "Settings for iMTD style conformer generation.\n\nSee https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/choose_settings.f90#L202\nand https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/confparse.f90#L825\nfor how quick, superquick, and megaquick are defined.\n\nSee build_imtd_setings(mode) for sensible defaults.\n\nInherited:\n:param screening: post-generation screening settings (not used)\n:param constraints: constraints to add\n:param nci: add an ellipsoide potential around the input structure\n:param max_confs: maximum number of conformers to keep\n\nNew:\n:param mtd_method: method for the metadynamics\n:param mtd_runtype: algorithm used\n:param speed: speed of the calculations (CREST specific setting)\n:param reopt: re-optimize conformers (corrects for the lack of rotamer metadynamics and GC)\n:param free_energy_weights: calculate frequencies and re-weight based on free energies\n:param energy_window: energy window used, in kcal/mol (CREST specific setting). if set, overrides default from speed\n:param solvent_settings: solvent to use, if any",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"settings_type": {
"const": "imtd",
"default": "imtd",
"title": "Settings Type",
"type": "string"
},
"mtd_method": {
"default": "gfn_ff",
"enum": [
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb"
],
"title": "Mtd Method",
"type": "string"
},
"mtd_runtype": {
"default": "imtd-gc",
"title": "Mtd Runtype",
"type": "string"
},
"speed": {
"$ref": "#/$defs/iMTDSpeeds",
"default": "quick"
},
"reopt": {
"default": false,
"title": "Reopt",
"type": "boolean"
},
"free_energy_weights": {
"default": false,
"title": "Free Energy Weights",
"type": "boolean"
},
"energy_window": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Energy Window"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "iMTDSettings",
"type": "object"
},
"iMTDSpeeds": {
"enum": [
"megaquick",
"superquick",
"quick",
"normal",
"extensive"
],
"title": "iMTDSpeeds",
"type": "string"
}
},
"description": "Mixin for classes need conformer search\u2014a combination of conformer generation and optimization.\n\nInherited (ConformerGenMixin):\n:param conf_gen_settings: settings for conformer generation\n:param constraints: constraints to add\n:param nci: add a constraining potential for non-covalent interactions\n\nInherited (MultiStageOptMixin):\n:param multistage_opt_settings: settings for the optimization",
"properties": {
"multistage_opt_settings": {
"$ref": "#/$defs/MultiStageOptSettings"
},
"conf_gen_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"etkdg": "#/$defs/ETKDGSettings",
"imtd": "#/$defs/iMTDSettings",
"lyrebird": "#/$defs/LyrebirdSettings",
"monte_carlo_multiple_minimum": "#/$defs/MonteCarloMultipleMinimumSettings",
"openconf": "#/$defs/OpenConfSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/ETKDGSettings"
},
{
"$ref": "#/$defs/iMTDSettings"
},
{
"$ref": "#/$defs/LyrebirdSettings"
},
{
"$ref": "#/$defs/MonteCarloMultipleMinimumSettings"
},
{
"$ref": "#/$defs/OpenConfSettings"
}
]
},
{
"type": "null"
}
],
"title": "Conf Gen Settings"
},
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"conformer_clustering_settings": {
"anyOf": [
{
"$ref": "#/$defs/ConformerClusteringSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"multistage_opt_settings",
"conf_gen_settings"
],
"title": "ConformerSearchMixin",
"type": "object"
}
Fields:
-
multistage_opt_settings(MultiStageOptSettings) -
conf_gen_settings(ConformerGenSettingsUnion | None) -
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(int | None) -
conformer_clustering_settings(ConformerClusteringSettings | None)
Trajectory clustering settings for MD post-processing.
KMeansClusteringSettings
pydantic-model
Bases: BaseModel
K-means trajectory clustering settings.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
num_clusters
|
maximum number of clusters |
required |
Show JSON schema:
{
"description": "K-means trajectory clustering settings.\n\n:param num_clusters: maximum number of clusters",
"properties": {
"num_clusters": {
"default": 10,
"exclusiveMinimum": 0,
"title": "Num Clusters",
"type": "integer"
},
"settings_type": {
"const": "kmeans",
"default": "kmeans",
"title": "Settings Type",
"type": "string"
}
},
"title": "KMeansClusteringSettings",
"type": "object"
}
Fields:
-
num_clusters(PositiveInt) -
settings_type(Literal['kmeans'])
GreedyClusteringSettings
pydantic-model
Bases: BaseModel
Greedy neighbourhood trajectory clustering settings.
Frames within cutoff_angstrom RMSD of the current cluster centre are
assigned to that cluster; the centre is chosen greedily as the frame with
the most unassigned neighbours.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cutoff_angstrom
|
RMSD neighbourhood cutoff, in Å |
required |
Show JSON schema:
{
"description": "Greedy neighbourhood trajectory clustering settings.\n\nFrames within `cutoff_angstrom` RMSD of the current cluster centre are\nassigned to that cluster; the centre is chosen greedily as the frame with\nthe most unassigned neighbours.\n\n:param cutoff_angstrom: RMSD neighbourhood cutoff, in \u00c5",
"properties": {
"cutoff_angstrom": {
"default": 2.0,
"exclusiveMinimum": 0,
"title": "Cutoff Angstrom",
"type": "number"
},
"settings_type": {
"const": "greedy",
"default": "greedy",
"title": "Settings Type",
"type": "string"
}
},
"title": "GreedyClusteringSettings",
"type": "object"
}
Fields:
-
cutoff_angstrom(PositiveFloat) -
settings_type(Literal['greedy'])