Troubleshooting
The segment or phase command reports missing dependencies
Install the TotalSegmentator feature set in the same environment that owns the
imperandi executable:
python -m pip install -e ".[segment]"
python -m imperandi segment --help
Using python -m imperandi is a quick way to detect when pip and the shell
entry point refer to different environments.
Radiomics cannot import PyRadiomics
Install .[radiomics]. The project currently sources PyRadiomics from its Git
repository, so installation requires Git and network access. Confirm the input
has nifti_path and at least one populated mask_* column.
No DICOM files are found
Check glob quoting so the shell does not expand it unexpectedly.
Try
--force_dicom_readfor non-conformant exports.Raise
--archive_max_depthonly when archives are intentionally nested.Add
--snapshot_tagsto inspect what is readable in a representative sample.Use
--verboseand reduce to a small root while diagnosing.
IDs are empty or unexpected
Use --id_source tags to require tag-based identity or --id_source path for
a stable directory hierarchy. Override the tag keywords with
--patient_key_from, --study_id_from, and --series_id_from. When a manifest
standardizes patient keys, compare patient_key with _patient_key_raw.
Cleaning removes too many volumes
Inspect Modality, ImageType, SeriesDescription, orientation, spacing, and
computed volume length in the parsed CSV. For legitimately short or long
protocols, adjust the --volume-length-min-mm or
--volume-length-max-mm bounds. Avoid broad threshold changes until you know
which filter caused the loss.
Conversion fails for archive-backed series
Ensure the archive remains at the same location recorded during parse. Set
--archive_cache_dir to a filesystem with enough free space and permissions.
--keep_archive_cache is useful for inspection but can consume substantial
storage. Review conv_errors.csv for the affected rows.
A resumed run uses stale results
Resume only occurs for compatible state, but lightweight fingerprints cannot
detect every in-place content change. Use --strict_resume when inputs may have
changed without a path/metadata change, or --no_resume to deliberately start
fresh. Do not combine outputs from manifests with different task definitions.
Multiprocessing hangs or exhausts memory
Reduce --num_workers and, for segmentation, keep the default
--start_method spawn. Increase --timeout_sec only after confirming a volume
is making progress. Parallel GPU workers also multiply model and image memory
requirements.
The documentation build fails during API imports
Build from the repository root after installing the package and
docs/requirements.txt. The Sphinx configuration mocks heavy optional modules,
but base runtime dependencies must still be installed through pip install -e .. Re-run with -W --keep-going to see all warnings in one build.