Gene and sample ordering are central to making an oncoplot readable.
By default, genes are ranked by the number of distinct samples with a mutation.
oncoplot(
mutations,
gene_col="gene",
sample_col="sample",
mutation_type_col="mutation_type",
top_n=15,
)Use include_genes when a gene panel should be fixed:
oncoplot(
mutations,
gene_col="gene",
sample_col="sample",
mutation_type_col="mutation_type",
include_genes=["TP53", "PIK3CA", "PTEN", "EGFR"],
)Pathway input has exactly two columns: one gene column and one pathway column.
pathway = pd.DataFrame(
{
"gene": ["TP53", "RB1", "PIK3CA", "PTEN"],
"pathway": ["Cell cycle", "Cell cycle", "PI3K", "PI3K"],
}
)
oncoplot(
mutations,
gene_col="gene",
sample_col="sample",
mutation_type_col="mutation_type",
pathway=pathway,
pathway_gene_col="gene",
)Validation rules:
- pathway input must have exactly two columns.
- pathway genes cannot be missing.
- pathway names cannot be missing.
- pathway gene values must be unique.
"Other"is reserved for unmapped genes.
By default, samples are ordered to emphasize mutations in high-ranked genes.
Use sample_order for exact control:
oncoplot(
mutations,
gene_col="gene",
sample_col="sample",
mutation_type_col="mutation_type",
sample_order=["S3", "S2", "S1"],
)Use metadata sorting to group samples by clinical categories.
oncoplot(
mutations,
gene_col="gene",
sample_col="sample",
mutation_type_col="mutation_type",
metadata=metadata,
metadata_cols=["Subtype", "Response"],
metadata_sort_cols=["Subtype", "Response"],
metadata_sort_by=["alphabetical", "frequency"],
metadata_sort_desc=[False, True],
)Common values for metadata_sort_by:
| Value | Meaning |
|---|---|
"alphabetical" |
sort category labels alphabetically |
"frequency" |
sort category labels by frequency |
Use show_all_samples=True when metadata or custom TMB inputs should define
the cohort, even if some samples have no mutations in the selected gene panel.
oncoplot(
mutations,
gene_col="gene",
sample_col="sample",
mutation_type_col="mutation_type",
metadata=metadata,
metadata_cols=["Subtype"],
show_all_samples=True,
)