protonation
Protonation modification methods.
CRESTProtonation
dataclass
Bases: ProtonationMaker, CRESTCalculator, PymatGenMaker[InputType, OutputType]
flowchart TD
jfchemistry.modification.protonation.CRESTProtonation[CRESTProtonation]
jfchemistry.modification.protonation.base.ProtonationMaker[ProtonationMaker]
jfchemistry.modification.base.StructureModification[StructureModification]
jfchemistry.calculators.crest.crest_calculator.CRESTCalculator[CRESTCalculator]
jfchemistry.calculators.base.Calculator[Calculator]
jfchemistry.core.makers.pymatgen_maker.PymatGenMaker[PymatGenMaker]
jfchemistry.core.makers.jfchem_maker.JFChemMaker[JFChemMaker]
jfchemistry.core.makers.core_maker.CoreMaker[CoreMaker]
jfchemistry.modification.protonation.base.ProtonationMaker --> jfchemistry.modification.protonation.CRESTProtonation
jfchemistry.modification.base.StructureModification --> jfchemistry.modification.protonation.base.ProtonationMaker
jfchemistry.calculators.crest.crest_calculator.CRESTCalculator --> jfchemistry.modification.protonation.CRESTProtonation
jfchemistry.calculators.base.Calculator --> jfchemistry.calculators.crest.crest_calculator.CRESTCalculator
jfchemistry.core.makers.pymatgen_maker.PymatGenMaker --> jfchemistry.modification.protonation.CRESTProtonation
jfchemistry.core.makers.jfchem_maker.JFChemMaker --> jfchemistry.core.makers.pymatgen_maker.PymatGenMaker
jfchemistry.core.makers.core_maker.CoreMaker --> jfchemistry.core.makers.jfchem_maker.JFChemMaker
click jfchemistry.modification.protonation.CRESTProtonation href "" "jfchemistry.modification.protonation.CRESTProtonation"
click jfchemistry.modification.protonation.base.ProtonationMaker href "" "jfchemistry.modification.protonation.base.ProtonationMaker"
click jfchemistry.modification.base.StructureModification href "" "jfchemistry.modification.base.StructureModification"
click jfchemistry.calculators.crest.crest_calculator.CRESTCalculator href "" "jfchemistry.calculators.crest.crest_calculator.CRESTCalculator"
click jfchemistry.calculators.base.Calculator href "" "jfchemistry.calculators.base.Calculator"
click jfchemistry.core.makers.pymatgen_maker.PymatGenMaker href "" "jfchemistry.core.makers.pymatgen_maker.PymatGenMaker"
click jfchemistry.core.makers.jfchem_maker.JFChemMaker href "" "jfchemistry.core.makers.jfchem_maker.JFChemMaker"
click jfchemistry.core.makers.core_maker.CoreMaker href "" "jfchemistry.core.makers.core_maker.CoreMaker"
Generate protonated structures using CREST.
Uses CREST's automated protonation workflow to identify basic sites and generate low-energy protonated structures. The method systematically explores different protonation sites and optimizes the resulting structures.
| ATTRIBUTE | DESCRIPTION |
|---|---|
name |
Name of the job (default: "CREST Protonation").
TYPE:
|
runtype |
Workflow type (default: "protonate").
TYPE:
|
ion |
Ion to add for protonation (default: None, uses H+).
TYPE:
|
ion_charge |
Charge of the ion (default: 1).
TYPE:
|
References
- CREST Documentation: https://crest-lab.github.io/crest-docs/
Examples:
>>> from jfchemistry.modification import CRESTProtonation
>>> from pymatgen.core import Molecule
>>> from ase.build import molecule
>>> molecule = Molecule.from_ase_atoms(molecule("CCH"))
>>> prot = CRESTProtonation(ewin=6.0, threads=4)
>>> job = prot.make(molecule)
>>> protonated_structures = job.output["structure"]
>>> prot_custom = CRESTProtonation(
... ewin=8.0,
... ffopt=True,
... finalopt=True,
... threads=8
... )
>>> job = prot_custom.make(molecule)
>>> protonated_structures = job.output["structure"]
>>> prot_solv = CRESTProtonation(
... ewin=6.0,
... solvation=("alpb", "water") # ALPB with water
... )
>>> job = prot_solv.make(molecule)
>>> protonated_structures = job.output["structure"]
>>> prot_gbsa = CRESTProtonation(
... ewin=6.0,
... solvation=("gbsa", "DMSO") # GBSA with DMSO
... )
>>> job = prot_gbsa.make(molecule)
>>> protonated_structures = job.output["structure"]
Source code in jfchemistry/modification/protonation/crest_protonation.py
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | |
make
make(input: InputType | list[InputType], **kwargs) -> Response[_output_model]
Create a workflow job for processing structure(s).
Automatically handles job distribution for lists of structures. Each structure in a list is processed as a separate job for parallel execution.
| PARAMETER | DESCRIPTION |
|---|---|
input
|
Single Pymatgen SiteCollection or list of SiteCollections.
TYPE:
|
**kwargs
|
Additional kwargs to pass to the operation.
DEFAULT:
|
| RETURNS | DESCRIPTION |
|---|---|
Response[_output_model]
|
Response containing: - structure: Processed structure(s) - files: XYZ format file(s) of the structure(s) - properties: Computed properties from the operation |
Examples:
>>> from jfchemistry.conformers import CRESTConformers
>>> from pymatgen.core import Molecule
>>> molecule = Molecule.from_ase_atoms(molecule("C2H6"))
>>> # Generate conformers
>>> conformer_gen = CRESTConformers(ewin=6.0)
>>> job = conformer_gen.make(input)
Source code in jfchemistry/core/makers/jfchem_maker.py
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | |