torchcell.datamodels.schema.BarcodedKanMxDeletionPerturbation

class BarcodedKanMxDeletionPerturbation(*, systematic_gene_name: str, perturbed_gene_name: str, gene_namespace: ~typing.Literal['scerevisiae_s288c_sgd_systematic', 'scerevisiae_cenpk113_7d_locus_tag', 'scerevisiae_peter2018_pangenome_orf', 'ecoli_k12_mg1655_bnumber', 'ecoli_k12_bw25113_locus_tag', 'pputida_kt2440_locus_tag', 'ecoli_b_rel606_locus_tag', 'ecoli_k12_w3110_refseq_locus_tag'] = 'scerevisiae_s288c_sgd_systematic', identifier_mapping: ~torchcell.datamodels.schema.DerivedIdentifierMapping | None = None, provenance: str = 'engineered', state: str = 'absent', mechanism_so_id: str = 'SO:0000159', mechanism_so_name: str = 'deletion', description: str = 'Deletion via KanMX or NatMX gene replacement', perturbation_type: ~typing.Literal['barcoded_kanmx_deletion'] = 'barcoded_kanmx_deletion', deletion_description: str = 'Deletion via KanMX gene replacement.', deletion_type: str = 'KanMX', construction: ~torchcell.datamodels.schema.StrainConstruction | None = None, provenance_gaps: list[~torchcell.verification.sourced.ProvenanceGap] = <factory>, barcode: str | None = None, downtag_barcode: str | None = None, collection: str | None = None, cassette: str | None = None, constructed_orf: ~torchcell.datamodels.schema.ConstructedOrf | None = None)[source]

Bases: HashableProvenanceGapMixin, KanMxDeletionPerturbation, ModelStrict

A KanMX deletion strain that carries the molecular barcode it was screened by.

A pooled competitive-growth screen (Bar-seq, HIP/HOP) does not read colonies, it reads the 20-mer UPTAG/DNTAG the deletion cassette carries, so the barcode IS the strain’s read-out identity in that assay and belongs on the perturbation rather than in a note. collection records WHICH physical deletion set the strain came from (Euroscarf MATa, the Yeast Knockout Collection HOM/HET pool, …), because two collections can hold the same ORF deletion with different background mutations and different barcodes.

This is the leaf for every whole-locus kanMX deletion a chemogenomic loader serves: a haploid deletion in a haploid background (Wildenhain, Vanacloig) and a homozygous deletion in a diploid background (HOP: Hillenmeyer hom, Hoepfner HOP); zygosity is read from the reference’s ploidy. cassette names the exact cassette (kanMX4 for the YKO, sourced to Giaever 2014); barcode is the UPTAG (or the only tag a source names) and downtag_barcode the DNTAG; construction records the strain’s accession / lab / batch / plate; constructed_orf states the physically deleted ORF when it is not the current gene.

Every new field is nullable and gappable: None with a ProvenanceGap (e.g. a barcode table not yet mirrored) is a typed absence rather than a guess. The leaf exists for the barcode read-out identity of a pooled assay; construction is also declared on KanMxDeletionPerturbation since 2026-10-15, because the position of a strain in its collection is a fact of every collection strain, barcoded or scored by eye (constitution, principle 8: the former argument that a field on the parent would move 33 served closures was a cost argument, and cost never decides).

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

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