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
Release files for fw-classification 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fw_classification-0.6.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / fw_classification-0.6.2-py3-none-any.whl
| Download URL | fw_classification-0.6.2-py3-none-any.whl |
|---|---|
| Size | 30.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
99d3ab2c960cc506d03f605860c968e0eebe27617cfb39bd54cb9306c83e12b8
|
|
BLAKE2b-256 checksum How to use checksums |
6cf89942ce47c1eaa4e47cbb32f9f1b8b04e8e6043092d661b4caad2079c8adf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","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}
|