Skip to main content

Meta-package: installs the MIDAS Python pipeline (FF/NF/PF HEDM, calibration, peakfit, integration, transforms, ODF, stress).

Project description

midas-suite

A meta-package that installs the MIDAS Python pipeline in a single command.

pip install midas-suite

This pulls in the currently published MIDAS sub-packages — the FF/NF HEDM analysis chain, calibration, peak fitting, radial integration, forward model, indexing, transforms, grain processing, and stress/strain analysis.

midas-suite itself contains no scientific code. It's a thin meta-package whose only job is to declare the sub-packages as dependencies so users don't have to install them one at a time.

What you get

pip install midas-suite installs 16 sub-packages (as of v0.1.0):

Top-level orchestrators (the entry points most users want):

Sub-package Role
midas-ff-pipeline End-to-end pure-Python FF-HEDM workflow orchestrator (1-N detectors). Drives the full FF pipeline from raw data to grains.
midas-nf-pipeline Pure-Python NF-HEDM pipeline orchestrator (single + multi-resolution, multi-layer). Drop-in for nf_MIDAS.py / nf_MIDAS_Multiple_Resolutions.py.
midas-parsl-configs Bundled + user-extensible Parsl configs for running MIDAS pipelines on laptops, workstations, clusters.

FF-HEDM building blocks:

Sub-package Role
midas-peakfit Differentiable PyTorch peak fitting for FF-HEDM Zarr
midas-transforms FF-HEDM peak transforms (merge / radius / fit-setup / save-bin)
midas-index Pure-Python/PyTorch FF-HEDM indexer (drop-in for IndexerOMP)
midas-fit-grain Single/multi-grain refiner
midas-process-grains FF-HEDM grain-determination + strain pipeline

NF-HEDM building blocks:

Sub-package Role
midas-nf-preprocess NF-HEDM preprocessing (hex grid, tomo filter, spot prediction)
midas-nf-fitorientation NF-HEDM orientation/calibration fitter

Shared foundations:

Sub-package Role
midas-stress Crystallographic stress/strain analysis (Voigt-Mandel, Cij inversion, slip/Schmid/Taylor)
midas-params Parameter-file registry, validator, wizard for FF/NF/PF/RI
midas-hkls Pure-Python crystallography & HKL list generator (sginfo-equivalent)
midas-diffract End-to-end differentiable HEDM forward model (FF + NF + pf-HEDM)
midas-integrate Pure-Python radial integration (DetectorMapper + CSR + streaming server)
midas-calibrate Native Python/Torch detector geometry calibration (LM-based)

You then import midas_stress, import midas_diffract, etc. directly — each sub-package retains its own API. midas-suite does not re-export them.

To check what was installed:

import midas_suite
print(midas_suite.installed())

Modality bundles

If you don't want everything, the optional extras let you pick a workflow:

pip install "midas-suite[ff]"      # FF-HEDM stack
pip install "midas-suite[nf]"      # NF-HEDM stack
pip install "midas-suite[calib]"   # calibration + integration only
pip install "midas-suite[ff,plots]"
Extra What it pulls
ff midas-ff-pipeline (which transitively pulls hkls, peakfit, transforms, index, fit-grain, process-grains, diffract, parsl-configs) + stress, params, calibrate, integrate
nf midas-nf-pipeline (which transitively pulls hkls, stress, nf-preprocess, nf-fitorientation) + params
calib hkls, integrate, peakfit, calibrate
plots matplotlib (for sub-package plotting helpers)

What pip install midas-suite does NOT include

Be aware:

  • The MIDAS C executables (IndexerOMP, ProcessGrains, MakeDiffrSpots, …) still need to be built from source via cmake --build . from the MIDAS monorepo. The pure-Python pipeline (calibration → integration → indexing → grain processing) is now end-to-end in PyTorch and does not require them.
  • The PyQt FF viewer GUI needs PyQt5 or PySide6 installed separately. Not declared here because it's optional and platform-sensitive.
  • Optional crystallography backends for midas-hkls: install gemmi or pycifrw separately for CIF I/O via pip install midas-hkls[cif].
  • GPU acceleration is a runtime backend selected by PyTorch device string. CUDA/MPS just work if your torch install supports them; no separate *-gpu package needed.
  • Coming in v0.2.0midas-grain-odf (per-grain ODF inversion) and midas-pf-odf (joint pf-HEDM peak-shape inversion) are not yet on PyPI. They fold in when midas-suite v0.2.0 ships, bringing the bundled count to 18 sub-packages.

Cross-platform

All MIDAS Python sub-packages are pure Python or PyTorch and ship as py3-none-any wheels. Tested install paths: Linux, macOS, Windows. See packages/RELEASE_READINESS.md for the detailed cross-platform readiness matrix.

Versioning

midas-suite versions are independent of the sub-package versions. The rule:

Change Bump
Floors tightened (no new sub-package added) patch (0.1.00.1.1)
New sub-package added to the dep list minor (0.1.00.2.0)
Backwards-incompatible reorganisation of bundles major (0.x.y1.0.0)

Floors are pinned with >=, never ==, so a sub-package patch release doesn't break midas-suite.

Releasing a new version

See RELEASING.md for the full release flow. TL;DR:

cd packages/midas_suite
./release.sh 0.2.0 --publish

License

BSD-3-Clause, same as the sub-packages.

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

midas_suite-0.3.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

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

midas_suite-0.3.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file midas_suite-0.3.0.tar.gz.

File metadata

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

File hashes

Hashes for midas_suite-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6c34059c7f28ca99a9341bb12734e328c9b8cf2de2298f4d03c4f84ec5bc2b81
MD5 4cfb20ad83545bc64087eb0febe84dc4
BLAKE2b-256 accaeadd70c77d475c1ea939eba7d2936da4635f40e04815360ed8850417e41e

See more details on using hashes here.

Provenance

The following attestation bundles were made for midas_suite-0.3.0.tar.gz:

Publisher: python-packages.yml on marinerhemant/MIDAS

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

File details

Details for the file midas_suite-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: midas_suite-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for midas_suite-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dcf259ac46dd65226c3d59b479c2c0aa568773c8f74ee2727f37790f9202c146
MD5 ac4b8b4e27cc33cc48337ddda98e39f8
BLAKE2b-256 bbe3c28e7ba893bc42ab659f69efd100721f1cd2ba93bc75ab2492f649d7fb53

See more details on using hashes here.

Provenance

The following attestation bundles were made for midas_suite-0.3.0-py3-none-any.whl:

Publisher: python-packages.yml on marinerhemant/MIDAS

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