Skip to content

Feature request: support independent-origin tumors via a forest/multi-root model #57

Description

@alexanderchang1

Summary

pictographPlus enforces a single-root tree model in the tree enumerator (R/tree-gabowmyers.R:98), which cannot represent independent-origin tumors (e.g. bilateral cancers, polyclonal or multi-primary cases) that share only germline mutations, not a somatic common ancestor. Run together, such samples are forced onto one connected tree with an invented common ancestor.

Problem

The tree-enumeration completion criterion (R/tree-gabowmyers.R:98) accepts a tree only when all vertices are covered by exactly V−1 edges — the definition of a single connected spanning tree. Combined with prepareGraph() seeding a root -> i edge for every cluster, every output is one connected tree rooted at a single root; a forest (K > 1 components) can never be produced. A package-wide search finds no forest / multi-root / independent-origin code path.

When clusters come from independent origins (no shared somatic MRCA), the enumerator must "force" a connection between the independent roots — inflating shared/germline signal into a fictitious trunk and misrepresenting clonal timing. There is currently no way for the model to decline to join unrelated samples, nor any warning that the single-tree assumption was violated.

Solution outline (two tiers)

Tier 1 — near-term, low cost: a pre-flight relatedness check run early in runPictograph() that flags when clusters appear evolutionarily independent (low shared-mutation density across samples) and emits a clear warning that the single-tree assumption may not hold — optionally writing a relatedness_qc.csv companion (parallel to a tree_qc.csv, if that diagnostic lands). This changes no model behavior; it only surfaces when the core assumption is violated.

Tier 2 — larger, structural: extend the enumerator to accept forests (K > 1 roots, Σ|E_i| = V − K edges), extend MCMC/MCF scoring to multi-root inference, and extend the writers/plots to represent forest structures.

Why this matters

Multi-region and potential multi-primary cases are common in real cohorts (we hit them applying pictographPlus to a breast PDO organoid cohort). When two regions are in fact independent primaries, the current single-tree output is confidently wrong. Even Tier 1 alone would let downstream users catch these and interpret accordingly without disrupting existing analyses.

Environment

pictographPlus 1.1.1 (source checkout), R 4.4.3.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions