Experimental tooling to support notebook analysis of polislike data.
✨ Inspired by scanpy and the scverse ecosystem! ❤️
pip install valency-anndata
import valency_anndata as val
adata = val.datasets.polis.load("https://pol.is/report/r29kkytnipymd3exbynkd")
val.viz.schematic_diagram(adata, diff_from=None)
with val.viz.schematic_diagram(diff_from=adata):
val.tools.recipe_polis(adata, key_added_pca="X_pca_polis")
val.viz.embedding(adata, basis="pca_polis", color="kmeans_polis")
val.viz.schematic_diagram(diff_from=adata):
val.preprocessing.calculate_qc_metrics(pacmap_adata, inplace=True)
val.viz.embedding(adata, basis="pca_polis",
color=["kmeans_polis", "pct_seen", "pct_agree", "pct_pass"],
)
from valency_anndata.tools._polis import _zero_mask, _cluster_mask
with val.viz.schematic_diagram(diff_from=adata):
_zero_mask(adata)
val.preprocessing.impute(
adata,
strategy="mean",
source_layer="X_masked",
target_layer="X_masked_imputed_mean",
)
val.tools.pacmap(
adata,
key_added="X_pacmap",
layer="X_masked_imputed_mean",
)
_cluster_mask(adata)
val.tools.kmeans(
adata,
k_bounds=(2, 9),
use_rep="X_pacmap",
mask_obs="cluster_mask",
key_added="kmeans_pacmap",
)
val.viz.embedding(adata, basis="pacmap",
color=["kmeans_pacmap", "pct_seen", "pct_agree", "pct_pass"],
)
For full examples and planned features, see: kitchen-sink.ipynb
This repo includes a Claude Code skill that guides you through loading and exploring Polis conversations interactively. It will prompt you for which projections and annotations to visualize, then run the full pipeline for you.
We are maintaining a custom CONTRIBUTING.md with specific links and a compiled list of entry tasks!
