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.
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 withprepareGraph()seeding aroot -> iedge for every cluster, every output is one connected tree rooted at a singleroot; 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 arelatedness_qc.csvcompanion (parallel to atree_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.