torchcell.datasets.scerevisiae.kemmeren2014.MicroarrayKemmeren2014Dataset

class MicroarrayKemmeren2014Dataset(root: str = 'data/torchcell/microarray_kemmeren2014', io_workers: int = 0, process_workers: int = 0, batch_size: int = 10, transform: Callable[[...], Any] | None = None, pre_transform: Callable[[...], Any] | None = None, **kwargs: Any)[source]

Bases: ExperimentDataset

Deletion-mutant microarray expression profiling from Kemmeren et al. 2014.

Microarray gene expression data for single-gene deletion mutants profiled against a common wildtype reference pool in a dye-swap design. Combines the responsive and non-responsive mutant GEO series. The four wildtype series (BY4741 MATa, BY4742 MATalpha) are downloaded as the paper’s named WT pools but no stored value is computed from them (#484).

Each deletion is keyed by the ORF the release pairs with its GEO title token (Table S1, or the pinned RELEASE_TITLE_NAMES_WITHOUT_AN_ORF residue), and perturbed_gene_name is the release’s own name for it; no genome is consulted.

Data source: GEO accessions GSE42527, GSE42526, and wildtype references. Paper: Kemmeren et al. (2014) Cell.

organism: ClassVar[Organism] = 'scerevisiae'

each loader declares its own, the build’s organism switch reads it off the class (dataset_organism), and a loader that forgot it is refused by name instead of inheriting an organism it may not have.

Type:

The host organism every record describes. Annotated here WITHOUT a value

property experiment_class: type[Experiment]

Experiment model produced by this dataset.

property reference_class: type[ExperimentReference]

Experiment-reference model produced by this dataset.

property raw_file_names: list[str]

Raw GEO SOFT family files required before processing.

download() → None[source]

Download supplementary Table S1 and expression data from GEO.

process() → None[source]

Parse GEO expression data into experiments and write the LMDB store.

resolve_gene_name_comprehensive(gene_name: str, common_to_systematic: dict[str, str], systematic_to_strain: dict[str, str], already_assigned: set[str] | None = None) → str[source]

The ORF a GEO title token names, through the release only.

Routes, in order, each counted:

  1. RELEASE_TITLE_NAMES_WITHOUT_AN_ORF, the pinned residue of 38 tokens the release pairs with no ORF (see the module comment). When the ORF has no Table S1 row of its own but the token does (TLC1, CMS1, whose orf name cell is the common name), the token’s mating-type row is joined to the ORF in systematic_to_strain.

  2. A Table S1 gene -> that row’s orf name.

  3. A token that IS a Table S1 orf name, taken verbatim.

The release’s own name for the deleted gene (the title token for routes 1 and 2, the row’s Table S1 gene for route 3, else the ORF) is recorded in released_gene_names and becomes perturbed_gene_name. A token on none of the routes raises ValueError: a deletion array the release ships is never skipped silently. already_assigned is accepted and not read.

preprocess_raw(df: DataFrame, preprocess: dict[str, Any] | None = None) → DataFrame[source]

Preprocess raw data - for Kemmeren this is handled in process().

create_experiment() → None[source]

Required by base class but not used - see create_expression_experiment.

static create_expression_experiment(dataset_name: str, sample_info: dict[str, Any], replicate_pairs: SortedDict) → tuple[Any, Any, Any][source]

Build an experiment, reference, and publication from per-array signal pairs.

replicate_pairs maps a gene to its (deletion, refpool) normalized signals, one pair per array (_collect_replicate_pairs_static). The log2 ratio is taken within each array, log2(deletion / refpool), so the two-color design cancels the spot; the mean, sample SD, SE and variance are then taken over the arrays. An array on which either signal is not positive is dropped for that gene. The stored linear expression is the mean deletion signal and the reference expression the mean refpool signal over the same arrays, so the reference n_replicates of a gene is the number of arrays whose refpool value entered that mean (1 or 2 on GEO), equal to the mutant’s own count (#484; the paper’s WT pools of 200, 200, 20 and 8 arrays are not the stored value, see the module comment at the reference pool constants).