CLI Reference
=============
autods-pet provides a command-line interface built with `Typer `_.
All commands share the following global options:
.. list-table::
:header-rows: 1
:widths: 30 70
* - Option
- Description
* - ``-c, --config PATH``
- Path to the INI configuration file (**required**).
* - ``-p, --patients TEXT``
- Patient(s) to process: a single ID, comma-separated IDs, or path to a ``.txt`` list (overrides config).
* - ``--log-file PATH``
- Write detailed logs to a file.
* - ``-v, --verbose``
- Enable DEBUG-level logging.
* - ``--force``
- Re-run stages even if outputs already exist (applies to ``convert``,
``normalize``, ``register``, ``segment``, ``extract``, ``score``,
``run``). By default, completed stages are skipped.
* - ``-V, --version``
- Show version and exit.
``autods-pet create-config``
----------------------------
Generate a configuration file from a named profile.
.. code-block:: bash
# Default profile (standard)
autods-pet create-config -o my_config.ini
# Choose a specific profile
autods-pet create-config -p quick -o my_config.ini
Extra options:
.. list-table::
:widths: 30 70
* - ``-p, --profile TEXT``
- Config profile: ``quick``, ``standard`` (default), ``advanced``,
``full``, ``brain``.
* - ``-o, --output PATH``
- Output path (default: ``config.ini``).
* - ``--force``
- Overwrite an existing file.
Creates a commented INI file with profile-specific defaults.
See also the example configs in the ``configs/`` folder.
.. list-table:: Available profiles
:header-rows: 1
:widths: 15 15 10 12 15 33
* - Profile
- TotalSeg
- License
- Targets
- Masks saved
- Use case
* - ``quick``
- Fast
- No
- None
- None
- Rapid screening, QC, testing
* - ``standard``
- High-res
- No
- None
- Refined only
- General-purpose research (default)
* - ``advanced``
- High-res
- Yes
- None
- Refined only
- Research with bone marrow DS
* - ``full``
- High-res
- Yes
- FL, PM, EM
- Raw + refined
- Complete clinical analysis
* - ``brain``
- High-res
- No
- None
- Refined only
- Brain-to-Liver Ratio studies
``autods-pet validate-config``
------------------------------
Validate an existing configuration file.
.. code-block:: bash
autods-pet validate-config my_config.ini
Checks that all required keys are present and paths are valid.
Pass ``--patients `` to additionally print a **mask discovery
preview** for each named patient -- a dry-run of which manual lesion
masks (NIfTI/NRRD or DICOM SEG) would be picked up for each configured
target ROI section, before launching a full ``extract`` / ``score`` run.
.. code-block:: bash
autods-pet validate-config my_config.ini --patients PATIENT_001,PATIENT_002
``autods-pet convert``
----------------------
Convert DICOM, NIfTI, or NRRD images to the standard NIfTI layout.
.. code-block:: bash
autods-pet convert -c config.ini -p PATIENT_001,PATIENT_002
Detects the input format automatically. For DICOM inputs, also extracts
PET metadata (radiopharmaceutical tags, patient weight) and writes a JSON
sidecar file.
``autods-pet normalize``
------------------------
Compute SUV body-weight from raw PET images.
.. code-block:: bash
autods-pet normalize -c config.ini
Reads PET metadata from the JSON sidecar (written by ``convert``) or from
the CSV specified via ``metadata_csv`` in config. Writes
``PET_SUV.nii.gz`` to the patient results folder
(``output_dir/{patient_id}_results/images/``).
If patients have incomplete metadata, an auto-generated template
``metadata.csv`` is written to ``output_dir/``.
``autods-pet register``
-----------------------
Rigidly register the PET SUV image onto the CT grid.
.. code-block:: bash
autods-pet register -c config.ini
Uses SimpleElastix for rigid registration. Writes
``PET_SUV_reg.nii.gz`` to ``output_dir/{patient_id}_results/images/`` and
saves the Elastix transform (``elastix_transform.txt``, native Elastix
format) to ``output_dir/{patient_id}_results/metadata/``.
``autods-pet segment``
----------------------
Run TotalSegmentator on CT images.
.. code-block:: bash
autods-pet segment -c config.ini --fast
Extra options:
.. list-table::
:widths: 30 70
* - ``--fast``
- Use TotalSegmentator fast mode (lower accuracy, faster).
Note: the ``vertebrae_body`` task always runs in high-res and does
not support fast mode.
Produces a single multilabel output
``output_dir/{patient_id}_results/segmentations/TotSeg_multilabel.nii.gz``
(no individual per-label files are created).
``autods-pet extract``
----------------------
Extract ROI statistics from registered PET images.
.. code-block:: bash
autods-pet extract -c config.ini
Processes all configured ROIs (aorta MBP, liver, lumbar VB, long bones,
brain, and target ROIs) and prints status for each.
Extra options:
.. list-table::
:widths: 30 70
* - ``--save-masks``
- Save both raw and refined masks as NIfTI.
* - ``--save-raw-masks``
- Save individual raw label masks as NIfTI.
* - ``--save-refined-masks``
- Save refined ROI masks as NIfTI.
* - ``--subtract-lesions``
- Subtract target lesion masks (FL, PM, EM, custom) from marrow ROIs
(BM, LB) before computing statistics.
* - ``--explain-masks``
- Print a per-patient mask discovery report (every DICOM SEG and
NIfTI/NRRD file found, every segment, which targets matched,
which came up empty) before running the extraction.
The same ``--explain-masks`` and ``--subtract-lesions`` flags are
available on ``score`` and ``run``.
``autods-pet score``
--------------------
Assign Deauville Scores from pre-extracted ROI statistics.
.. code-block:: bash
autods-pet score -c config.ini -p PATIENT_001,PATIENT_002
Runs extraction then scoring, printing a results table.
``autods-pet run``
------------------
Run the full Deauville Score pipeline end-to-end.
.. code-block:: bash
autods-pet run -c config.ini --format xlsx
This command chains all stages (convert, normalize, register, segment,
extract, score) and writes results per patient and in batch.
Per-patient CSVs are written to the patient results folder:
- ``output_dir/{patient_id}_results/DeauvilleScores/deauville_scores.csv``
- ``output_dir/{patient_id}_results/SUV/SUV_values.csv``
For multi-patient runs, batch summaries are written to ``output_dir/``:
- ``batch_results_DS.csv`` -- Deauville Score columns
- ``batch_results_SUV.csv`` -- SUV statistics
- ``batch_errors.csv`` -- errors (only created if any patients fail)
Extra options:
.. list-table::
:widths: 30 70
* - ``--fast``
- Use TotalSegmentator fast mode.
* - ``-f, --format TEXT``
- Output format: ``csv`` (default) or ``xlsx``.
* - ``--save-masks``
- Save both raw and refined masks as NIfTI.
* - ``--save-raw-masks``
- Save individual raw label masks as NIfTI.
* - ``--save-refined-masks``
- Save refined ROI masks as NIfTI.
* - ``--subtract-lesions``
- Subtract target lesion masks (FL, PM, EM, custom) from marrow ROIs
(BM, LB) before computing statistics.
* - ``--explain-masks``
- Print a per-patient mask discovery report before running.
``autods-pet list-segments``
----------------------------
List the segments contained in a DICOM SEG (``.dcm``) file.
.. code-block:: bash
autods-pet list-segments path/to/segmentation.dcm
Takes a single positional ``PATH`` argument pointing to an existing,
readable DICOM SEG file and prints a table of segment numbers, labels,
and descriptions. Useful for choosing the correct ``segment_label``
value to set in the ``[focal_lesion]`` / ``[paramedullary]`` /
``[extramedullary]`` / ``[targets.]`` config sections when working
with multi-segment DICOM SEG masks.
Requires the ``dicom-seg`` extra
(``pip install autods-pet[dicom-seg]``).