torchcell.datamodels.schema.SmallMoleculePerturbation

class SmallMoleculePerturbation(*, provenance_gaps: list[~torchcell.verification.sourced.ProvenanceGap] = <factory>, perturbation_type: ~typing.Literal['small_molecule'] = 'small_molecule', description: str = 'Small-molecule compound added to the base medium', compound: ~torchcell.datamodels.schema.Compound, concentration: ~torchcell.datamodels.schema.Concentration, solvent: ~torchcell.datamodels.schema.Solvent | None = None)[source]

Bases: EnvironmentPerturbation, ModelStrict

An added chemical SPECIES (drug, acid, alcohol, salt, oxidant, …).

Covers any medium-borne small molecule dosed at a Concentration or a target basis (e.g. IC30). Chemical identity is a typed Compound (keyed by InChIKey); the compound’s mode of action / physiological role is a ChEBI ROLE on compound.roles – there is deliberately NO consequence field (the former stress_category was a category error, M1). Whether the strain is sensitive or tolerant is an EnvironmentResponsePhenotype property, not part of the edit.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].