Edit on GitHub

starplast.embedding

Building an embedding from a chosen set of features, with the choices made explicit.

The original embedding hard-coded three decisions that turned out to be wrong, and hid them:

  • Missing values were imputed to the column median without saying so. "Not measured" silently became "average". Genes lacking a measurement do sit apart in the map -- 0.4 to 1.0 map-radii depending on policy -- but measuring this properly shows the gap is NOT simply an imputation artefact: it survives dropping the offending column, and missingness between assays is only weakly correlated (r = 0.07-0.15), so there is no single "was this gene studied" factor. Much of the gap is real biology that missingness tracks, since hyperLOPIT, phosphoproteomics and structure prediction all miss low-abundance and unusually large proteins. The defect was never the gap; it was that the choice was hidden and unmeasured. missingness_leak() now quantifies it for any spec.
  • All columns were z-scored alike. Standard deviations across this table span 8,351x (length 977, lopit_prob_mcmc 0.117), and 64x within the fitness screens alone (fit_invivo_PE 34.7, fit_ifng 0.541). z-scoring equalises spread but not shape, so heavy-tailed published scores still dominate.
  • hyperLOPIT was multiplied by 0.5 and called a contributor. 27 one-hot columns at that scale carry 0.17 of 16.17 total variance -- 1.1%. It was named as a design input while having no influence.

Everything here is a parameter instead. EmbeddingSpec records the full recipe, so an embedding can be reproduced, compared against another, and reported in a methods section.

Missing-value policies:

"drop_columns"    exclude any feature missing in more than `max_missing` of genes
"drop_genes"      keep the features, drop genes with any missing value
"median"          impute to the column median (the old behavior, kept for comparison)
"indicator"       impute, AND add a 0/1 column recording that it was missing

Measured on this table: median gives the smallest gap (0.68 map-radii), indicator the largest (1.02) because it deliberately hands missingness to the embedding as a feature, and drop_columns barely helps (0.69) for the reason above. drop_genes is available but near-useless here -- with ~50 features only 3 of 8,140 genes have no missing value at all.

So median remains the default, not because it is unbiased but because it is the least assertive; what changed is that the policy is now stated, selectable, and its consequence measurable.

NA_POLICIES = ('indicator', 'median', 'drop_columns', 'drop_genes')
SCALINGS = ('robust', 'zscore', 'rank', 'none')
METHODS = ('umap', 'tsne', 'pca')
BLOCKS = {'structure_af3': '^af3_', 'expression_summary': '^expr_', 'expression_raw': '^rna\\d+_', 'transcription_tachyzoite_comparator': '^invivo_TZ_', 'transcription_in_vivo_brain': '^invivo_(?:WholeBrain|BZ_)', 'transcription_stress_conversion': '^stress_', 'transcription_tf_chromatin_perturbation': '^morc_', 'fitness_screens': '^fit_', 'published_screens': '^(crispr_|hosttx_)', 'localization': '^(lopit_prob|lopit_methods_agree)', 'protein_abundance_perturbation': '^proteome_', 'protein_abundance_oocyst': '^oocyst_', 'phosphorylation_quantitative': '^phospho_', 'protein_features': '^(mean_plddt|paralog_number|n_interpro|n_phosphosites|n_tm|length|tm_kd_|has_domain|has_signal_peptide|is_tm|lineage_specific|protein_ibaq_log2)', 'literature': '^(n_publications|n_fulltext|n_papers_)', 'interactions': '^(n_xlink_partners|n_struct_similar|n_ipms_partners|n_holes)', 'Tg_transcription_tachyzoite': '', 'Tg_transcription_bradyzoite_tissue_cyst': '', 'Tg_transcription_oocyst_sporozoite': '', 'Tg_transcription_merozoite': '', 'Tg_transcription_sexual_stages': '', 'Tg_transcription_per_cell_cycle_phase': '', 'Tg_transcription_in_naive_macrophage': '', 'Tg_transcription_in_vivo_brain_acute': '', 'Tg_transcription_in_vivo_brain_chronic': '', 'Tg_transcription_purified_bradyzoite_in_vivo': '', 'Tg_transcription_primary_brain_cell_differentiation_time_course': '', 'Tg_transcription_under_stress_conversion': '', 'Tg_transcription_extracellular_lytic_stress': '', 'Tg_transcription_under_tf_or_chromatin_perturbation': '', 'Tg_transcription_under_rna_processing_perturbation': '', 'Tg_transcription_bradyzoite_checkpoint_perturbation': '', 'Tg_transcription_maximum_observed_across_stages': '', 'Tg_translation_tachyzoite': '', 'Tg_translation_bradyzoite': '', 'Tg_translation_under_stress': '', 'Tg_translation_efficiency_tachyzoite': '', 'Tg_translation_efficiency_extracellular_stress': '', 'Tg_translation_efficiency_bradyzoite': '', 'Tg_translation_under_initiation_factor_depletion': '', 'Tg_transcription_under_initiation_factor_depletion': '', 'Tg_protein_abundance_tachyzoite': '', 'Tg_protein_abundance_other_life_stages': '', 'Tg_thermal_stability_melting_temperature': '', 'Tg_phosphorylation_site_count': '', 'Tg_phosphorylation_quantitative': '', 'Tg_phosphorylation_kinase_substrate': '', 'Tg_acetylation': '', 'Tg_n_myristoylation': '', 'Tg_arginine_methylation': '', 'Tg_lactylation': '', 'Tg_s_nitrosylation': '', 'Tg_ubiquitination_sumoylation': '', 'Tg_glycosylation': '', 'Tg_transcription_bradyzoite_subtype_in_vivo': '', 'Tg_protein_abundance_under_stress': '', 'Tg_transcription_under_iron_depletion': '', 'Tg_organelle_surface_membrane_contact_site': '', 'Tg_palmitoylation': '', 'Tg_fitness_hff_in_vitro': '', 'Tg_fitness_naive_macrophage': '', 'Tg_fitness_ifn_gamma_macrophage': '', 'Tg_fitness_in_vivo_peritoneum': '', 'Tg_fitness_in_vivo_lung': '', 'Tg_fitness_in_vivo_liver': '', 'Tg_fitness_in_vivo_spleen': '', 'Tg_fitness_in_vivo_heart': '', 'Tg_fitness_in_vivo_brain': '', 'Tg_fitness_serum_restriction': '', 'Tg_fitness_carbon_source_withdrawal': '', 'Tg_fitness_parasite_density': '', 'Tg_fitness_oxidative_stress': '', 'Tg_fitness_hyperlopit_unassigned_proteins': '', 'Tg_fitness_targeted_in_vivo_young_2019': '', 'Tg_genetic_interaction_delta_gra17': '', 'Tg_fitness_gra12_screen_1_in_vitro': '', 'Tg_fitness_gra12_screen_1_in_vivo': '', 'Tg_fitness_gra12_screen_1_differential': '', 'Tg_fitness_gra12_screen_2_in_vitro': '', 'Tg_fitness_gra12_screen_2_in_vivo': '', 'Tg_fitness_gra12_screen_2_differential': '', 'Tg_stage_conversion_phenotype': '', 'Tg_drug_sensitivity': '', 'Tg_tf_binding_per_factor': '', 'Tg_chromatin_state_histone_marks': '', 'Tg_chromatin_accessibility': '', 'Tg_rna_modification_m6a_5mc': '', 'Tg_5_utr_architecture': '', 'Tg_splicing_isoform_use': '', 'Tg_rna_stability_half_life': '', 'Tg_localization_measured': '', 'Tg_localization_transferred': '', 'Tg_membrane_topology': '', 'Tg_exposure_to_host_cytosol': '', 'Tg_secretome_excreted': '', 'Tg_interaction_proximity_labelling': '', 'Tg_interaction_degree_crosslink_ms': '', 'Tg_interaction_degree_ip_ms': '', 'Tg_interaction_degree_structural_similarity': '', 'Tg_host_interaction_degree': '', 'Tg_host_transcriptional_effect_per_effector': '', 'Tg_domain_content': '', 'Tg_fold_confidence_disorder': '', 'Tg_conservation_breadth': '', 'Tg_paralogy': '', 'Tg_sequence_basics': '', 'Tg_strain_variation': '', 'Tg_enzyme_classification': '', 'Tg_resistance_conferring_mutation': '', 'Tg_target_engagement_thermal_shift': '', 'Tg_rna_binding_protein_targets': '', 'Tg_noncoding_and_antisense_transcription': '', 'Tg_codon_usage_translation_efficiency': '', 'Tg_complex_membership': '', 'Tg_seroreactivity_antigenicity': '', 'Tg_t_cell_epitope_content': '', 'Tg_host_escrt_recruitment': '', 'Tg_invasion_and_egress_phenotype': '', 'Tg_essentiality_in_a_second_background': '', 'Tg_local_af3_fold_confidence_and_geometry': '', 'Tg_transcription_in_vivo_enteric': '', 'Tg_fitness_in_vivo_gut': '', 'Tg_cyst_wall_composition': ''}
def slot_blocks(organism: str | None = None) -> dict:

Feature slots for a species, or all species when resolving a saved explicit recipe.

SLOT_BLOCKS = {'Tg_transcription_tachyzoite': Slot(organism='Tg', name='transcription · tachyzoite', axis='transcription', context='tachyzoite, in vitro', unit='gene', patterns=('expr_tachy', 'rna108740_Tachyzoites', 'invivo_TZ_', 'rna22258_tachyzoite', 'rna99395_intracellular_', 'rna129869_', 'rna51780_tachy_', 'rna245775_parent_tachy_'), policy='one', candidates=(), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'tachyzoite'), biology_path=('gene expression', 'RNA abundance', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'transcription'), target_family='transcription_tachyzoite', target_columns=(), role='feature'), 'Tg_transcription_bradyzoite_tissue_cyst': Slot(organism='Tg', name='transcription · bradyzoite / tissue cyst', axis='transcription', context='bradyzoite', unit='gene', patterns=('expr_cyst', 'rna108740_Tissue_cysts', 'rna108740_Day', 'rna22258_bradyzoite'), policy='average', candidates=(['41580398', 'GSE311669', 'bradyzoite subtypes, 2026'],), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'bradyzoite'), biology_path=('gene expression', 'RNA abundance', 'bradyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'bradyzoite', 'transcription'), target_family='transcription_bradyzoite_tissue_cyst', target_columns=(), role='feature'), 'Tg_transcription_oocyst_sporozoite': Slot(organism='Tg', name='transcription · oocyst / sporozoite', axis='transcription', context='oocyst, sporulation', unit='gene', patterns=('rna206344_', 'expr_sporulated'), policy='average', candidates=(), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'sporozoite'), biology_path=('gene expression', 'RNA abundance', 'sporozoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'sporozoite', 'transcription'), target_family='transcription_oocyst_sporozoite', target_columns=(), role='feature'), 'Tg_transcription_merozoite': Slot(organism='Tg', name='transcription · merozoite', axis='transcription', context='merozoite', unit='gene', patterns=('rna51780_mero_',), policy='one', candidates=(['24885521', 'GSE51780', 'measured feline merozoites'], ['25757795', 'PRJEB7935', 'asexual expansion, distinct from tachyzoite']), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'merozoite'), biology_path=('gene expression', 'RNA abundance', 'merozoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'merozoite', 'transcription'), target_family='transcription_merozoite', target_columns=(), role='feature'), 'Tg_transcription_sexual_stages': Slot(organism='Tg', name='transcription · sexual stages', axis='transcription', context='feline gut, sexual', unit='gene', patterns=('sexual_stage_8dpi_log2fc',), policy='one', candidates=(['38093015', 'GSE222819', 'in vitro pre-sexual stages'], ['42020723', '', 'single-cell atlas of sexual development, 2026'], ['', 'GSE282299', 'from the GEO index; verify assay and parasite-gene shape'], ['41193469', 'GSE287537', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE277553', 'from the GEO index; verify assay and parasite-gene shape'], ['40217127', 'GSE271902', 'from the GEO index; verify assay and parasite-gene shape'], ['40217127', 'GSE271900', 'from the GEO index; verify assay and parasite-gene shape'], ['39716984', 'GSE283441', 'from the GEO index; verify assay and parasite-gene shape'], ['38791568', 'GSE249604', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222835', 'from the GEO index; verify assay and parasite-gene shape'], ['37953800', 'PXD045050', 'automatically proposed; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'sexual'), biology_path=('gene expression', 'RNA abundance', 'sexual', 'unperturbed'), context_path=('in vivo', 'cat', 'gut', 'sexual', 'transcription'), target_family='transcription_sexual_stages', target_columns=(), role='feature'), 'Tg_transcription_per_cell_cycle_phase': Slot(organism='Tg', name='transcription · per cell-cycle phase', axis='transcription', context='cell cycle', unit='gene', patterns=('cellcycle19092_',), policy='separate', candidates=(['20865045', 'GSE19092', 'synchronized tachyzoite time course'], ['32065584', '', 'the study behind cellcycle_phase, re-ingested as VALUES not a call']), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'tachyzoite (implied)'), biology_path=('gene expression', 'RNA abundance', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite (implied)', 'transcription'), target_family='transcription_per_cell_cycle_phase', target_columns=(), role='feature'), 'Tg_transcription_in_naive_macrophage': Slot(organism='Tg', name='transcription · in naive macrophage', axis='transcription', context='host: naive macrophage', unit='gene', patterns=('macrophage_expression_percentile',), policy='one', candidates=(['40630957', 'GSE295224', 'dual single-cell and bulk, host-parasite'], ['', 'GSE313582', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313273', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE334992', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE329845', 'from the GEO index; verify assay and parasite-gene shape'], ['41704854', 'GSE300509', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE275112', 'from the GEO index; verify assay and parasite-gene shape'], ['39207100', 'GSE266204', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'tachyzoite (implied)'), biology_path=('gene expression', 'RNA abundance', 'tachyzoite (implied)', 'unperturbed'), context_path=('host-cell or host-derived', 'no host', 'macrophage', 'tachyzoite (implied)', 'transcription'), target_family='transcription_in_naive_macrophage', target_columns=(), role='feature'), 'Tg_transcription_in_vivo_brain_acute': Slot(organism='Tg', name='transcription · in vivo brain, acute', axis='transcription', context='mouse brain, acute', unit='gene', patterns=('invivo_WholeBrain_Acute',), policy='average', candidates=(), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'tachyzoite (implied)'), biology_path=('gene expression', 'RNA abundance', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'brain', 'tachyzoite (implied)', 'transcription'), target_family='transcription_in_vivo_brain_acute', target_columns=(), role='feature'), 'Tg_transcription_in_vivo_brain_chronic': Slot(organism='Tg', name='transcription · in vivo brain, chronic', axis='transcription', context='mouse brain, chronic', unit='gene', patterns=('invivo_WholeBrain_Chronic',), policy='average', candidates=(), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'tachyzoite (implied)'), biology_path=('gene expression', 'RNA abundance', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'brain', 'tachyzoite (implied)', 'transcription'), target_family='transcription_in_vivo_brain_chronic', target_columns=(), role='feature'), 'Tg_transcription_purified_bradyzoite_in_vivo': Slot(organism='Tg', name='transcription · purified bradyzoite in vivo', axis='transcription', context='mouse brain, purified bradyzoite', unit='gene', patterns=('invivo_BZ_',), policy='average', candidates=(['41278634', '', 'single-cell brain-derived bradyzoites, 2025'],), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'bradyzoite'), biology_path=('gene expression', 'RNA abundance', 'bradyzoite', 'unperturbed'), context_path=('in vivo', 'mouse', 'brain', 'bradyzoite', 'transcription'), target_family='transcription_purified_bradyzoite_in_vivo', target_columns=(), role='feature'), 'Tg_transcription_primary_brain_cell_differentiation_time_course': Slot(organism='Tg', name='transcription · primary brain-cell differentiation time course', axis='transcription', context='infected primary brain cells, day 1-14', unit='gene', patterns=('brain168465_',), policy='separate', candidates=(), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'bradyzoite (implied)'), biology_path=('gene expression', 'RNA abundance', 'bradyzoite (implied)', 'stage conversion'), context_path=('in vivo', 'mouse', 'brain', 'bradyzoite (implied)', 'transcription'), target_family='transcription_primary_brain_cell_differentiation_time_course', target_columns=(), role='feature'), 'Tg_transcription_under_stress_conversion': Slot(organism='Tg', name='transcription · under stress / conversion', axis='transcription', context='alkaline, stress', unit='gene', patterns=('stress_', 'rna245775_parent_prebrady_'), policy='separate', candidates=(['38782906', 'GSE245775', 'RNA matched to pre-bradyzoite ribosome profiling'],), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'stage-unspecified'), biology_path=('gene expression', 'RNA abundance', 'stage-unspecified', 'stage conversion'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'transcription'), target_family='transcription_under_stress_conversion', target_columns=(), role='feature'), 'Tg_transcription_extracellular_lytic_stress': Slot(organism='Tg', name='transcription · extracellular lytic stress', axis='transcription', context='extracellular tachyzoite', unit='gene', patterns=('rna99395_extracellular_',), policy='separate', candidates=(['29228904', 'GSE99395', 'matched RNA for extracellular ribosome profiling'],), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'tachyzoite'), biology_path=('gene expression', 'RNA abundance', 'tachyzoite', 'extracellular or starvation'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'transcription'), target_family='transcription_extracellular_lytic_stress', target_columns=(), role='feature'), 'Tg_transcription_under_tf_or_chromatin_perturbation': Slot(organism='Tg', name='transcription · under TF or chromatin perturbation', axis='transcription', context='perturbation', unit='gene', patterns=('morc_',), policy='separate', candidates=(['39774584', 'PRJNA1134678', 'ApiAP2 cascade'], ['40920096', 'PRJNA1281009', 'AP2X-7'], ['41193469', 'GSE287537', 'SWI/SNF'], ['40879678', 'GSE286088', 'GCN5a'], ['40593611', 'GSE268652', 'SNF2L']), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'stage-unspecified'), biology_path=('gene expression', 'RNA abundance', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'transcription'), target_family='transcription_under_tf_or_chromatin_perturbation', target_columns=(), role='feature'), 'Tg_transcription_under_rna_processing_perturbation': Slot(organism='Tg', name='transcription · under RNA-processing perturbation', axis='transcription', context='CPSF4 depletion, tachyzoite', unit='gene', patterns=('cpsf4rna168155_',), policy='separate', candidates=(['34263725', 'GSE168155', 'CPSF4/m6A-reader depletion RNA-seq'],), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'tachyzoite'), biology_path=('gene expression', 'RNA abundance', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'transcription'), target_family='transcription_under_rna_processing_perturbation', target_columns=(), role='feature'), 'Tg_transcription_bradyzoite_checkpoint_perturbation': Slot(organism='Tg', name='transcription · bradyzoite checkpoint perturbation', axis='transcription', context='tachyzoite and bradyzoite cyclin perturbation', unit='gene', patterns=('restriction200962_',), policy='separate', candidates=(['', 'GSE200962', 'processed count matrix; GEO has no linked publication'],), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'bradyzoite'), biology_path=('gene expression', 'RNA abundance', 'bradyzoite', 'stage conversion'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'bradyzoite', 'transcription'), target_family='transcription_bradyzoite_checkpoint_perturbation', target_columns=(), role='feature'), 'Tg_transcription_maximum_observed_across_stages': Slot(organism='Tg', name='transcription · maximum observed across stages', axis='transcription', context='cross-stage summary', unit='gene', patterns=('expr_max',), policy='one', candidates=(), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'stage-unspecified'), biology_path=('gene expression', 'RNA abundance', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'transcription'), target_family='transcription_maximum_observed_across_stages', target_columns=(), role='feature'), 'Tg_translation_tachyzoite': Slot(organism='Tg', name='translation · tachyzoite', axis='translation', context='tachyzoite, in vitro', unit='gene', patterns=('rpf99395_intracellular_', 'rpf129869_', 'rpf245775_parent_tachy_'), policy='separate', candidates=(['29228904', 'GSE99395', 'comparative ribosome profiling'], ['31167946', 'GSE129869', 'infected confluent/subconfluent HFFs'], ['38782906', 'GSE245775', 'eIF1.2 and stage conversion']), evidence_path=('molecular measurements', 'translation', 'ribosome occupancy', 'tachyzoite'), biology_path=('gene expression', 'protein synthesis', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'translation'), target_family='translation_tachyzoite', target_columns=(), role='feature'), 'Tg_translation_bradyzoite': Slot(organism='Tg', name='translation · bradyzoite', axis='translation', context='pre-bradyzoite, alkaline-induced', unit='gene', patterns=('rpf245775_parent_prebrady_',), policy='one', candidates=(['38782906', 'GSE245775', 'eIF1.2 and stage conversion'], ['38747593', 'GSE243206', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'translation', 'ribosome occupancy', 'bradyzoite'), biology_path=('gene expression', 'protein synthesis', 'bradyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'bradyzoite', 'translation'), target_family='translation_bradyzoite', target_columns=(), role='feature'), 'Tg_translation_under_stress': Slot(organism='Tg', name='translation · under stress', axis='translation', context='extracellular stress or iron', unit='gene', patterns=('rpf99395_extracellular_',), policy='separate', candidates=(['29228904', 'GSE99395', 'extracellular versus intracellular parasites'], ['41925342', '', 'translational remodelling under iron starvation, 2026']), evidence_path=('molecular measurements', 'translation', 'ribosome occupancy', 'stage-unspecified'), biology_path=('gene expression', 'protein synthesis', 'stage-unspecified', 'extracellular or starvation'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'translation'), target_family='translation_under_stress', target_columns=(), role='feature'), 'Tg_translation_efficiency_tachyzoite': Slot(organism='Tg', name='translation efficiency · tachyzoite', axis='translation', context='tachyzoite, in vitro', unit='gene', patterns=('te302107_tachy_', 'te99395_intracellular_', 'te129869_', 'te245775_parent_tachy_'), policy='separate', candidates=(['', 'GSE302107', 'high-resolution RPF relative to matched RNA; replicates rho 0.97'], ['29228904', 'GSE99395', 'RPF relative to matched RNA'], ['31167946', 'GSE129869', 'RPF relative to matched RNA']), evidence_path=('molecular measurements', 'translation', 'ribosome occupancy', 'tachyzoite'), biology_path=('gene expression', 'protein synthesis', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'translation'), target_family='translation_efficiency_tachyzoite', target_columns=(), role='feature'), 'Tg_translation_efficiency_extracellular_stress': Slot(organism='Tg', name='translation efficiency · extracellular stress', axis='translation', context='extracellular stress', unit='gene', patterns=('te99395_extracellular_',), policy='separate', candidates=(['29228904', 'GSE99395', 'RPF relative to matched RNA'],), evidence_path=('molecular measurements', 'translation', 'ribosome occupancy', 'stage-unspecified'), biology_path=('gene expression', 'protein synthesis', 'stage-unspecified', 'extracellular or starvation'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'translation'), target_family='translation_efficiency_extracellular_stress', target_columns=(), role='feature'), 'Tg_translation_efficiency_bradyzoite': Slot(organism='Tg', name='translation efficiency · bradyzoite', axis='translation', context='pre-bradyzoite, alkaline-induced', unit='gene', patterns=('te245775_parent_prebrady_',), policy='separate', candidates=(['38782906', 'GSE245775', 'RPF relative to matched RNA under conversion'],), evidence_path=('molecular measurements', 'translation', 'ribosome occupancy', 'bradyzoite'), biology_path=('gene expression', 'protein synthesis', 'bradyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'bradyzoite', 'translation'), target_family='translation_efficiency_bradyzoite', target_columns=(), role='feature'), 'Tg_translation_under_initiation_factor_depletion': Slot(organism='Tg', name='translation · under initiation-factor depletion', axis='translation', context='eIF1.2 knockout, tachyzoite and pre-bradyzoite', unit='gene', patterns=('rpf245775_eif12ko_', 'te245775_eif12ko_'), policy='separate', candidates=(['38782906', 'GSE245775', 'delta-eIF1.2 ribosome profiling'],), evidence_path=('molecular measurements', 'translation', 'ribosome occupancy', 'bradyzoite'), biology_path=('gene expression', 'protein synthesis', 'bradyzoite', 'genetic background'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'bradyzoite', 'translation'), target_family='translation_under_initiation_factor_depletion', target_columns=(), role='feature'), 'Tg_transcription_under_initiation_factor_depletion': Slot(organism='Tg', name='transcription · under initiation-factor depletion', axis='transcription', context='eIF1.2 knockout, tachyzoite and pre-bradyzoite', unit='gene', patterns=('rna245775_eif12ko_',), policy='separate', candidates=(['38782906', 'GSE245775', 'RNA matched to delta-eIF1.2 ribosome profiling'],), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'bradyzoite'), biology_path=('gene expression', 'RNA abundance', 'bradyzoite', 'genetic background'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'bradyzoite', 'transcription'), target_family='transcription_under_initiation_factor_depletion', target_columns=(), role='feature'), 'Tg_protein_abundance_tachyzoite': Slot(organism='Tg', name='protein abundance · tachyzoite', axis='protein abundance', context='tachyzoite', unit='gene', patterns=('proteome_', 'protein_ibaq_log2'), policy='fill', candidates=(['40716488', 'PXD063409', 'cytoskeleton proteome'], ['25867681', 'PXD000297', 'proteogenomics']), evidence_path=('molecular measurements', 'protein', 'abundance', 'tachyzoite'), biology_path=('gene expression', 'protein abundance', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'protein abundance'), target_family='protein_abundance_tachyzoite', target_columns=(), role='feature'), 'Tg_protein_abundance_other_life_stages': Slot(organism='Tg', name='protein abundance · other life stages', axis='protein abundance', context='stages', unit='gene', patterns=('oocyst_',), policy='separate', candidates=(['28626452', 'PXD003765', 'iTRAQ across developmental stages'],), evidence_path=('molecular measurements', 'protein', 'abundance', 'stage-unspecified'), biology_path=('gene expression', 'protein abundance', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'protein abundance'), target_family='protein_abundance_other_life_stages', target_columns=(), role='feature'), 'Tg_thermal_stability_melting_temperature': Slot(organism='Tg', name='thermal stability (melting temperature)', axis='protein abundance', context='tachyzoite', unit='gene', patterns=('melting_temperature_tm',), policy='one', candidates=(['35976251', 'eLife 80336', 'mineCETSA curve fits'],), evidence_path=('molecular measurements', 'protein', 'abundance', 'tachyzoite'), biology_path=('gene expression', 'protein abundance', 'tachyzoite', 'drug or compound'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'protein abundance'), target_family='thermal_stability_melting_temperature', target_columns=(), role='feature'), 'Tg_phosphorylation_site_count': Slot(organism='Tg', name='phosphorylation · site count', axis='PTM', context='tachyzoite', unit='gene', patterns=('n_phosphosites', 'has_phospho'), policy='one', candidates=(), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'tachyzoite'), biology_path=('protein state', 'post-translational modification', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'PTM'), target_family='phosphorylation_site_count', target_columns=(), role='feature'), 'Tg_phosphorylation_quantitative': Slot(organism='Tg', name='phosphorylation · quantitative', axis='PTM', context='tachyzoite', unit='gene', patterns=('phospho_',), policy='average', candidates=(['33363051', 'PXD020655', 'iTRAQ phosphoproteome'], ['31508380', 'PXD007777', 'type I vs type II'], ['40901993', 'PXD064226', 'PP2A-2 during cytokinesis']), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'tachyzoite'), biology_path=('protein state', 'post-translational modification', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'PTM'), target_family='phosphorylation_quantitative', target_columns=(), role='feature'), 'Tg_phosphorylation_kinase_substrate': Slot(organism='Tg', name='phosphorylation · kinase-substrate', axis='PTM', context='perturbation', unit='gene', patterns=('cdpk1_thiophospho_peptides',), policy='separate', candidates=(['37933960', 'PXD019677', 'CDPK1 substrates'], ['33635921', 'PXD019655', 'CDPK7'], ['', 'PXD017032', 'from the PRIDE index; verify the modification and the organism'], ['', 'PXD006045', 'from the PRIDE index; verify the modification and the organism']), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'stage-unspecified'), biology_path=('protein state', 'post-translational modification', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'PTM'), target_family='phosphorylation_kinase_substrate', target_columns=(), role='feature'), 'Tg_acetylation': Slot(organism='Tg', name='acetylation', axis='PTM', context='life stages', unit='gene', patterns=('n_acetylation_sites',), policy='one', candidates=(['37562054', 'PXD040368', 'lysine acetylation across stages'], ['', 'PXD079431', 'from the PRIDE index; verify the modification and the organism'], ['', 'PXD079432', 'from the PRIDE index; verify the modification and the organism'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape'], ['37562054', 'PXD040368', 'automatically proposed; verify assay and parasite-gene shape'], ['38647704', 'PXD045061', 'automatically proposed; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'stage-unspecified'), biology_path=('protein state', 'post-translational modification', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'PTM'), target_family='acetylation', target_columns=(), role='feature'), 'Tg_n_myristoylation': Slot(organism='Tg', name='N-myristoylation', axis='PTM', context='tachyzoite', unit='gene', patterns=('myristoylation_confidence',), policy='one', candidates=(['32618271', 'eLife 57861', 'myristoylated proteome of Toxoplasma gondii'],), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'tachyzoite'), biology_path=('protein state', 'post-translational modification', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'PTM'), target_family='n_myristoylation', target_columns=(), role='feature'), 'Tg_arginine_methylation': Slot(organism='Tg', name='arginine methylation', axis='PTM', context='tachyzoite', unit='gene', patterns=('n_arginine_methylation_sites',), policy='one', candidates=(['', 'ToxoDB Yakubu monomethylarginine proteomics', 'monomethylarginine sites per gene'],), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'tachyzoite'), biology_path=('protein state', 'post-translational modification', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'PTM'), target_family='arginine_methylation', target_columns=(), role='feature'), 'Tg_lactylation': Slot(organism='Tg', name='lactylation', axis='PTM', context='tachyzoite', unit='gene', patterns=('n_lactylation_sites',), policy='one', candidates=(['36216028', 'PXD022700', 'protein lactylation'], ['', 'PXD031526', 'systematic identification of lysine lactylation'], ['', 'PXD031526', 'from the PRIDE index; verify the modification and the organism'], ['', 'PXD022700', 'from the PRIDE index; verify the modification and the organism'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'tachyzoite'), biology_path=('protein state', 'post-translational modification', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'PTM'), target_family='lactylation', target_columns=(), role='feature'), 'Tg_s_nitrosylation': Slot(organism='Tg', name='S-nitrosylation', axis='PTM', context='tachyzoite', unit='gene', patterns=('n_nitrosylation_sites',), policy='one', candidates=(['37959749', 'PXD046083', 'proteome-wide cysteine S-nitrosylation'], ['', 'PXD046083', 'from the PRIDE index; verify the modification and the organism'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'tachyzoite'), biology_path=('protein state', 'post-translational modification', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'PTM'), target_family='s_nitrosylation', target_columns=(), role='feature'), 'Tg_ubiquitination_sumoylation': Slot(organism='Tg', name='ubiquitination / SUMOylation', axis='PTM', context='tachyzoite', unit='gene', patterns=('n_ubiquitination_sites',), policy='one', candidates=(['40348811', 'PXD045018', 'TgUAE1'], ['40590555', 'PXD054719', 'endodyogeny'], ['', 'PXD042937', 'from the PRIDE index; verify the modification and the organism'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'tachyzoite'), biology_path=('protein state', 'post-translational modification', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'PTM'), target_family='ubiquitination_sumoylation', target_columns=(), role='feature'), 'Tg_glycosylation': Slot(organism='Tg', name='glycosylation', axis='PTM', context='tachyzoite', unit='gene', patterns=('n_o_fucosyl_peptides',), policy='one', candidates=(['39912628', 'PXD056853', 'nucleocytoplasmic O-fucose'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'tachyzoite'), biology_path=('protein state', 'post-translational modification', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'PTM'), target_family='glycosylation', target_columns=(), role='feature'), 'Tg_transcription_bradyzoite_subtype_in_vivo': Slot(organism='Tg', name='transcription · bradyzoite subtype in vivo', axis='transcription', context='mouse brain cyst, 30 days', unit='gene', patterns=('bzsub_',), policy='separate', candidates=(['41580398', 'GSE311669', 'single-cell atlas of brain bradyzoites, Groups A-E'],), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'bradyzoite'), biology_path=('gene expression', 'RNA abundance', 'bradyzoite', 'unperturbed'), context_path=('in vivo', 'mouse', 'brain', 'bradyzoite', 'transcription'), target_family='transcription_bradyzoite_subtype_in_vivo', target_columns=(), role='feature'), 'Tg_protein_abundance_under_stress': Slot(organism='Tg', name='protein abundance · under stress', axis='protein abundance', context='iron depletion, 24 h', unit='gene', patterns=('iron_depletion_protein_',), policy='separate', candidates=(['41925342', 'PXD066828', 'proteome after iron depletion'],), evidence_path=('molecular measurements', 'protein', 'abundance', 'stage-unspecified'), biology_path=('gene expression', 'protein abundance', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'protein abundance'), target_family='protein_abundance_under_stress', target_columns=(), role='feature'), 'Tg_transcription_under_iron_depletion': Slot(organism='Tg', name='transcription · under iron depletion', axis='transcription', context='iron depletion, 24 h', unit='gene', patterns=('iron_depletion_rna_log2fc',), policy='one', candidates=(['41925342', 'PRJEB83013', 'RNA-seq after iron depletion'],), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'stage-unspecified'), biology_path=('gene expression', 'RNA abundance', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'transcription'), target_family='transcription_under_iron_depletion', target_columns=(), role='feature'), 'Tg_organelle_surface_membrane_contact_site': Slot(organism='Tg', name='organelle surface / membrane contact site', axis='localization', context='TurboID on outer membranes', unit='gene', patterns=('surface_apicoplast_', 'surface_mitochondrion_', 'surface_er_'), policy='separate', candidates=(), evidence_path=('molecular measurements', 'spatial biology', 'localization', 'stage-unspecified'), biology_path=('cell organization', 'localization and topology', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'localization'), target_family='organelle_surface_membrane_contact_site', target_columns=(), role='feature'), 'Tg_palmitoylation': Slot(organism='Tg', name='palmitoylation', axis='PTM', context='tachyzoite', unit='gene', patterns=('palmitome_',), policy='separate', candidates=(['26468752', 'ToxoDB Foe palmitome', '17-ODYA click chemistry, against hydroxylamine and against palmitate'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'protein', 'post-translational state', 'tachyzoite'), biology_path=('protein state', 'post-translational modification', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'PTM'), target_family='palmitoylation', target_columns=(), role='feature'), 'Tg_fitness_hff_in_vitro': Slot(organism='Tg', name='fitness · HFF in vitro', axis='fitness', context='HFF', unit='gene', patterns=('fit_invitro_hff',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('host-cell or host-derived', 'human', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_hff_in_vitro', target_columns=(), role='feature'), 'Tg_fitness_naive_macrophage': Slot(organism='Tg', name='fitness · naive macrophage', axis='fitness', context='naive BMDM', unit='gene', patterns=('fit_naive_bmdm',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vitro or assay-defined', 'mouse', 'macrophage', 'tachyzoite (implied)', 'fitness'), target_family='fitness_naive_macrophage', target_columns=(), role='feature'), 'Tg_fitness_ifn_gamma_macrophage': Slot(organism='Tg', name='fitness · IFN-gamma macrophage', axis='fitness', context='IFN-g BMDM', unit='gene', patterns=('fit_ifng',), policy='one', candidates=(['36916910', '', 'a second IFN-gamma screen'],), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'interferon'), context_path=('in vitro or assay-defined', 'mouse', 'macrophage', 'tachyzoite (implied)', 'fitness'), target_family='fitness_ifn_gamma_macrophage', target_columns=(), role='feature'), 'Tg_fitness_in_vivo_peritoneum': Slot(organism='Tg', name='fitness · in vivo peritoneum', axis='fitness', context='mouse peritoneum', unit='gene', patterns=('fit_invivo_PE',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'peritoneum', 'tachyzoite (implied)', 'fitness'), target_family='fitness_in_vivo_peritoneum', target_columns=(), role='feature'), 'Tg_fitness_in_vivo_lung': Slot(organism='Tg', name='fitness · in vivo lung', axis='fitness', context='mouse lung', unit='gene', patterns=('fit_invivo_lung',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'lung', 'tachyzoite (implied)', 'fitness'), target_family='fitness_in_vivo_lung', target_columns=(), role='feature'), 'Tg_fitness_in_vivo_liver': Slot(organism='Tg', name='fitness · in vivo liver', axis='fitness', context='mouse liver', unit='gene', patterns=('fit_invivo_liver',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'liver', 'tachyzoite (implied)', 'fitness'), target_family='fitness_in_vivo_liver', target_columns=(), role='feature'), 'Tg_fitness_in_vivo_spleen': Slot(organism='Tg', name='fitness · in vivo spleen', axis='fitness', context='mouse spleen', unit='gene', patterns=('fit_invivo_spleen',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'spleen', 'tachyzoite (implied)', 'fitness'), target_family='fitness_in_vivo_spleen', target_columns=(), role='feature'), 'Tg_fitness_in_vivo_heart': Slot(organism='Tg', name='fitness · in vivo heart', axis='fitness', context='mouse heart', unit='gene', patterns=('fit_invivo_heart',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_in_vivo_heart', target_columns=(), role='feature'), 'Tg_fitness_in_vivo_brain': Slot(organism='Tg', name='fitness · in vivo brain', axis='fitness', context='mouse brain', unit='gene', patterns=('fit_invivo_brain',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'brain', 'tachyzoite (implied)', 'fitness'), target_family='fitness_in_vivo_brain', target_columns=(), role='feature'), 'Tg_fitness_serum_restriction': Slot(organism='Tg', name='fitness · serum restriction', axis='fitness', context='HFF, 10% and 1% FBS', unit='gene', patterns=('fit_lipid_rich_', 'fit_lipid_limited_', 'fit_serum_differential_'), policy='separate', candidates=(['41407671', '', 'genome-wide screens in lipid-rich and lipid-limited serum'],), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('host-cell or host-derived', 'human', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_serum_restriction', target_columns=(), role='feature'), 'Tg_fitness_carbon_source_withdrawal': Slot(organism='Tg', name='fitness · carbon-source withdrawal', axis='fitness', context='HFF, glucose or glutamine withdrawn', unit='gene', patterns=('fit_complete_medium_2025', 'fit_no_glucose', 'fit_no_glutamine', 'fit_glucose_dependence', 'fit_glucose_dependence_fdr'), policy='separate', candidates=(['', 'bioRxiv 10.1101/2025.07.27.667068', 'genome-wide screen without glucose or glutamine'],), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('host-cell or host-derived', 'human', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_carbon_source_withdrawal', target_columns=(), role='feature'), 'Tg_fitness_parasite_density': Slot(organism='Tg', name='fitness · parasite density', axis='fitness', context='HFF, MOI 0.3 and MOI 3', unit='gene', patterns=('fit_density_low', 'fit_density_high', 'fit_density_dependence', 'fit_density_dependence_log10padj', 'fit_density_dim'), policy='separate', candidates=(['42580337', '', 'genome-wide screen at low and high infection density'],), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('host-cell or host-derived', 'human', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_parasite_density', target_columns=(), role='feature'), 'Tg_fitness_oxidative_stress': Slot(organism='Tg', name='fitness · oxidative stress', axis='fitness', context='oxidant', unit='gene', patterns=('oxidative_stress_screen_score',), policy='one', candidates=(['34163449', 'PRJNA707360', 'genome-wide oxidative-stress screen'],), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'stage-unspecified'), biology_path=('parasite phenotype', 'fitness and essentiality', 'stage-unspecified', 'oxidative stress'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'fitness'), target_family='fitness_oxidative_stress', target_columns=(), role='feature'), 'Tg_fitness_hyperlopit_unassigned_proteins': Slot(organism='Tg', name='fitness · hyperLOPIT-unassigned proteins', axis='fitness', context='in vivo virulence', unit='gene', patterns=('fit_hyperlopit_unassigned_invivo_',), policy='separate', candidates=(['39082802', 'GSE253884', "aimed at this map's largest gap"],), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_hyperlopit_unassigned_proteins', target_columns=(), role='feature'), 'Tg_fitness_targeted_in_vivo_young_2019': Slot(organism='Tg', name='fitness · targeted in vivo (Young 2019)', axis='fitness', context='mouse, targeted libraries', unit='gene', patterns=('fit_invivo_young2019', 'crispr_invivo_platform_lfc'), policy='separate', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_targeted_in_vivo_young_2019', target_columns=(), role='feature'), 'Tg_genetic_interaction_delta_gra17': Slot(organism='Tg', name='genetic interaction · delta-GRA17', axis='fitness', context='GRA17 background', unit='gene', patterns=('crispr_gra17',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'stage-unspecified'), biology_path=('parasite phenotype', 'fitness and essentiality', 'stage-unspecified', 'genetic background'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'fitness'), target_family='genetic_interaction_delta_gra17', target_columns=(), role='feature'), 'Tg_fitness_gra12_screen_1_in_vitro': Slot(organism='Tg', name='fitness · GRA12 screen 1 in vitro', axis='fitness', context='GRA12 screen 1, in vitro', unit='gene', patterns=('crispr_gra12s1_l2fc_invitro',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'stage-unspecified'), biology_path=('parasite phenotype', 'fitness and essentiality', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'fitness'), target_family='fitness_gra12_screen_1_in_vitro', target_columns=(), role='feature'), 'Tg_fitness_gra12_screen_1_in_vivo': Slot(organism='Tg', name='fitness · GRA12 screen 1 in vivo', axis='fitness', context='GRA12 screen 1, mouse', unit='gene', patterns=('crispr_gra12s1_l2fc_invivo',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_gra12_screen_1_in_vivo', target_columns=(), role='feature'), 'Tg_fitness_gra12_screen_1_differential': Slot(organism='Tg', name='fitness · GRA12 screen 1 differential', axis='fitness', context='GRA12 screen 1, in vivo vs in vitro', unit='gene', patterns=('crispr_gra12s1_disco',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_gra12_screen_1_differential', target_columns=(), role='feature'), 'Tg_fitness_gra12_screen_2_in_vitro': Slot(organism='Tg', name='fitness · GRA12 screen 2 in vitro', axis='fitness', context='GRA12 screen 2, in vitro', unit='gene', patterns=('crispr_gra12s2_l2fc_invitro',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'stage-unspecified'), biology_path=('parasite phenotype', 'fitness and essentiality', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'fitness'), target_family='fitness_gra12_screen_2_in_vitro', target_columns=(), role='feature'), 'Tg_fitness_gra12_screen_2_in_vivo': Slot(organism='Tg', name='fitness · GRA12 screen 2 in vivo', axis='fitness', context='GRA12 screen 2, mouse', unit='gene', patterns=('crispr_gra12s2_l2fc_invivo',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_gra12_screen_2_in_vivo', target_columns=(), role='feature'), 'Tg_fitness_gra12_screen_2_differential': Slot(organism='Tg', name='fitness · GRA12 screen 2 differential', axis='fitness', context='GRA12 screen 2, in vivo vs in vitro', unit='gene', patterns=('crispr_gra12s2_disco',), policy='one', candidates=(), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'tachyzoite (implied)'), biology_path=('parasite phenotype', 'fitness and essentiality', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'tissue-unspecified', 'tachyzoite (implied)', 'fitness'), target_family='fitness_gra12_screen_2_differential', target_columns=(), role='feature'), 'Tg_stage_conversion_phenotype': Slot(organism='Tg', name='stage-conversion phenotype', axis='fitness', context='bradyzoite conversion', unit='gene', patterns=('diff_reporter_log2_mNG_over_bulk',), policy='one', candidates=(['38782906', 'GSE245775', 'from the GEO index; verify assay and parasite-gene shape'], ['31955846', 'GSE132237', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'bradyzoite'), biology_path=('parasite phenotype', 'fitness and essentiality', 'bradyzoite', 'stage conversion'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'bradyzoite', 'fitness'), target_family='stage_conversion_phenotype', target_columns=(), role='feature'), 'Tg_drug_sensitivity': Slot(organism='Tg', name='drug sensitivity', axis='fitness', context='compound', unit='gene', patterns=('drug_compounds_tested', 'drug_sensitivity_shifts', 'drug_sensitivity_directions'), policy='separate', candidates=(['41025776', 'mBio', 'equilibrative nucleoside transporters against Ara-A and 5-FU'],), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'stage-unspecified'), biology_path=('parasite phenotype', 'fitness and essentiality', 'stage-unspecified', 'drug or compound'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'fitness'), target_family='drug_sensitivity', target_columns=(), role='feature'), 'Tg_tf_binding_per_factor': Slot(organism='Tg', name='TF binding · per factor', axis='regulation', context='ChIP / CUT&RUN', unit='gene', patterns=('cuttag_',), policy='separate', candidates=(['29788176', 'GSE106864', 'ApiAP2 cooperative binding'], ['37350586', 'GSE228853', 'BDP1 bromodomain'], ['', 'GSE313582', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313273', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE293279', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE277553', 'from the GEO index; verify assay and parasite-gene shape'], ['40217127', 'GSE271900', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE124251', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222835', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222819', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'regulation', 'chromatin and RNA regulation', 'stage-unspecified'), biology_path=('gene regulation', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'regulation'), target_family='tf_binding_per_factor', target_columns=(), role='feature'), 'Tg_chromatin_state_histone_marks': Slot(organism='Tg', name='chromatin state · histone marks', axis='regulation', context='tachyzoite / bradyzoite', unit='gene', patterns=('h4_acetylation_chip_score',), policy='fill', candidates=(['35164683', 'GSE104347', 'histone variants genome-wide'], ['21179246', 'GSE22100', 'GCN5-A under alkaline stress'], ['', 'GSE313582', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313273', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape'], ['41193469', 'GSE287537', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE277553', 'from the GEO index; verify assay and parasite-gene shape'], ['40830525', 'GSE294543', 'from the GEO index; verify assay and parasite-gene shape'], ['40823841', 'GSE249123', 'from the GEO index; verify assay and parasite-gene shape'], ['40217127', 'GSE271902', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'regulation', 'chromatin and RNA regulation', 'bradyzoite'), biology_path=('gene regulation', 'bradyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'bradyzoite', 'regulation'), target_family='chromatin_state_histone_marks', target_columns=(), role='feature'), 'Tg_chromatin_accessibility': Slot(organism='Tg', name='chromatin accessibility', axis='regulation', context='stages', unit='gene', patterns=('atac_promoter_',), policy='one', candidates=(['38093015', 'PRJNA921935', 'pre-sexual stages'], ['', 'GSE277553', 'from the GEO index; verify assay and parasite-gene shape'], ['40823841', 'GSE249123', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE287334', 'from the GEO index; verify assay and parasite-gene shape'], ['35041939', 'GSE175919', 'from the GEO index; verify assay and parasite-gene shape'], ['38791568', 'GSE249604', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222835', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222832', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222819', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'regulation', 'chromatin and RNA regulation', 'stage-unspecified'), biology_path=('gene regulation', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'regulation'), target_family='chromatin_accessibility', target_columns=(), role='feature'), 'Tg_rna_modification_m6a_5mc': Slot(organism='Tg', name='RNA modification · m6A / 5mC', axis='regulation', context='tachyzoite', unit='gene', patterns=('n_m6a_peaks',), policy='separate', candidates=(['34263725', 'GSE168155', 'm6A reader and polyadenylation'], ['40830525', 'GSE294543', '5mC methylome across lineages'], ['', 'GSE313582', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313273', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape'], ['41193469', 'GSE287537', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE277553', 'from the GEO index; verify assay and parasite-gene shape'], ['40830525', 'GSE294543', 'from the GEO index; verify assay and parasite-gene shape'], ['40823841', 'GSE249123', 'from the GEO index; verify assay and parasite-gene shape'], ['40217127', 'GSE271902', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'regulation', 'chromatin and RNA regulation', 'tachyzoite'), biology_path=('gene regulation', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'regulation'), target_family='rna_modification_m6a_5mc', target_columns=(), role='feature'), 'Tg_5_utr_architecture': Slot(organism='Tg', name="5' UTR architecture", axis='sequence', context='reannotated transcripts', unit='gene', patterns=('utr5_length', 'utr5_n_uaugs', 'utr5_n_uorfs', 'utr5_n_oorfs', 'utr5_n_inframe_ext', 'utr5_kozak_score'), policy='fill', candidates=(), evidence_path=('intrinsic and reference', 'sequence and evolution', 'gene attributes', 'stage-unspecified'), biology_path=('intrinsic properties', 'sequence structure and evolution', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'sequence'), target_family='5_utr_architecture', target_columns=(), role='feature'), 'Tg_splicing_isoform_use': Slot(organism='Tg', name='splicing / isoform use', axis='regulation', context='stages', unit='gene', patterns=('novel_transcript_models',), policy='one', candidates=(['33688018', 'PRJNA606986', 'nanopore isoform landscape'], ['', 'GSE277553', 'from the GEO index; verify assay and parasite-gene shape'], ['40823841', 'GSE249123', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE287334', 'from the GEO index; verify assay and parasite-gene shape'], ['35041939', 'GSE175919', 'from the GEO index; verify assay and parasite-gene shape'], ['38791568', 'GSE249604', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222835', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222832', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222819', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'regulation', 'chromatin and RNA regulation', 'stage-unspecified'), biology_path=('gene regulation', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'regulation'), target_family='splicing_isoform_use', target_columns=(), role='feature'), 'Tg_rna_stability_half_life': Slot(organism='Tg', name='RNA stability / half-life', axis='regulation', context='tachyzoite', unit='gene', patterns=('mrna_log2_remaining_4h_actinomycin', 'mrna_remaining_5h_actinomycin'), policy='separate', candidates=(['42580337', 'GSE329845', 'genome-wide decay after actinomycin D'], ['39899594', 'PRJEB67890', 'iron-mediated post-transcriptional regulation'], ['', 'GSE313582', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313273', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313048', 'from the GEO index; verify assay and parasite-gene shape'], ['41193469', 'GSE287537', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE277553', 'from the GEO index; verify assay and parasite-gene shape'], ['40830525', 'GSE294543', 'from the GEO index; verify assay and parasite-gene shape'], ['40823841', 'GSE249123', 'from the GEO index; verify assay and parasite-gene shape'], ['40217127', 'GSE271902', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'regulation', 'chromatin and RNA regulation', 'tachyzoite'), biology_path=('gene regulation', 'tachyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite', 'regulation'), target_family='rna_stability_half_life', target_columns=(), role='feature'), 'Tg_localization_measured': Slot(organism='Tg', name='localization · measured', axis='localization', context='hyperLOPIT', unit='gene', patterns=('compartment', 'compartment_source', 'lopit_prob', 'lopit_methods_agree', 'lopit_confident'), policy='one', candidates=(), evidence_path=('molecular measurements', 'spatial biology', 'localization', 'tachyzoite (implied)'), biology_path=('cell organization', 'localization and topology', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite (implied)', 'localization'), target_family='subcellular localization', target_columns=('compartment', 'lopit_map', 'lopit_mcmc', 'lopit_unified'), role='feature'), 'Tg_localization_transferred': Slot(organism='Tg', name='localization · transferred', axis='localization', context='orthoLOPIT', unit='gene', patterns=('ortholopit_', 'compartment_best'), policy='fill', candidates=(), evidence_path=('intrinsic and reference', 'orthology-derived', 'localization transfer'), biology_path=('cell organization', 'localization and topology', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite (implied)', 'localization'), target_family='subcellular localization', target_columns=('compartment_best', 'ortholopit_label', 'ortholopit_accepted'), role='feature'), 'Tg_membrane_topology': Slot(organism='Tg', name='membrane topology', axis='localization', context='sequence', unit='gene', patterns=('dtm_class', 'n_tm', 'has_signal_peptide', 'is_tm', 'tm_kd_', 'tm_len_mean'), policy='one', candidates=(), evidence_path=('intrinsic and reference', 'sequence-derived', 'membrane topology'), biology_path=('cell organization', 'localization and topology', 'stage-unspecified', 'unperturbed'), context_path=('reference or computational', 'no host', 'tissue-unspecified', 'stage-unspecified', 'localization'), target_family='membrane topology', target_columns=(), role='feature'), 'Tg_exposure_to_host_cytosol': Slot(organism='Tg', name='exposure to host cytosol', axis='localization', context='PVM, export', unit='gene', patterns=('pvm_proximity_positive',), policy='fill', candidates=(['38747635', '', 'TurboID exportome of secreted disordered proteins'], ['29615509', 'GSE109830', 'MYR1-dependent effectors'], ['31366709', 'GSE122786', 'translocation across the PVM']), evidence_path=('molecular measurements', 'spatial biology', 'localization', 'tachyzoite (implied)'), biology_path=('cell organization', 'localization and topology', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite (implied)', 'localization'), target_family='subcellular localization', target_columns=(), role='feature'), 'Tg_secretome_excreted': Slot(organism='Tg', name='secretome / excreted', axis='localization', context='ESA', unit='gene', patterns=('secretome_soluble_over_vesicle_log2',), policy='one', candidates=(['40874616', 'Ramirez-Flores vesicles', 'soluble against vesicular secreted fractions'], ['39082802', 'GSE253885', 'from the GEO index; verify assay and parasite-gene shape'], ['39082802', 'GSE253884', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'spatial biology', 'localization', 'tachyzoite (implied)'), biology_path=('cell organization', 'localization and topology', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'tachyzoite (implied)', 'localization'), target_family='subcellular localization', target_columns=(), role='feature'), 'Tg_interaction_proximity_labelling': Slot(organism='Tg', name='interaction · proximity labelling', axis='relation', context='BioID / TurboID', unit='gene', patterns=('n_proximity_partners',), policy='fill', candidates=(['', '', '44 BioID studies already downloaded'], ['36214684', 'PXD032102', 'calmodulin proximal interactors'], ['', 'PXD059579', 'from the PRIDE index; verify the modification and the organism']), evidence_path=('relational measurements', 'gene-gene', 'association or interaction', 'stage-unspecified'), biology_path=('molecular relationships', 'parasite-parasite', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'relation'), target_family='interaction_proximity_labelling', target_columns=(), role='feature'), 'Tg_interaction_degree_crosslink_ms': Slot(organism='Tg', name='interaction degree · crosslink MS', axis='relation', context='measured contact', unit='gene', patterns=('n_xlink_partners', 'best_model_agreement'), policy='separate', candidates=(), evidence_path=('relational measurements', 'gene-gene', 'association or interaction', 'stage-unspecified'), biology_path=('molecular relationships', 'parasite-parasite', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'relation'), target_family='interaction_degree_crosslink_ms', target_columns=(), role='feature'), 'Tg_interaction_degree_ip_ms': Slot(organism='Tg', name='interaction degree · IP-MS', axis='relation', context='curated pulldown', unit='gene', patterns=('n_ipms_partners',), policy='one', candidates=(), evidence_path=('relational measurements', 'gene-gene', 'association or interaction', 'stage-unspecified'), biology_path=('molecular relationships', 'parasite-parasite', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'relation'), target_family='interaction_degree_ip_ms', target_columns=(), role='feature'), 'Tg_interaction_degree_structural_similarity': Slot(organism='Tg', name='interaction degree · structural similarity', axis='relation', context='Foldseek', unit='gene', patterns=('n_struct_similar',), policy='one', candidates=(), evidence_path=('relational measurements', 'gene-gene', 'association or interaction', 'stage-unspecified'), biology_path=('molecular relationships', 'parasite-parasite', 'stage-unspecified', 'unperturbed'), context_path=('reference or computational', 'no host', 'tissue-unspecified', 'stage-unspecified', 'relation'), target_family='interaction_degree_structural_similarity', target_columns=(), role='feature'), 'Tg_host_interaction_degree': Slot(organism='Tg', name='host interaction degree', axis='host effect', context='curated parasite-host interactions', unit='gene', patterns=('n_host_targets',), policy='one', candidates=(), evidence_path=('relational measurements', 'parasite-host', 'host effect', 'stage-unspecified'), biology_path=('molecular relationships', 'parasite-host', 'stage-unspecified', 'unperturbed'), context_path=('host-cell or host-derived', 'no host', 'tissue-unspecified', 'stage-unspecified', 'host effect'), target_family='host_interaction_degree', target_columns=(), role='feature'), 'Tg_host_transcriptional_effect_per_effector': Slot(organism='Tg', name='host transcriptional effect per effector', axis='host effect', context='dual perturb-seq', unit='gene', patterns=('hosttx_T2', 'hosttx_signature_'), policy='separate', candidates=(['37827122', 'GSE229505', 'the per-effector host signature, not just its p-value'],), evidence_path=('relational measurements', 'parasite-host', 'host effect', 'stage-unspecified'), biology_path=('molecular relationships', 'parasite-host', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'host effect'), target_family='host_transcriptional_effect_per_effector', target_columns=(), role='feature'), 'Tg_domain_content': Slot(organism='Tg', name='domain content', axis='sequence', context='InterPro', unit='gene', patterns=('n_interpro', 'has_domain', 'interpro_id', 'interpro_desc', 'pfam_id'), policy='one', candidates=(), evidence_path=('intrinsic and reference', 'sequence and evolution', 'gene attributes', 'stage-unspecified'), biology_path=('intrinsic properties', 'sequence structure and evolution', 'stage-unspecified', 'unperturbed'), context_path=('reference or computational', 'no host', 'tissue-unspecified', 'stage-unspecified', 'sequence'), target_family='domain_content', target_columns=(), role='feature'), 'Tg_fold_confidence_disorder': Slot(organism='Tg', name='fold confidence / disorder', axis='sequence', context='AlphaFold', unit='gene', patterns=('mean_plddt', 'has_structure'), policy='one', candidates=(), evidence_path=('intrinsic and reference', 'sequence and evolution', 'gene attributes', 'stage-unspecified'), biology_path=('intrinsic properties', 'sequence structure and evolution', 'stage-unspecified', 'unperturbed'), context_path=('reference or computational', 'no host', 'tissue-unspecified', 'stage-unspecified', 'sequence'), target_family='fold_confidence_disorder', target_columns=(), role='feature'), 'Tg_conservation_breadth': Slot(organism='Tg', name='conservation breadth', axis='sequence', context='OrthoMCL', unit='gene', patterns=('has_pf_ortholog', 'has_cp_ortholog', 'lineage_specific', 'orthogroup'), policy='one', candidates=(), evidence_path=('intrinsic and reference', 'sequence and evolution', 'gene attributes', 'stage-unspecified'), biology_path=('intrinsic properties', 'sequence structure and evolution', 'stage-unspecified', 'unperturbed'), context_path=('reference or computational', 'no host', 'tissue-unspecified', 'stage-unspecified', 'sequence'), target_family='conservation_breadth', target_columns=(), role='feature'), 'Tg_paralogy': Slot(organism='Tg', name='paralogy', axis='sequence', context='OrthoMCL', unit='gene', patterns=('paralog_number',), policy='one', candidates=(), evidence_path=('intrinsic and reference', 'sequence and evolution', 'gene attributes', 'stage-unspecified'), biology_path=('intrinsic properties', 'sequence structure and evolution', 'stage-unspecified', 'unperturbed'), context_path=('reference or computational', 'no host', 'tissue-unspecified', 'stage-unspecified', 'sequence'), target_family='paralogy', target_columns=(), role='feature'), 'Tg_sequence_basics': Slot(organism='Tg', name='sequence basics', axis='sequence', context='protein', unit='gene', patterns=('length', 'sequence'), policy='one', candidates=(), evidence_path=('intrinsic and reference', 'sequence and evolution', 'gene attributes', 'stage-unspecified'), biology_path=('intrinsic properties', 'sequence structure and evolution', 'stage-unspecified', 'unperturbed'), context_path=('reference or computational', 'no host', 'tissue-unspecified', 'stage-unspecified', 'sequence'), target_family='sequence_basics', target_columns=(), role='feature'), 'Tg_strain_variation': Slot(organism='Tg', name='strain variation', axis='sequence', context='population', unit='gene', patterns=('snp_',), policy='one', candidates=(['', 'ToxoDB HTS SNPs', 'SNPs per gene across every sequenced strain'], ['', 'GSE313582', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313273', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE313318', 'from the GEO index; verify assay and parasite-gene shape'], ['40830525', 'GSE294543', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE302108', 'from the GEO index; verify assay and parasite-gene shape'], ['40823841', 'GSE249123', 'from the GEO index; verify assay and parasite-gene shape'], ['37675999', 'GSE210671', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE206344', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('intrinsic and reference', 'sequence and evolution', 'gene attributes', 'stage-unspecified'), biology_path=('intrinsic properties', 'sequence structure and evolution', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'sequence'), target_family='strain_variation', target_columns=(), role='feature'), 'Tg_enzyme_classification': Slot(organism='Tg', name='enzyme classification', axis='metabolism', context='annotation', unit='gene', patterns=('ec_number', 'has_ec'), policy='one', candidates=(), evidence_path=('molecular measurements', 'metabolism', 'metabolite or flux', 'stage-unspecified'), biology_path=('metabolism', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'metabolism'), target_family='enzyme_classification', target_columns=(), role='feature'), 'Tg_resistance_conferring_mutation': Slot(organism='Tg', name='resistance-conferring mutation', axis='chemistry', context='in vitro evolution', unit='gene', patterns=('resistance_allele_count', 'resistance_compound_count', 'resistance_substitutions', 'resistance_compounds'), policy='separate', candidates=(['24533298', 'Int J Parasitol Drugs Drug Resist', 'TgMAPK1 L162Q and I171N, 1NM-PP1'], ['25941623', 'Sci Rep', 'TgMAPKL-1 gatekeeper S191Y'], ['35041939', 'GSE175919', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('perturbational measurements', 'chemical', 'response or engagement', 'stage-unspecified'), biology_path=('parasite phenotype', 'chemical response', 'stage-unspecified', 'drug or compound'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'chemistry'), target_family='resistance_conferring_mutation', target_columns=(), role='feature'), 'Tg_target_engagement_thermal_shift': Slot(organism='Tg', name='target engagement / thermal shift', axis='chemistry', context='thermal proteome', unit='gene', patterns=('cetsa_calcium_ed_score',), policy='average', candidates=(), evidence_path=('perturbational measurements', 'chemical', 'response or engagement', 'stage-unspecified'), biology_path=('parasite phenotype', 'chemical response', 'stage-unspecified', 'drug or compound'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'chemistry'), target_family='target_engagement_thermal_shift', target_columns=(), role='feature'), 'Tg_rna_binding_protein_targets': Slot(organism='Tg', name='RNA-binding protein targets', axis='relation', context='CLIP / RIP', unit='gene', patterns=('bfd2_rip_log2_ip_over_input',), policy='separate', candidates=(), evidence_path=('relational measurements', 'gene-gene', 'association or interaction', 'stage-unspecified'), biology_path=('molecular relationships', 'parasite-parasite', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'relation'), target_family='rna_binding_protein_targets', target_columns=(), role='feature'), 'Tg_noncoding_and_antisense_transcription': Slot(organism='Tg', name='noncoding and antisense transcription', axis='transcription', context='lncRNA', unit='gene', patterns=('antisense_expression_percentile',), policy='separate', candidates=(), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'stage-unspecified'), biology_path=('gene expression', 'RNA abundance', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'transcription'), target_family='noncoding_and_antisense_transcription', target_columns=(), role='feature'), 'Tg_codon_usage_translation_efficiency': Slot(organism='Tg', name='codon usage / translation efficiency', axis='translation', context='sequence-derived', unit='gene', patterns=('codon_',), policy='one', candidates=(), evidence_path=('molecular measurements', 'translation', 'ribosome occupancy', 'stage-unspecified'), biology_path=('gene expression', 'protein synthesis', 'stage-unspecified', 'unperturbed'), context_path=('reference or computational', 'no host', 'tissue-unspecified', 'stage-unspecified', 'translation'), target_family='codon_usage_translation_efficiency', target_columns=(), role='feature'), 'Tg_complex_membership': Slot(organism='Tg', name='complex membership', axis='relation', context='crosslink MS interactome', unit='gene', patterns=('n_crosslink_partners',), policy='separate', candidates=(['40874616', 'mBio 02159-25', 'Toxoplasma interactome by crosslinking mass spectrometry'],), evidence_path=('relational measurements', 'gene-gene', 'association or interaction', 'stage-unspecified'), biology_path=('molecular relationships', 'parasite-parasite', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'relation'), target_family='complex_membership', target_columns=(), role='feature'), 'Tg_seroreactivity_antigenicity': Slot(organism='Tg', name='seroreactivity / antigenicity', axis='immunity', context='human or animal sera', unit='gene', patterns=('n_bcell_epitopes',), policy='separate', candidates=(['', 'IEDB bcell_search', 'distinct antibody epitope sequences per antigen'], ['41704854', 'GSE300509', 'from the GEO index; verify assay and parasite-gene shape'], ['40830525', 'GSE294543', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE287334', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE124251', 'from the GEO index; verify assay and parasite-gene shape'], ['37350586', 'GSE228853', 'from the GEO index; verify assay and parasite-gene shape'], ['36214684', 'GSE198001', 'from the GEO index; verify assay and parasite-gene shape'], ['33336164', 'GSE156685', 'from the GEO index; verify assay and parasite-gene shape'], ['32065584', 'GSE145080', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('relational measurements', 'host immunity', 'recognition', 'stage-unspecified'), biology_path=('host recognition', 'stage-unspecified', 'unperturbed'), context_path=('host-cell or host-derived', 'human', 'sera', 'stage-unspecified', 'immunity'), target_family='seroreactivity_antigenicity', target_columns=(), role='feature'), 'Tg_t_cell_epitope_content': Slot(organism='Tg', name='T-cell epitope content', axis='immunity', context='predicted and measured', unit='gene', patterns=('iedb_epitope_count',), policy='average', candidates=(['', 'GSE287334', 'from the GEO index; verify assay and parasite-gene shape'],), evidence_path=('relational measurements', 'host immunity', 'recognition', 'stage-unspecified'), biology_path=('host recognition', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'immunity'), target_family='t_cell_epitope_content', target_columns=(), role='feature'), 'Tg_host_escrt_recruitment': Slot(organism='Tg', name='host ESCRT recruitment', axis='phenotype', context='high-content imaging', unit='gene', patterns=('escrt_recruitment_',), policy='separate', candidates=(['', 'spaCR screen (unpublished)', 'pooled image-based CRISPR screen of secretory proteins'],), evidence_path=('perturbational measurements', 'cell phenotype', 'imaging phenotype', 'stage-unspecified'), biology_path=('parasite phenotype', 'cellular process', 'stage-unspecified', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'phenotype'), target_family='host_escrt_recruitment', target_columns=(), role='feature'), 'Tg_invasion_and_egress_phenotype': Slot(organism='Tg', name='invasion and egress phenotype', axis='phenotype', context='high-content imaging', unit='gene', patterns=('screen_egress_phenotype', 'screen_any_phenotype', 'screen_actin_phenotype', 'screen_apicoplast_phenotype', 'screen_replication_phenotype', 'screen_scorers_agree'), policy='separate', candidates=(['35538310', 'Nat Microbiol 41564-2022-01114', 'arrayed splitCas9 imaging screen, 319 genes'],), evidence_path=('perturbational measurements', 'cell phenotype', 'imaging phenotype', 'stage-unspecified'), biology_path=('parasite phenotype', 'cellular process', 'stage-unspecified', 'extracellular or starvation'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'phenotype'), target_family='invasion_and_egress_phenotype', target_columns=(), role='feature'), 'Tg_essentiality_in_a_second_background': Slot(organism='Tg', name='essentiality in a second background', axis='fitness', context='second strain', unit='gene', patterns=('crispr_reporter_strain_p8_log2',), policy='separate', candidates=(['', 'GSE132237', 'eight passages in the differentiation reporter strain'], ['31955846', 'GSE132237', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'stage-unspecified'), biology_path=('parasite phenotype', 'fitness and essentiality', 'stage-unspecified', 'genetic background'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'stage-unspecified', 'fitness'), target_family='essentiality_in_a_second_background', target_columns=(), role='feature'), 'Tg_local_af3_fold_confidence_and_geometry': Slot(organism='Tg', name='local AF3 fold confidence and geometry', axis='sequence', context='AlphaFold 3 local predictions', unit='gene', patterns=('af3_',), policy='separate', candidates=(), evidence_path=('intrinsic and reference', 'sequence and evolution', 'gene attributes', 'stage-unspecified'), biology_path=('intrinsic properties', 'sequence structure and evolution', 'stage-unspecified', 'unperturbed'), context_path=('reference or computational', 'no host', 'tissue-unspecified', 'stage-unspecified', 'sequence'), target_family='fold_confidence_disorder', target_columns=(), role='feature'), 'Tg_transcription_in_vivo_enteric': Slot(organism='Tg', name='transcription · in vivo enteric', axis='transcription', context='feline enterocyte', unit='gene', patterns=('ees_vs_tachyzoite_log2',), policy='one', candidates=(['38093015', 'GSE222835', 'from the GEO index; verify assay and parasite-gene shape'], ['38093015', 'GSE222819', 'from the GEO index; verify assay and parasite-gene shape'], ['', 'GSE206344', 'from the GEO index; verify assay and parasite-gene shape'], ['32094587', 'GSE136123', 'from the GEO index; verify assay and parasite-gene shape'], ['32094587', 'GSE136060', 'from the GEO index; verify assay and parasite-gene shape'], ['29788176', 'GSE109087', 'from the GEO index; verify assay and parasite-gene shape'], ['29788176', 'GSE109086', 'from the GEO index; verify assay and parasite-gene shape'], ['30728393', 'GSE108740', 'from the GEO index; verify assay and parasite-gene shape']), evidence_path=('molecular measurements', 'RNA', 'transcript abundance', 'tachyzoite (implied)'), biology_path=('gene expression', 'RNA abundance', 'tachyzoite (implied)', 'unperturbed'), context_path=('in vivo', 'mouse', 'tissue-unspecified', 'tachyzoite (implied)', 'transcription'), target_family='transcription_in_vivo_enteric', target_columns=(), role='feature'), 'Tg_fitness_in_vivo_gut': Slot(organism='Tg', name='fitness · in vivo gut', axis='fitness', context='enteric, sexual cycle', unit='gene', patterns=('enteric_oocyst_yield', 'enteric_sporulation', 'enteric_measurements'), policy='separate', candidates=(['28288194', 'PLoS Pathog', 'AAH1/AAH2 oocyst yield in the cat'], ['30728393', 'Sci Rep', 'HAP2 fertilisation-deficient line sheds no sporulating oocysts'], ['36809045', 'mBio', 'LEA cluster deletion, oocyst yield unchanged'], ['PMC12942651', 'Pathogens', 'glutaredoxin 5 reduces oocyst production and sporulation']), evidence_path=('perturbational measurements', 'genetic screens', 'fitness', 'sexual'), biology_path=('parasite phenotype', 'fitness and essentiality', 'sexual', 'unperturbed'), context_path=('in vivo', 'mouse', 'gut', 'sexual', 'fitness'), target_family='fitness_in_vivo_gut', target_columns=(), role='feature'), 'Tg_cyst_wall_composition': Slot(organism='Tg', name='cyst wall composition', axis='localization', context='bradyzoite cyst wall', unit='gene', patterns=('cyst_wall_',), policy='separate', candidates=(), evidence_path=('molecular measurements', 'spatial biology', 'localization', 'bradyzoite'), biology_path=('cell organization', 'localization and topology', 'bradyzoite', 'unperturbed'), context_path=('in vitro or assay-defined', 'no host', 'tissue-unspecified', 'bradyzoite', 'localization'), target_family='subcellular localization', target_columns=(), role='feature')}
RENAMED_BLOCKS = {'localisation': 'localization'}
CATEGORICAL_BLOCKS = {'compartment': 'compartment', 'compartment_best': 'compartment_best'}
@dataclass
class EmbeddingSpec:

A complete, reproducible recipe for one embedding.

EmbeddingSpec( name: str = 'default', blocks: tuple = ('expression_summary', 'fitness_screens', 'protein_features'), categorical: tuple = (), extra_columns: tuple = (), na_policy: str = 'median', max_missing: float = 0.5, scaling: str = 'robust', block_weights: dict = <factory>, categorical_weight: float = 1.0, indicator_weight: float = 0.5, method: str = 'umap', n_components: int = 3, n_neighbors: int = 25, min_dist: float = 0.25, perplexity: float = 30.0, early_exaggeration: float = 12.0, metric: str = 'euclidean', random_state: int = 42)
name: str = 'default'
blocks: tuple = ('expression_summary', 'fitness_screens', 'protein_features')
categorical: tuple = ()
extra_columns: tuple = ()
na_policy: str = 'median'
max_missing: float = 0.5
scaling: str = 'robust'
block_weights: dict
categorical_weight: float = 1.0
indicator_weight: float = 0.5
method: str = 'umap'
n_components: int = 3
n_neighbors: int = 25
min_dist: float = 0.25
perplexity: float = 30.0
early_exaggeration: float = 12.0
metric: str = 'euclidean'
random_state: int = 42
def to_dict(self):

The recipe as a plain dict, for storing beside an embedding.

@classmethod
def from_dict(cls, d):

Rebuild a spec from a stored recipe.

def columns_for(nodes: pandas.DataFrame, spec: EmbeddingSpec) -> dict:

block -> the node-table columns it contributes, in this table.

def as_text(s):

A plain string Series with missing values as "", whatever pandas version is installed.

.astype(str) keeps NA under pandas 3 and produces the literal "nan" under pandas 2, so one-hot encoding a column with missing values gives a different set of dummy columns on each. Missing becomes "", which is already an absence label everywhere else in this project.

def build_matrix( nodes: pandas.DataFrame, spec: EmbeddingSpec, log=<built-in function print>):

Return (X, feature_names, kept_gene_index) for one spec.

Scaling happens within each block before weighting, so a block's influence is set by its weight rather than by how many columns it happens to have or what units they are in.

def normalize(Y, scale: float = 50.0) -> numpy.ndarray:

Center an embedding and scale it to a fixed extent.

Every map arrives at the same size, which is what lets one replace another in the view without the camera having to be re-framed, and what makes two thumbnails comparable. The scaling is uniform across axes rather than per-axis, so it moves and resizes the cloud without distorting it: neighborhoods, distance ranks and any clustering computed on the result are unchanged.

Centerd in double precision and cast to float32 only at the end. Done the other way round -- the cast first, as this did -- a cloud whose spread is small next to its offset from the origin loses that spread to cancellation: 900 ± 0.001 in float32 has about three digits left to subtract with, and the map comes back quantised into bands. It is the cast that has to be last, not the subtraction. The GL widget still receives float32, which is what it wants.

Building a new array rather than scaling in place also sidesteps the read-only input: UMAP returns one in recent versions, and in-place centering fails there with "output array is read-only" -- the fourth place this project has hit that.

class EmbeddingCoordinates(numpy.ndarray):

Display coordinates carrying the actual execution record until stored.

def default_spec(nodes: pandas.DataFrame) -> EmbeddingSpec:

The same balanced display recipe for packaged and interactive layouts.

Include available numeric biological feature slots, with one contribution per source column. Missingness and weighting remain explicit in the stored recipe. Label targets and literature attention are not selected as display features.

def inference_spec(nodes: pandas.DataFrame) -> EmbeddingSpec:

The grouping recipe used by the shipped calibration, independent of display defaults.

Non-Toxoplasma tables previously used the legacy regex recipe followed by Context's prefix fallback. Preserve that grouping until a new calibration explicitly adopts per-space slots. This compatibility recipe makes no claim that the display layout is a validated prediction.

def embed( nodes: pandas.DataFrame, spec: EmbeddingSpec, log=<built-in function print>, return_matrix: bool = False, strict: bool = False, return_metadata: bool = False):

Project a declared matrix and record the method that actually executed.

The default return is (coords, feature_names, kept_rows). return_matrix appends the input matrix; return_metadata appends execution provenance. Coordinates also carry that record for EmbeddingStore. strict=True refuses backend or algorithm fallback and should be used for inference comparisons.

def variance_share( nodes: pandas.DataFrame, spec: EmbeddingSpec) -> pandas.DataFrame:

How much of the matrix's variance each block actually carries.

This is the check that catches a block being named as an input while contributing nothing, which is what happened to hyperLOPIT at 1.1%.

def missingness_leak( coords: numpy.ndarray, nodes: pandas.DataFrame, columns) -> pandas.DataFrame:

Does 'was this gene measured' predict where it sits? Reports centroid gap in map radii.