pydicer

PYthon Dicom Image ConvertER

https://github.com/australiancancerdatanetwork/pydicer

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.4%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

PYthon Dicom Image ConvertER

Basic Info
Statistics
  • Stars: 35
  • Watchers: 7
  • Forks: 9
  • Open Issues: 9
  • Releases: 2
Created over 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

PyDicer: PYthon Dicom Image ConvertER

SoftwareX

Welcome to PyDicer, a tool to ease the process of converting Radiotherapy DICOM data objects into a format typically used for research purposes. In addition to data conversion, functionality is provided to help analyse the data. This includes computing radiomic features, radiotherapy dose metrics and auto-segmentation metrics. PyDicer uses the NIfTI format to store data is a well defined file system structure. Tracking of these data objects in CSV files, also stored on the file system, provides an easy and flexible way to work with the converted data in your research.

The PyDicer documentation provides several examples and guides to help you get started with the tool. Here are a few PyDicer principles to keep in mind as you get started:

  • The working directory structure is standardised and generalisable for use with any DICOM dataset.
  • Use Pandas DataFrame's to work with converted data objects.
  • SimpleITK and PlatiPy are used under the hood for the image conversion, visualisation and analysis tasks.
  • Always inspect visualisations, plots and metrics produced by PyDicer in your working directory. Remember, PyDicer is a research tool so only use it for research purposes and expect the unexpected!

Installation

PyDicer currently supports Python version 3.8, 3.9 and 3.10. Install PyDicer in your Python environment using pip:

bash pip install pydicer

Supported Modalities

PyDicer currently supports converting and analysing the following DICOM modalities:

  • CT
  • MR
  • PT (Experimental)
  • RTSTRUCT
  • RTPLAN (Not converted since this only consists of meta data)
  • RTDOSE

Directory Structure

PyDicer will place converted and intermediate files into a specific directory structure. Visualisation, metrics computed and plots are also stored along side the converted data objects. Within the configured working directory [working], the following directories will be generated:

  • [working]/data: Directory in which converted data will be placed
  • [working]/quarantine: Files which couldn't be preprocessed or converted will be placed in here for you to investigate further
  • [working]/.pydicer: Intermediate files as well as log output will be stored in here
  • [working]/[dataset_name]: Clean datasets prepared using the Dataset Preparation Module will be stored in a directory with their name and will symbolically link to converted in the [working]/data directory

PyDicer Working Directory structure PyDicer working directory structure. Ref. Chlap, P. et al. SoftwareX

Pipeline

The pipeline handles fetching of the DICOM data to conversion and preparation of your research dataset. Here are the key steps of the pipeline:

  1. Input: various classes are provided to fetch DICOM files from the file system, DICOM PACS, TCIA or Orthanc. A TestInput class is also provided to supply test data for development/testing.

  2. Preprocess: The DICOM files are sorted and linked. Error checking is performed and resolved where possible.

  3. Conversion: The DICOM files are converted to the target format (NIfTI).

  4. Visualistion: Visualistions of data converted are prepared to assist with data selection.

  5. Dataset Preparation: The appropriate files from the converted data are selected to prepare a clean dataset ready for use in your research project!

  6. Analysis: Radiomics and Dose Metrics are computed on the converted data.

Getting Started

Running the pipeline is easy. The following script will get you started:

```python from pathlib import Path

from pydicer.input.test import TestInput from pydicer import PyDicer

Configure working directory

directory = Path("./testdata") directory.mkdir(exist_ok=True, parents=True)

Fetch some test DICOM data to convert

dicomdirectory = directory.joinpath("dicom") dicomdirectory.mkdir(existok=True, parents=True) testinput = TestInput(dicomdirectory) testinput.fetch_data()

Create the PyDicer tool object and add the dicom directory as an input location

pydicer = PyDicer(directory) pydicer.addinput(dicomdirectory)

Run the pipeline

pydicer.run_pipeline() ```

How to Cite

If you make use of PyDicer within your research work, please consider citing our SoftwareX paper:

Chlap P, Al Mouiee D, Finnegan RN, et al. PyDicer: An open-source python library for conversion and analysis of radiotherapy DICOM data. SoftwareX. 2025;29:102010. doi:10.1016/j.softx.2024.102010

Contributing

PyDicer is an open-source tool and contributions are welcome! Here are some ways you might consider contributing to the project:

  • Reporting issues on GitHub.
  • Correcting/extending the documentation.
  • Contributing a bug fix or extending some functionality.
  • Providing functionality to support additional DICOM modalities.
  • Giving the PyDicer project a star on GitHub.

For more information, see the Contributing documentation.

Authors

PyDicer was developed by the Ingham Medical Physics team in South-Western Sydney. It was developed as part of the Australian Cancer Data Network supported by the Australian Research Data Commons.

Owner

  • Name: Australian Cancer Data Network
  • Login: AustralianCancerDataNetwork
  • Kind: organization
  • Email: Tim.Churches@inghaminstitute.org.au
  • Location: Australia

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: PyDicer
message: >-
  If you use this software, please cite our SoftwareX article.
type: software
authors:
  - given-names: Phillip
    family-names: Chlap
    email: phillip.chlap@unsw.edu.au
    affiliation: University of New South Wales
    orcid: "https://orcid.org/0000-0002-6517-8745"
  - given-names: Daniel
    family-names: Al Mouiee
    affiliation: Ingham Institute
  - given-names: Robert N.
    family-names: Finnegan
    affiliation: University of Sydney
    orcid: "https://orcid.org/0000-0003-4728-8462"
  - given-names: Xinyi
    family-names: Cui
    affiliation: University of New South Wales
  - given-names: Shrikant
    family-names: Deshpande
    affiliation: South Western Sydney Local Health District
  - given-names: Vicky
    family-names: Chin
    affiliation: University of New South Wales
  - given-names: Lois
    family-names: Holloway
    affiliation: University of New South Wales
repository-code: "https://github.com/AustralianCancerDataNetwork/pydicer"
url: "https://australiancancerdatanetwork.github.io/pydicer/"
keywords:
  - medical imaging
  - DICOM
  - radiotherapy
license: Apache-2.0
version: 0.2.0
date-released: "2023-12-20"
preferred-citation:
  authors:
  - family-names: Chlap
    given-names: Phillip
    orcid: "https://orcid.org/0000-0002-6517-8745"
  - given-names: Daniel
    family-names: Al Mouiee
  - family-names: Finnegan
    given-names: Robert N.
    orcid: "https://orcid.org/0000-0003-4728-8462"
  - given-names: Janet
    family-names: Cui
  - given-names: Chin
    family-names: Vicky
  - given-names: Deshpande
    family-names: Shrikant
  - given-names: Holloway
    family-names: Lois
  date-published: "2024-12-14"
  doi: 10.1016/j.softx.2024.102010
  journal: SoftwareX
  issn: 2352-7110
  publisher:
    name: Elsevier
  title: "PyDicer: An open-source python library for conversion and analysis of radiotherapy DICOM data"
  type: article
  url: "https://doi.org/10.1016/j.softx.2024.102010"
  volume: 29
  year: 2025

GitHub Events

Total
  • Issues event: 15
  • Watch event: 12
  • Delete event: 1
  • Issue comment event: 11
  • Push event: 22
  • Pull request review comment event: 6
  • Pull request review event: 10
  • Pull request event: 14
  • Fork event: 4
  • Create event: 7
Last Year
  • Issues event: 15
  • Watch event: 12
  • Delete event: 1
  • Issue comment event: 11
  • Push event: 22
  • Pull request review comment event: 6
  • Pull request review event: 10
  • Pull request event: 14
  • Fork event: 4
  • Create event: 7

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 2
  • Total pull requests: 2
  • Average time to close issues: almost 3 years
  • Average time to close pull requests: about 1 month
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.5
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: about 1 month
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.5
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • pchlap (10)
  • dalmouiee (5)
  • rnfinnegan (2)
  • rbrown333 (1)
Pull Request Authors
  • pchlap (5)
  • dalmouiee (4)
  • ArthurRochette (1)
  • rbrown333 (1)
Top Labels
Issue Labels
Preprocess (2) Convert (2) Visualiser (1) Dataset (1) bug (1) high priority (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 31 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 1
pypi.org: pydicer

PYthon Dicom Image ConvertER

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 31 Last month
Rankings
Dependent packages count: 7.3%
Average: 24.3%
Dependent repos count: 41.3%
Maintainers (1)
Last synced: 7 months ago

Dependencies

poetry.lock pypi
  • 140 dependencies
pyproject.toml pypi
  • Sphinx ^4.5.0 develop
  • black ^22.3.0 develop
  • m2r2 ^0.3.2 develop
  • pylint ^2.13.5 develop
  • pytest 6.2.5 develop
  • sphinx-rtd-theme ^1.0.0 develop
  • SimpleITK >=2.0.2
  • Sphinx ^4.4.0
  • argparse >=1.4.0
  • black ^22.1.0
  • m2r2 ^0.3.2
  • platipy >=0.2.1
  • pydicom >=2.1.2
  • pylint ^2.12.2
  • pyorthanc >=0.2.14
  • pyradiomics >=3.0.1
  • pytest ^6.2.5
  • python ^3.7
  • scikit-image >=0.19.2
  • sphinx-rtd-theme ^1.0.0
requirements-dev.txt pypi
  • black *
  • m2r2 *
  • numpy *
  • pylint *
  • pytest *
  • sphinx *
  • sphinx_rtd_theme *
requirements.txt pypi
  • SimpleITK >=2.0.2
  • argparse >=1.4.0
  • platipy >=0.2.1
  • pydicom >=2.1.2
  • pyorthanc >=0.2.14
  • pyradiomics >=3.0.1
.github/workflows/docs.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/pull-request.yml actions
  • abatilo/actions-poetry v2.0.0 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite