torchcell.data.DeletionKeyedGenotypeAggregator

class DeletionKeyedGenotypeAggregator(root: str)[source]

Bases: GenotypeAggregator

Aggregator keyed on the DELETION gene set only; other axes are background.

Use this when a dataset’s non-deletion perturbations are a constant engineered background rather than the experimental variable. The motivating case is the pigment production screens: every Cachera betaxanthin strain carries the same 4-gene cassette (CYP76AD1, DOD, ARO4 K229L, ARO7 G141S) and every Ozaydin beta-carotene strain the same 3-gene cassette (crtYB, crtI, BTS1), emitted as gene_addition / allele perturbations. Members of those screens differ ONLY by which ORF is deleted, so the deletion gene-set is the genotype identity that matters.

Because GenotypeAggregator keys on the FULL perturbation set, a cassette-bearing pigment genotype can never share a bucket with a single-KO metabolome genotype – measured co-location is exactly ZERO. Keying on deletions alone recovers it (betaxanthin/metabolome and beta-carotene/metabolome both in the thousands), which is what makes any “does the metabolome improve production prediction” contrast possible.

This is the axis-aware-key follow-up WS2b deferred, and it implements Design Decision 3 of [[plan.simb-2026-multimodal-cgt.2026.07.21]] – the cassette belongs to the reference cell, not to the perturbation, so a production phenotype is predicted as a function of the deletion applied to a pathway-carrying reference strain.

A genotype whose perturbations are ALL non-deletions (e.g. cassette-only, no ORF knocked out) hashes to the empty set and therefore groups with other such genotypes. The Fig-6 build queries require at least one deletion per strain, so that bucket is empty in practice.

aggregate_check(data: dict[str, Experiment | FitnessExperiment | GeneInteractionExperiment | GeneEssentialityExperiment | SyntheticLethalityExperiment | SyntheticRescueExperiment | CalMorphExperiment | MicroarrayExpressionExperiment | MicroarrayExpressionScoreExperiment | MicroarrayExpressionRatioExperiment | InductionTimecourseExpressionExperiment | RNASeqExpressionExperiment | PseudobulkExpressionExperiment | VisualScoreExperiment | MetaboliteExperiment | ProteinAbundanceExperiment | ProteinFoldChangeExperiment | EnvironmentResponseExperiment | StrainEnvironmentResponseExperiment | SegregantGrowthExperiment | SegregantPerturbationExperiment | ProductTiterExperiment | ProteinTurnoverExperiment | ProteinSynthesisRateExperiment | FluxExperiment | PromoterActivityExperiment | PooledSortSeqExpressionExperiment | BiosensorFluorescenceExperiment | GradedGeneEssentialityExperiment | PhosphositeIntensityExperiment | MorphologyExperiment | MrnaNumberFractionExperiment | FitnessContrastExperiment | SegregantExpressionExperiment | LifeCycleExperiment | PseudobulkUmiCountExperiment | GenomeArchitectureExperiment | ExperimentReference | FitnessExperimentReference | GeneInteractionExperimentReference | GeneEssentialityExperimentReference | SyntheticLethalityExperimentReference | SyntheticRescueExperimentReference | CalMorphExperimentReference | MicroarrayExpressionExperimentReference | MicroarrayExpressionScoreExperimentReference | MicroarrayExpressionRatioExperimentReference | InductionTimecourseExpressionExperimentReference | RNASeqExpressionExperimentReference | PseudobulkExpressionExperimentReference | VisualScoreExperimentReference | MetaboliteExperimentReference | ProteinAbundanceExperimentReference | ProteinFoldChangeExperimentReference | EnvironmentResponseExperimentReference | StrainEnvironmentResponseExperimentReference | SegregantGrowthExperimentReference | SegregantPerturbationExperimentReference | ProductTiterExperimentReference | ProteinTurnoverExperimentReference | ProteinSynthesisRateExperimentReference | FluxExperimentReference | PromoterActivityExperimentReference | PooledSortSeqExpressionExperimentReference | BiosensorFluorescenceExperimentReference | GradedGeneEssentialityExperimentReference | PhosphositeIntensityExperimentReference | MorphologyExperimentReference | MrnaNumberFractionExperimentReference | FitnessContrastExperimentReference | SegregantExpressionExperimentReference | LifeCycleExperimentReference | PseudobulkUmiCountExperimentReference | GenomeArchitectureExperimentReference]) → str[source]

Return a SHA-256 hash of the experiment’s DELETED gene set.

aggregate_key_raw(record: dict[str, Any]) → str[source]

Return the deletion-gene-set grouping key for one raw record dict.