pyoncoplot has two rendering backends:
- Plotly for interactive output.
- Matplotlib for deterministic static output.
Use Plotly when you want hover labels, interactive inspection, and HTML export.
result = oncoplot(
mutations,
gene_col="gene",
sample_col="sample",
mutation_type_col="mutation_type",
tooltip_col="tooltip",
backend="plotly",
)
result.save("oncoplot.html")Plotly output supports copy_on_click:
| Value | Copied value |
|---|---|
"sample" |
clicked sample identifier |
"gene" |
clicked gene identifier |
"tooltip" |
clicked tooltip text |
"mutation_type" |
clicked mutation type |
"nothing" |
disables clipboard behavior |
Clipboard behavior is inserted into exported HTML via
navigator.clipboard.writeText.
Use Matplotlib when you need PNG, SVG, PDF, deterministic gallery images, or static figures for manuscripts.
result = oncoplot(
mutations,
gene_col="gene",
sample_col="sample",
mutation_type_col="mutation_type",
backend="matplotlib",
)
result.save("oncoplot.svg")Matplotlib currently has the richest static layout support for:
- stacked TMB bars.
- right-side gene bars with percentage labels.
- numeric metadata bars.
- separate metadata legends.
- compact tile borders and row separators.
| Need | Recommended backend |
|---|---|
| exploratory browser plot | Plotly |
| hover and click-to-copy | Plotly |
| standalone HTML | Plotly |
| PNG/SVG/PDF figure | Matplotlib |
| deterministic gallery recreation | Matplotlib |
| manuscript-style static output | Matplotlib |
| Feature | Plotly | Matplotlib |
|---|---|---|
| mutation grid | interactive markers with hover and linked selection | static tile grid |
| TMB totals | bar trace; log and scientific tick formatting supported | bar axis; log labels and scientific tick formatting supported |
| TMB subtype legends | TMB: <subtype> entries when custom stacked TMB is rendered |
separate TMB Type legend when custom stacked TMB is rendered |
| metadata display | heatmap strip with prettified hover labels and shared interactive legend | heatmap or mini-bar strip with separate metadata legends |
| image export | HTML built in; image export needs the export extra |
PNG, SVG, PDF, and other savefig formats |
| copy-on-click | supported in exported HTML | not applicable to static figures |
| static layout controls | useful font, legend, marker, and axis controls | richest support for tile dimensions, metadata bars, font faces, and separate legend layout |
The interactive argument is a convenience alias:
oncoplot(..., interactive=True) # backend="plotly"
oncoplot(..., interactive=False) # backend="matplotlib"