torchcell.datamodels.schema.Solvent

class Solvent(*, name: str, percent: float | None = None, compound: Compound | None = None)[source]

Bases: ModelStrict

The vehicle a compound was dissolved in and its final fraction in the medium.

compound optionally carries the vehicle’s typed chemical identity (a reused Compound); name remains the plain label for the common case. A vehicle the source does not state (Hoepfner’s concentrated stocks above the 200 uM solubility ceiling of its 2% DMSO normalization) is SmallMoleculePerturbation.solvent=None with a ProvenanceGap on solvent; this class is not itself a gap carrier because it sits in the schema closure of every small-molecule dataset (#507).

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

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