Get started
Cellazon PathwayPersona analyzes a chosen cell population from a public single-cell atlas, identifies cell-to-cell signaling activity, and returns a ranked list of candidate drug targets and biomarkers. The cards below are ready-made templates. Pick one to fill in the settings it names, review them in Configure & run, then start the pipeline.
ⓘ This version supports the CZ CELLxGENE Census as the only data source. Other atlases and data feeds are not yet connected.
ⓘ Every template here analyzes one population on its own. If your question is a contrast between two or more populations or conditions (for example responders vs non-responders), skip these templates and go straight to instead.
What happens when you press run
Five steps, in order. Steps 1 to 4 run the analysis. Step 5 reads the answer back. The grey code on each step is the internal layer name. It only matters if you are talking to the engineering team.
Configure & run
Two decisions: which cells you want, and how far you want Cascade to take them. Everything else already has a sensible default.
Which cells do you want to study?
These choices are passed to the CELLxGENE Census atlas to select a slice of cells. Leave anything set to any if you do not want to constrain it.
More filters · donor sex, sequencing chemistry, age, ethnicity, sample prep
Data source · offline test data vs the live atlas
ⓘ CZ CELLxGENE Census is the only supported data source in this version.
How far should Cascade take them?
Pick a plan. The four coloured pips on each card show which of the four analysis steps will run. Run the whole analysis is the right answer almost every time.
Fine-tune individual steps · turn single steps on or off by hand
Steps that are switched off are skipped, and Cascade will reuse whatever that step produced last time for this dataset. If nothing was produced before, the run will stop with a clear message.
Advanced settings · scientific parameters for each step (quality thresholds, permutations, ranking weights)
These change how each step behaves. Every one has a safe default, so you can ignore this whole section until you want to A/B test a choice. Change one thing, run, then compare against the earlier run in History.
Ready to run
Exact atlas query being sent
n/a
Compare groups
Run two or more arms (for example responders vs non-responders) through the same pipeline in one submission, then compare their ranked targets and biomarkers side by side. Internally this is called a "cohort run" (you'll see that word in API responses and the manual); the tab is named for what it does.
ⓘ This tab is for contrasting two or more populations or conditions against each other. If you only want to analyze one population on its own, use instead; it has ready-made templates and gets you a result in one click.
Progress
Each step below runs in order and writes its output to shared storage, so a later step can always be re-run on its own without repeating the download.
Nothing is running
Start an analysis from Get started or Configure & run and this page will follow it live.
Running analysis
not recorded
Live activity
Newest entry at the bottom. A line is written only when the run actually changes state, so this is a record of what happened, not a ticking clock.
Progress over time
The percentage the server reported, against how long the run had been going when it said so. A flat stretch is a step that took a while; a vertical jump is a step landing. Plotted from the polls themselves, so it starts fresh if you reload the page.
Results
Candidate drug targets are receptors: the receiving end of a signal, and the side a drug usually binds. Biomarkers are ligands: the signal being sent, which is easier to measure in a sample. Both are ranked by a combined score, highest first.
No results loaded yet.
No finished results yet
Results appear here once a dataset has been taken all the way through step 4 (ranking).
How these cell populations signal to each other
The matrix holds one square per sender-to-receiver population pair, shaded by how many ligand–receptor routes were scored between those two. Click any square, including an empty one, to list that pair's individual routes underneath. The network view draws the same routes as curved lines on a ring; it only stays readable once the filters have cut the route count down. Read the numbers below the chart before drawing conclusions from it.
Candidate drug targets
Receptors ranked by combined score: how strong the signal into that receptor is, how consistent it is across cells, whether the receptor is a plausible drug target, and how much of its evidence is statistically significant. Hover any bar for the breakdown.
Top biomarkers
Ligands ranked by combined score: signal strength multiplied by how consistent it is across cells. These are the molecules being sent, and are usually the easier thing to assay.
Candidate drug targets
Every number behind the chart.
| Target (receptor) | Signal strength | Consistency | Druggability | Significant | Edges | Direction | Combined score |
|---|
Top biomarkers
Every number behind the chart.
| Biomarker (ligand) | Signal strength | Consistency | Edges | Direction | Combined score |
|---|
Raw response
The exact JSON returned by GET /v1/samples/{id}/shortlist.
{}
Datasets
Every cell population you have pulled out of the atlas, and how far each one has been taken. Each step writes its output to storage, so you can resume any dataset from where it stopped without downloading it again.
History
A record of every analysis, including the exact settings it used. Re-run any of them, change one parameter and compare, or give them names so the interesting ones are easy to find again.
Select a run on the left to rename it, inspect its settings, or run it again. Every run keeps the full request that produced it, so “what exactly did I change?” always has an answer.
Your account has the viewer role, so this panel is read-only: the name and notes fields, and the buttons that would start or delete a run, are all disabled. Everything recorded about the run is still shown.
Guide
Plain-English definitions for everything on screen, plus the mapping between what this interface calls things and what the engineering team calls them. For the long illustrated version (worked example, tour of every tab, day-two questions) see User Manual.
The five steps
What actually happens to your cells, in order.
| What this app calls it | What it does | Internal layer | Event published |
|---|
Glossary
The terms that appear in results and settings.
| Term | Meaning |
|---|---|
| Dataset / sample | One slice of the atlas: a specific tissue and cell type with your filters applied. Every dataset has an ID like census:Homo sapiens:lung:t_cell:… built from those choices, so asking for the same cells twice reuses the same dataset. |
| Run | One execution of the pipeline against a dataset, with a specific set of settings. Runs are logged in History; datasets live in Datasets. |
| Ligand | The signalling molecule a cell sends out. |
| Receptor | The protein on the receiving cell that the ligand binds. Receptors are what Cascade proposes as drug targets, because they are usually the druggable side of the pair. |
| Cell-to-cell communication (CCC) | Inferring which cells are talking to which, by looking for ligand–receptor pairs that are both expressed at the same time more often than chance would predict. |
| Edge | One inferred ligand→receptor link, with a score and a significance value. |
| Signal strength (effect size) | Average score of all the edges arriving at a receptor (or leaving a ligand). Bigger means a stronger inferred signal. |
| Consistency (stability) | How much those edge scores agree with each other, on a 0–1 scale where 1 is perfect agreement. A high score built on wildly varying edges is less trustworthy than a slightly lower, consistent one. |
| Druggability | A prior, between 0 and 1, for how tractable a receptor family is as a drug target. Well-known targets like PDCD1 and IL6R score high; anything not on the curated list gets 0.4. You control how much this influences ranking under Advanced settings. |
| Significant fraction | Share of a receptor's edges that beat the false-discovery cut-off (default q < 0.05). |
| Combined score (rank score) | The single number the shortlist is sorted by. For targets it multiplies signal strength, consistency, the druggability term, and a significance bonus. For biomarkers it is signal strength × consistency. |
| Permutations | How many times the data is reshuffled to build a null distribution. More permutations give steadier significance values but take longer. |
| q-value / FDR | A p-value corrected for the fact that thousands of pairs are tested at once. Lower is stronger evidence. |
| Replay | Re-running the later steps using output that is already stored, instead of downloading the cells again. This is what makes parameter comparisons cheap. |
| Synthetic mode | Realistic offline test data generated locally. Nothing is downloaded and results are not real biology. It exists so you can learn the tool and test settings instantly. |
| Embedded artifact | What step 2 (Clean and normalise) writes: the filtered, normalised matrix, stored beside the raw one under the same dataset ID with an #embedded suffix. Per-cell transcriptional state lives here rather than in the raw download, which is why Compare lineages on the Datasets tab requires a dataset to have reached step 2. |
| Lineage ID | A tag shared by all cells descended from one original cell: a genetic barcode (barcode_id) when the experiment has one, otherwise the TCR clonotype (tcr_clonotype). It is what lets the same clone be recognised in a treated and an untreated arm. If neither column is present in a dataset, lineage comparison has nothing to match on. |
| Therapy-induced (clone) | A clone present in both arms in which a transcriptional state that does not occur in the control arm appears in the treated arm, on at least 15% of that clone's treated cells and on more than one cell. Read as: therapy changed what this clone is doing. |
| Selection (pre-existing clone) | A clone that was already detectable before therapy and grew (treated/control abundance ratio of at least 1.5) while its state distribution barely moved and its dominant state stayed the same. Read as: therapy did not change this clone, it just favoured it. |
| Remodeling | Total-variation distance between one clone's treated and control state distributions: 0 means an identical programme, 1 means fully reprogrammed. The selection criterion requires it to stay below 0.15, which is the same threshold the induction criterion has to clear, so a clone can never satisfy both calls. |
API reference
Everything this interface does is a plain HTTP call. Useful if you want to script it.
| Endpoint | Purpose |
|---|---|
| GET /health | Liveness check. The only route that never needs a token. |
| GET /v1/catalog | All the filter options, defaults, help text and advanced-parameter schema this page is built from. Add ?enrich_live=1 to also probe the live atlas. |
| GET /v1/workspace | Datasets + run history + counts in one round trip. Used to boot this page. |
| GET /v1/samples | Datasets with per-step readiness flags. |
| GET /v1/samples/{id}/shortlist | Top 18 targets and top 5 biomarkers. |
| GET /v1/samples/{id}/features | The complete feature vector for a dataset. |
| POST /v1/samples/delete | Delete a dataset and everything derived from it. Body {"sample_id": "…"}. |
| GET /v1/runs | Run history. |
| POST /v1/runs | Start a run. Blocks until finished. Add ?async=1 to get an ID back immediately instead. |
| GET /v1/runs/{id}/progress | Live step-by-step progress for a background run. This is what the Progress tab polls. |
| POST /v1/runs/{id}/replay | Re-run with overrides. Advanced settings are merged per step, so you can change one knob and leave the rest. |
| PATCH /v1/runs/{id} | Rename, annotate, or re-run a past run. |
| DELETE /v1/runs/{id} | Remove a history entry. Science data is untouched. Note that GET /v1/workspace rebuilds a stub entry, flagged recovered, for any dataset that has finished results but no run left in the log, so deleting the last entry for such a dataset does not leave it blank. |
| POST /v1/lineage/compare | Protocol D4 treated-vs-control lineage comparison: what the Compare lineages card on the Datasets tab sends. Body {"treated_uri": "…", "control_uri": "…"}, and both must be the #embedded artifact of a dataset, not the raw one. Returns per-clone calls, or 400 with the reason if neither arm has more than one distinct transcriptional state; the server refuses rather than returning calls that cannot mean anything. |
Everything except GET /health is scoped to your own account, so two logins never see each other's datasets or runs. Any POST, PATCH or DELETE additionally requires the editor role; a viewer account can read every GET above but cannot start, change or delete anything.
User manual
The long version of the Guide. What this tool is for, what each of the five steps actually computes and what you control in it, a tour of every tab, one run narrated from click to shortlist, and the questions people ask once they have run a few analyses.