BIWT¶
BioInformatics WalkThrough — a guided wizard that turns single-cell data into initial conditions for agent-based models.
You bring an .h5ad, a Seurat .rds, or a plain .csv. BIWT walks you through choosing
which metadata column holds your cell-type labels, merging and renaming those types,
deciding how many cells to place and where, and attaching phenotype parameters. It hands
back a table of positioned cells ready to drop into a simulation.
BIWT is a standalone, pip-installable package. It is host-agnostic: it ships a Qt widget and a small data contract. PhysiCell Studio is the current host.
Start here¶
-
New to BIWT
Install it, then run the wizard end to end on a small file.
-
Working through the wizard
What each step asks, why, and what happens if you skip it.
-
You have a specific dataset
Worked examples for Visium, plain scRNA-seq, and deconvolved spots.
-
Embedding BIWT in your own app
The
BiwtInput/BiwtResultcontract and how to wire up the widget.
What BIWT produces¶
The wizard ends by handing the host a BiwtResult. Its
coordinates field is a DataFrame with one row per placed cell:
| x | y | z | type |
|---|---|---|---|
| -213.4 | 88.1 | 0.0 | tumor |
| -198.7 | 91.6 | 0.0 | tumor |
| 42.0 | -310.5 | 0.0 | macrophage |
Those column names are the PhysiCell convention — type, not cell_type. The result
also reports which cell template you picked for each cell type, if the host offered any;
turning those into a config is the host's job.
BIWT never writes to disk. It returns the result in memory and the host decides where it goes.
Scope and limits¶
BIWT is a setup tool. It does not run simulations, and it does not do bioinformatics
analysis — it consumes the output of an analysis you have already done. It
expects your cell-type calls to exist already, as a column in obs (or a set of per-spot
probability columns, for deconvolved spatial data).
Current limits:
- 3D placement is partial. Give the domain a z extent greater than 20 µm and the
plotters place cells in depth — including the Spatial plotter, which
uses your data's z column. But spot-deconvolution placement, and the extra cells from
Num cells per spot, are always put at
z = 0. - Single Visium library. Multi-library arrays use the first library's scale factors.
- Gene expression is not carried through. Only positions and type labels reach the
result;
substrate_dataandgene_expressionare reserved but unpopulated.
Reading these docs¶
Colored boxes mean specific things:
Note
Context or behavior worth knowing. Nothing goes wrong if you skip it.
Tip
Optional advice that will make your result better.
Warning
You can get a wrong or surprising result here.
Danger
This silently corrupts your output. Read it.
Collapsed Why… boxes hold background you can safely skip on a first pass.