Skip to content

Annotation evidence and missing values

Annotations report provider evidence. A recorded label does not establish that a perturbation activates a pathway, that an investigated indication is approved, or that a missing flag is biologically false.

ChEMBL

ChEMBLAnnotator.get_development_status() preserves original curated flags in raw_flags. Route, warning, probe and related curated flags now return True for a recorded positive and None otherwise. This deliberately changes earlier zero-to-False decoding. A missing maximum phase is unknown, not evidence of a preclinical programme; a negative unknown-phase code also leaves approval status unknown. AnnData summary columns preserve these unknown flags as None. The natural_product flag denotes the provider's COCONUT membership annotation; it is not a validated natural-versus-synthetic label. The default AnnData summary column is now drug_coconut_member, replacing drug_is_natural_product. Existing user-owned columns are not automatically renamed; callers should update column selections when regenerating annotations.

get_activities(identifier, limit=None) retrieves the complete activity table. Apply species, relation, quality, assay and potency filters to this complete table before inferring target coverage. With a finite limit, activity_fetch_metadata[parent] reports returned rows, a truncation flag and the total when known. A truncated fetch has an unknown total and a lower bound. Both REST and SQLite implement the same contract. get_target_profile() and the target branch of annotate() fetch all activities by default.

Target profiles preserve all gene_symbols, include the number of distinct assays, and resolve all targets by default. A singular gene_symbol is absent for multicomponent targets. Unknown target types do not qualify as proteins in selectivity summaries. Target profile membership alone is an activity association, not an established mechanism of action.

Parent-family queries reproduce ChEMBL's hierarchy, which may include isotope variants as well as salts. Call get_parent_family_audit(identifier) before transferring family evidence to an exact compound. It compares neutralized fragment InChIKeys while retaining isotope and stereochemistry. Incompatible or unresolved members make primary_annotation_eligible false; raw family data remain available for review.

Structure matches

ChEBI and KEGG exact matches carry primary_annotation_eligible=True. Connectivity-only matches carry false and remain separately identifiable. Matching only the connectivity block does not validate stereochemistry. ChEBI roles are database-asserted has_role relationships and can include investigational or repurposing uses.

PubChem SMILES resolution records the query and returned InChIKeys. A returned CID can represent a standardized or stereochemically different structure; only an exact key match is eligible for exact annotation transfer. Failure to verify the key leaves eligibility false rather than inferring an exact match.

Cell lines

Cellosaurus site is exposed explicitly as sampling_site together with sampling_site_type. It no longer populates tissue, since a metastatic sampling site is not tissue of origin. The combined annotation uses DepMap lineage or Cell Model Passports tissue for that field. Source records remain available so conflicting classifications can be inspected.

Comparisons within an annotation stratum evaluate performance on its recorded compound panel. Differences between tissue, disease or cell-line strata may reflect panel composition and do not establish a causal tissue effect.