Skip to main content

Flywheel classification toolkit.

Project description

Classification Toolkit

The main documentation for the classification-toolkit can be found at the fw-classification Documentation

Classification toolkit is a library that can act on arbitrary metadata in the form of JSON, with a declarative set of rules. The main use case for this library is for classification of medical imaging files based on their metadata, for example, the SeriesDescription tag in a DICOM file.

Install

poetry add fw-classification, or with optional dependencies poetry add fw-classification -E all.

Run classification via cli

~/   classify run ./fw_classification/profiles/main.yml ~/Downloads/example.dicom.zip -a dicom
fw_classification:      Block mr_file result: True
fw_classification:      Block set_modality result: True
fw_classification:      Block set_classification_from_acquisition_label_or_series_description result: True
fw_classification:      Block set_contrast_from_acquisition_label_or_series_description result: False
fw_classification:      Block add_features_from_acquisition_label_or_series_description result: False
fw_classification:      Block add_measurement_from_acquisition_label_or_series_description result: False
fw_classification:      Block add_intent_from_acquisition_label_or_series_description result: False
{
  "file": {
    "info": {
      "header": {
        "dicom": {
          "FileMetaInformationGroupLength": 216,
          "WindowWidth": 199.0,
          ... # Many more tags
          "dBdt": 0.0
        }
      }
    },
    "type": "dicom",
    "modality": "MR",
    "classification": {
      "Intent": [
        "Structural"
      ],
      "Measurement": [
        "T1"
      ]
    }
  }
}

Run via python

from fw_classification.classify import run_classification
import json

input_data = {}
with open('/path/to/input','r') as fp:
   input_data = json.load(fp)

result, out_data = run_classification('MR_classifier', input_data)

Out:

~/    python test.py
{
  "file": {
    "info": {
      "header": {
        "dicom": {
          "FileMetaInformationGroupLength": 216,
          ... # Many more tags
          "WindowWidth": 199.0,
          "dBdt": 0.0
        }
      }
    },
    "type": "dicom",
    "modality": "MR",
    "classification": {
      "Intent": [
        "Structural"
      ],
      "Measurement": [
        "T1"
      ]
    }
  }
}

Development

Install the project using poetry (requires poetry > 1.2.0b1), enable plugin and pre-commit:

poetry install --extras "all"
pre-commit install

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

fw_classification-0.6.0-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file fw_classification-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: fw_classification-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Alpine Linux","version":"3.24.0_alpha20260127","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fw_classification-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f9a221aeebadaef288d9ac7f4eace441d5281adfb95118944e8dbb19b65ff05
MD5 7f41aa8291df9f2787023e2cd0f5e7a8
BLAKE2b-256 c2ce9d90858e1569bb0183981cd4a170183ea230519fe2f19151d7b7acd1c1ac

See more details on using hashes here.

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