Skip to main content

MotionScoreHRpQCT core CLI for dataset-first HR-pQCT motion grading

Project description

MotionScoreHRpQCT logo

MotionScoreHRpQCT

CI Coverage Gate PyPI PyPI Downloads

Motion scoring for HR-pQCT scans using deep convolutional neural networks.

This refactor provides a dataset-first pipeline with BIDS-style derivatives and review-state persistence for direct Slicer integration.

Related repositories:

What Changed In v2

  • Legacy CLI commands grade and confirm are removed.
  • New dataset-driven commands: discover, predict, review-init, review-apply, explain, export.
  • Default output structure is now:
<dataset_root>/derivatives/MotionScore/
  index.tsv
  dataset_description.json
  <mirrored-source-path-or-flat-aim-name>/
    predictions/predictions.tsv
    preview/<scan_id>_preview.png
    preview/<scan_id>_slice_profile.png
    review/review.tsv
    review/review.json
    review/review_audit.tsv
    explain/<scan_id>_gradcam.mha
  • AIM reading now uses aimio-py.
  • Python baseline is now >=3.10.
  • Output path mapping:
    • Flat input (*.AIM directly in dataset root): outputs are grouped under folder named after each AIM file stem.
    • Structured input (nested folders): outputs mirror the source folder structure under MotionScore.
  • Raw-vs-mask identification:
    • Primary: AIM header processing log (ISQ-origin markers indicate raw images).
    • Fallback: filename-based heuristics when header signal is unavailable.

Installation

conda create -n motionscore python=3.10 -y
conda activate motionscore

# Clone
# git clone <repo-url>
# cd MotionScoreHRpQCT

# Install CLI + torch inference backend
pip install -e ".[torch]"

Models

Use a model registry rooted at --model-root (default ~/.motionscore/MotionScore/models).

Each registered profile points to a directory containing torch checkpoints:

  • DNN_0.pt, DNN_1.pt, ... (ensemble members)
  • model_registry.json at the model root

Model weights are distributed as public GitHub release assets. The download command reads the public model catalog, downloads the selected bundle, verifies the checksum when present, and registers the extracted checkpoints locally.

motionscore model-download --model-id base-v1
motionscore model-list

By default model bundles are resolved from the public model catalog attached to the latest GitHub release, and GitHub release asset download counts are the central usage metric.

CLI Usage

For most users, day-to-day grading and review should be done in the Slicer app. In this core CLI, the two most useful workflows are batch prediction and retraining.

1) Predict a folder of scans

motionscore predict /path/to/dataset --model-id base-v1

Default output root:

  • /path/to/dataset/derivatives/MotionScore

Review confidence policy is configured separately with motionscore review-init --confidence-threshold ....

2) Retrain from reviewed data

motionscore train-prepare /path/to/dataset/derivatives/MotionScore \
  --output /path/to/dataset/derivatives/MotionScore/training/train_manifest.tsv \
  --slice-count 8 \
  --seed 13 \
  --cv-folds 10 \
  --min-auto-confidence 0.70 \
  --include-auto-without-manual

motionscore train \
  --manifest /path/to/dataset/derivatives/MotionScore/training/train_manifest.tsv \
  --model-root ~/.motionscore/MotionScore/models \
  --init-model-id base-v1 \
  --early-stopping-patience 10 \
  --seed 13 \
  --output-model-dir ~/.motionscore/MotionScore/models/knee-v1

Training writes:

  • training_metrics.json
  • training_plot_live.png (updated every epoch)
  • training_plot.png (final summary plot)
  • training_plot_model_<n>.png (per-ensemble-model curves)

CLI Reference

For all advanced/headless commands (discover, review-*, export, explain, model-*), see:

Use With 3D Slicer

For day-to-day grading and retraining, use the Slicer app:

This repository provides the core CLI/pipeline used by that extension.

Citation

If you use this software, please cite:

Walle, M., Eggemann, D., Atkins, P.R., Kendall, J.J., Stock, K., Müller, R. and Collins, C.J., 2023. Motion grading of high-resolution quantitative computed tomography supported by deep convolutional neural networks. Bone, 166, p.116607. https://doi.org/10.1016/j.bone.2022.116607

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

motionscorehrpqct-2.5.4.tar.gz (71.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

motionscorehrpqct-2.5.4-py3-none-any.whl (58.6 kB view details)

Uploaded Python 3

File details

Details for the file motionscorehrpqct-2.5.4.tar.gz.

File metadata

  • Download URL: motionscorehrpqct-2.5.4.tar.gz
  • Upload date:
  • Size: 71.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for motionscorehrpqct-2.5.4.tar.gz
Algorithm Hash digest
SHA256 329e3d44445e5a1cf2ebcd7f1553acf70ce71ec1e2ca8ad85337bc82266c60f9
MD5 08bd88be0d4d0b219d2adde0908d40a5
BLAKE2b-256 f206692084d24acce6f07cf39aa4bdf10b2092c587b8fa529082c9694aca0778

See more details on using hashes here.

Provenance

The following attestation bundles were made for motionscorehrpqct-2.5.4.tar.gz:

Publisher: publish-pypi.yml on wallematthias/MotionScoreHRpQCT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file motionscorehrpqct-2.5.4-py3-none-any.whl.

File metadata

File hashes

Hashes for motionscorehrpqct-2.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ea7c2904e0338e4088039775b044cb9e39ebd2b5faab9ad56b4ade19e7d45c0f
MD5 f17dd6ffc1aea2f497a46d293b846e98
BLAKE2b-256 66545f7dafc4e65d23d754f3b15f49de30fa6ce83df3a56731c3b3b667ae88e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for motionscorehrpqct-2.5.4-py3-none-any.whl:

Publisher: publish-pypi.yml on wallematthias/MotionScoreHRpQCT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page