Skip to main content

plate-rod-thinning icon

plate-rod-thinning

plate-rod-thinning provides topology-preserving trabecular bone plate/rod thinning and morphometry for HR-pQCT-style binary masks.

Author: Matthias Walle.

The package ports the original MATLAB plate/rod workflow into Python while keeping the core algorithm outside the Slicer Bone Imaging Toolbox. It produces 1-voxel skeleton topology labels, full-thickness plate/rod/junction labels, individual full-thickness component labels, and summary morphometry metrics.

Method

The default pipeline uses topology-preserving thinning followed by Saha/Stauber-style local skeleton classification. Final topology classes are decomposed into individual trabecular elements using an ITS-like graph workflow:

  1. classify skeleton voxels into surface, curve, and typed junction classes;
  2. dilate typed junction zones before element decomposition;
  3. label plate and rod components after junction-zone removal;
  4. reconstruct individual element labels back into the full-thickness trabecular mask;
  5. count P-P, P-R, and R-R junctions from unique neighboring reconstructed element pairs.

The current defaults provide a conservative decomposition for HR-pQCT-style trabecular masks:

PlateRodParameters(
    junction_dilation_voxels=2,
    min_plate_voxels=0,
    min_rod_voxels=5,
    junction_support_radius_voxels=None,
)

junction_support_radius_voxels is available for experiments that require reconstructed junctions to be spatially supported by matching typed skeleton junction classes. It is disabled by default because this package treats the reconstructed element graph as the primary output.

Validation Notes

The defaults were checked on an HR-pQCT II tibia test case to confirm that the outputs are numerically plausible and internally consistent for trabecular bone analysis. This package implements an open, auditable plate/rod thinning and graph morphometry workflow; it is not intended to be a bitwise or parameter-matched clone of any proprietary ITS implementation.

Install

python -m pip install plate-rod-thinning

Prebuilt macOS wheels include the compiled C backend when available. The package also has a Python fallback, and on Apple platforms the Metal skeletonizer can be enabled with:

export PLATE_ROD_USE_METAL_FULL=1

The release workflow also builds Windows AMD64 compiled wheels for Python 3.12 and 3.13. These become available only after a successful release; older PyPI versions may have macOS wheels only. Slicer's binary-only installer requires a wheel matching its Python version and platform.

Citation

If you use the plate/rod network connectivity or morphometry workflow, please cite:

Walle M, Yeritsyan D, Abbasian M, Oftadeh R, Müller R, Nazarian A. A graph model to describe the network connectivity of trabecular plates and rods. Front Bioeng Biotechnol. 2024 May 6;12:1384280. doi: 10.3389/fbioe.2024.1384280. PMID: 38770275; PMCID: PMC11103010.

Development

The compiled extension is built by default for wheels and local source builds:

python -m pip install .
python -m pytest -q

Set PLATE_ROD_BUILD_EXT=0 only when a pure-Python fallback install is needed.

Batch discovery recognizes shared IPLContours, ImportedContours, and BoneContours segmentation and trabecular masks, preserving subject/session/VOI/stack identities. See CHANGELOG.md for release notes.

Metadata

Release files for plate-rod-thinning 0.1.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for plate-rod-thinning 0.1.10
File Size Uploaded
plate_rod_thinning-0.1.10.tar.gz 64.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for plate-rod-thinning 0.1.10
File
plate_rod_thinning-0.1.10-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
plate_rod_thinning-0.1.10-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
plate_rod_thinning-0.1.10-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
plate_rod_thinning-0.1.10-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
plate_rod_thinning-0.1.10-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
plate_rod_thinning-0.1.10-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details

Total release size: 479.1 kB

Release files / plate_rod_thinning-0.1.10.tar.gz

Download URL plate_rod_thinning-0.1.10.tar.gz
Size 64.3 kB
Tags Source
SHA-256 checksum
How to use checksums
00f1eacb16d0d0d4f268f903832d7e7054e4c2cf1577035791607d3c4a2babdf
BLAKE2b-256 checksum
How to use checksums
4a23af8d10391d41009d188124ee9cd0e2000ee8aac0d59b4a90e26264e70186
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / plate_rod_thinning-0.1.10-cp313-cp313-win_amd64.whl

Download URL plate_rod_thinning-0.1.10-cp313-cp313-win_amd64.whl
Size 67.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
7842456744c56953539062fc9687f84d6f66528e7123680a8156a29fe6181192
BLAKE2b-256 checksum
How to use checksums
be6e56d3564020f44272362309b22167850a5ac2f9482b6542da2b34d4a48655
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / plate_rod_thinning-0.1.10-cp313-cp313-macosx_11_0_arm64.whl

Download URL plate_rod_thinning-0.1.10-cp313-cp313-macosx_11_0_arm64.whl
Size 69.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
add634e768b9265eeeb152ed0177016f120ea6a3901dc762757b347cafc3f90b
BLAKE2b-256 checksum
How to use checksums
9024ed843e1af16e00467acae9701565bb920a4a25f97f5d7c59983af087089b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / plate_rod_thinning-0.1.10-cp313-cp313-macosx_10_13_x86_64.whl

Download URL plate_rod_thinning-0.1.10-cp313-cp313-macosx_10_13_x86_64.whl
Size 70.5 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
1c37fad6dcc3643487da4634b4112b06310b66fa412ff9ac407670f18adc0a70
BLAKE2b-256 checksum
How to use checksums
cbf1156fdf22ebd402adacf1587c2b1abbcd0e4cc19d5f63866d5f39d5621e25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / plate_rod_thinning-0.1.10-cp312-cp312-win_amd64.whl

Download URL plate_rod_thinning-0.1.10-cp312-cp312-win_amd64.whl
Size 67.7 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
da7b1d056178856fb90ba9e7968c17b765da474c2ab59ab1e89ca23eed0246c0
BLAKE2b-256 checksum
How to use checksums
db859006e02edeec98b66d3a896a9a20ca1592b57bfce0e57095425a6d327cde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / plate_rod_thinning-0.1.10-cp312-cp312-macosx_11_0_arm64.whl

Download URL plate_rod_thinning-0.1.10-cp312-cp312-macosx_11_0_arm64.whl
Size 69.2 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8616226c969ba8223796acd50f500cd42546bb2d1b8d935ddcc055c07c42a8a3
BLAKE2b-256 checksum
How to use checksums
3804f63b8bca225ffa21beb4ca06e70082992452d5ba554e1aaf5ab623b490c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / plate_rod_thinning-0.1.10-cp312-cp312-macosx_10_13_x86_64.whl

Download URL plate_rod_thinning-0.1.10-cp312-cp312-macosx_10_13_x86_64.whl
Size 70.5 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
9c1f15d8a47c4e0e840d2ca3953c7b28d4fc0c03cea0ef38e642907d1790de2a
BLAKE2b-256 checksum
How to use checksums
66cb6cb3f2228da17dfa1d3a7de23a9aa45b5b269905ddbde552e4545495529e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.10 This release

7 release files

0.1.9

5 release files

0.1.8

5 release files

0.1.7

5 release files

0.1.6

5 release files

0.1.4

5 release files

0.1.3

5 release files

0.1.2

5 release files

0.1.1

5 release files

0.1.0

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page