Skip to content

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:

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_constraintsconstraints
  • check_ncinci

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

from_mode(mode: Mode) -> Self

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_constraintsconstraints
  • check_ncinci

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_constraintsconstraints
  • check_ncinci

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_constraintsconstraints
  • check_ncinci

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'])