End-to-End with run_together (single sample)¶
run_together runs a complete CartoScope pipeline with a single command — ingest → FICTURE → cell decode → asset packaging → image import → (optional) publish. It builds one Makefile and runs it, so the pipeline is resumable and parallel out of the box.
This tutorial mirrors the step-by-step Xenium tutorial but replaces the whole manual chain with one command, using the same public 10x Xenium human lung cancer dataset.
Which entry point should I use?
run_together is one of several ways to drive CartLoader. It shines for multi-platform and multi-sample runs and for one-command convenience. The per-platform orchestrators run_xenium / run_visiumhd and the individual modules remain fully supported. See Which interface should I use?.
Prepare input¶
Download and unpack the dataset exactly as in the step-by-step Xenium tutorial → Prepare Input. After unzipping, ${work_dir}/raw is the Xenium Ranger output directory.
The 10x_xenium profile reads this standard layout automatically — you do not list these files yourself:
1 2 3 4 5 6 | |
See the full Xenium platform page for every path the profile looks for.
Define ID and parameters¶
1 2 3 4 | |
External tools on PATH
run_together delegates to CartLoader modules, which expect spatula, punkst (FICTURE2), tippecanoe, go-pmtiles, gdal, and pigz available (on PATH, or as built repo submodules for spatula/punkst). Unlike run_xenium, run_together does not take per-tool path flags.
Run the pipeline¶
Set up the environment
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Command
1 2 3 4 5 6 7 | |
Set up the environment
Fixed paths in the Docker Image
Tools and dependencies have fixed paths in the Docker image (for example, /usr/local/bin/pmtiles).
DO NOT modify paths of tools and dependencies manually.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Command
1 2 3 4 5 6 7 8 9 10 | |
Preview before running
Add --dry-run to write the Makefile and print every command (make -n) without executing. Inspect ${work_dir}/output/${DATA_ID}/run_together.mk and run_together.resolved.json to see exactly what will run.
Projection-only mode¶
To reuse models from a previous FICTURE run instead of training new ones, point --project-models at that run's FICTURE directory. run_together reads its ficture.params.json and re-projects every model it lists — no LDA training runs.
1 2 3 | |
Output¶
1 2 3 4 5 6 7 | |
The cartl/<id>/catalog.yaml plus its PMTiles is the deployable CartoScope asset. (A joint multi-sample run instead produces cartl/<multi_id>-<sample_id>/ per sample plus a cartl/multi-catalog.yaml — see the multi-sample tutorial.) See the per-module output details in sge_convert, run_ficture2, and run_cartload2.
Resume, re-run, and publish¶
- Resume after a failure: just re-run the same command (or
make -f .../run_together.mk -j N). Completed stages are skipped via their flag files. - Run part of the pipeline:
--only ingest,fictureor--skip images. Excluded upstream stages are assumed already done. - Force a clean rebuild:
--restart(make -B). - Publish (opt-in): annotation and S3 upload are separate CLI flags —
--anno(with--tissue/--organism) and--s3-upload(with--collection). See the reference → Publish.
Next steps¶
- Process several sections under one joint FICTURE model: End-to-End with
run_together(multi-sample). - Full option and configuration reference:
run_togetherreference. - Supported platforms and the exact inputs each expects: Supported Platforms & Inputs.