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

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.9

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.9
File Size Uploaded
plate_rod_thinning-0.1.9.tar.gz 64.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for plate-rod-thinning 0.1.9
File
plate_rod_thinning-0.1.9-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
plate_rod_thinning-0.1.9-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.9-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
plate_rod_thinning-0.1.9-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details

Total release size: 342.8 kB

Release files / plate_rod_thinning-0.1.9.tar.gz

Download URL plate_rod_thinning-0.1.9.tar.gz
Size 64.0 kB
Tags Source
SHA-256 checksum
How to use checksums
bbbd3be3d3221ab068fd31888b2413671d0ac88a57b2e2ffb7c99208c9b40145
BLAKE2b-256 checksum
How to use checksums
cede06425bee22405e38685d1fe5f2a52110e6cfdd83b77dd8ba6860c9ce0c67
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 2, 2026.

Transparency log

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

Download URL plate_rod_thinning-0.1.9-cp313-cp313-macosx_11_0_arm64.whl
Size 69.1 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3c2bc5081321245deb808613466c925b2c1516d216c7f5f226210f053fba2b0a
BLAKE2b-256 checksum
How to use checksums
8672864555b93087a6c42f5959dda4e47af9d9b0e04ca4d52407b5f44a3a4426
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 2, 2026.

Transparency log

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

Download URL plate_rod_thinning-0.1.9-cp313-cp313-macosx_10_13_x86_64.whl
Size 70.3 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
f5d12a119ed0d912ec5e6f571d899b0b4dc9f12ec4a169e72a03add6155c87f8
BLAKE2b-256 checksum
How to use checksums
c155da77e87816d05ab77f8e679946ea643f6d298f740313149c76d7ad2a4bd2
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 2, 2026.

Transparency log

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

Download URL plate_rod_thinning-0.1.9-cp312-cp312-macosx_11_0_arm64.whl
Size 69.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b10dc6e14eee31303055a21a280f0b3592f01a013d0da4f1c9857ca7be4a14c4
BLAKE2b-256 checksum
How to use checksums
bf02a052ad5d5f07d20b3b43f08a700696d3fb1b0e20cb563eaa1c8eeb760e14
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 2, 2026.

Transparency log

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

Download URL plate_rod_thinning-0.1.9-cp312-cp312-macosx_10_13_x86_64.whl
Size 70.3 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
2113460c2ed5803a5f6c831406a273d082ee183b3f4f0a3ea827782c312bdcb1
BLAKE2b-256 checksum
How to use checksums
5e6171706488e3c1cdfab7a3a4457f8511b7ef362c479c9e50925a0659dc7979
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 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.9 This release

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