torchcell.datamodels.media.dropout

dropout(base: Media, *compound_names: str, name: str, partial: tuple[str, ...] = (), provenance: list[SourcedValue] | None = None, partial_note: str | None = None) → Media[source]

base with the named compounds moved from components into dropouts.

A nutrient dropout is a typed EDIT of a defined medium, not a perturbation of an unrelated one: encoding it this way is what makes a tryptophan dropout join to SC, to SC_URA and to the SGA selection media at the same base.

compound_names are looked up through resolved_compound so a source’s spelling (“tryptophan”, “PABA”) selects the base’s canonical component (“L-tryptophan”, “4-aminobenzoic acid”). A name that matches nothing in base raises: a silent no-op dropout would claim an edit that never happened.

partial names compounds the source REDUCED rather than removed. They stay in components with the concentration cleared, because the reduced level is a number the source does not give; dropping them instead would overstate the edit. partial_note replaces the default note on those components when the source does say something about the level (e.g. a released percentage whose basis it never defines).