highdicom

High-level DICOM abstractions for the Python programming language

https://github.com/imagingdatacommons/highdicom

Science Score: 77.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 1 DOI reference(s) in README
  • Academic publication links
    Links to: springer.com
  • Committers with academic emails
    3 of 23 committers (13.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary

Keywords

dicom numpy pydicom python3 typehints

Keywords from Contributors

neuroimaging qt medical-imaging
Last synced: 4 months ago · JSON representation ·

Repository

High-level DICOM abstractions for the Python programming language

Basic Info
Statistics
  • Stars: 201
  • Watchers: 8
  • Forks: 45
  • Open Issues: 33
  • Releases: 45
Topics
dicom numpy pydicom python3 typehints
Created over 6 years ago · Last pushed 4 months ago
Metadata Files
Readme License Code of conduct Citation

README.md

Build Status Documentation Status PyPi Distribution Python Versions Downloads Contributor Covenant

Highdicom

highdicom is a pure Python package built on top of pydicom to provide a higher-level application programming interface (API) for working with DICOM files. Its focus is on common operations required for machine learning, computer vision, and other similar computational analyses. Broadly speaking, the package helps with three types of task:

  1. Reading existing DICOM image files of a wide variety of modalities (covering radiology, pathology, and more) and selecting and formatting its frames for computational analysis. This includes considerations such as spatial arrangements of frames, and application of pixel transforms, which are not handled by pydicom.
  2. Storing image-derived information, for example from computational analyses or human annotation, in derived DICOM objects for communication and storage. This includes:

    • Annotations
    • Parametric Map images
    • Segmentation images
    • Structured Report documents (containing numerical results, qualitative evaluations, and/or vector graphic annotations)
    • Secondary Capture images
    • Key Object Selection documents
    • Legacy Converted Enhanced CT/PET/MR images (e.g., for single frame to multi-frame conversion)
    • Softcopy Presentation State instances (including Grayscale, Color, and Pseudo-Color)
  3. Reading existing derived DICOM files of the above types and filtering and accessing the information contained within them.

Documentation

Please refer to the online documentation at highdicom.readthedocs.io, which includes installation instructions, a user guide with examples, a developer guide, and complete documentation of the application programming interface of the highdicom package.

Citation

For more information about the motivation of the library and the design of highdicom's API, please see the following article:

Highdicom: A Python library for standardized encoding of image annotations and machine learning model outputs in pathology and radiology C.P. Bridge, C. Gorman, S. Pieper, S.W. Doyle, J.K. Lennerz, J. Kalpathy-Cramer, D.A. Clunie, A.Y. Fedorov, and M.D. Herrmann. Journal of Digital Imaging, August 2022

If you use highdicom in your research, please cite the above article.

Support

The developers gratefully acknowledge their support: * The Alliance for Digital Pathology * The MGH & BWH Center for Clinical Data Science * Quantitative Image Informatics for Cancer Research (QIICR) * Radiomics

This software is maintained in part by the NCI Imaging Data Commons project, which has been funded in whole or in part with Federal funds from the NCI, NIH, under task order no. HHSN26110071 under contract no. HHSN261201500003l.

Owner

  • Name: Imaging Data Commons
  • Login: ImagingDataCommons
  • Kind: organization
  • Location: United States of America

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite our paper."
authors:
- family-names: "Herrmann"
  given-names: "Markus D."
- family-names: "Bridge"
  given-names: "Christopher P."
- family-names: "Fedorov"
  given-names: "Andriy Y."
- family-names: "Pieper"
  given-names: "Steven"
- family-names: "Doyle"
  given-names: "Sean W."
- family-names: "Gorman"
  given-names: "Chris"
preferred-citation:
  type: article
  authors:
    - family-names: "Bridge"
      given-names: "Christopher P."
      orcid: "https://orcid.org/0000-0002-2242-351X"
    - family-names: "Gorman"
      given-names: "Chris"
    - family-names: "Pieper"
      given-names: "Steven"
    - family-names: "Doyle"
      given-names: "Sean W."
    - family-names: "Lennerz"
      given-names: "Jochen K."
    - family-names: "Kalpathy-Cramer"
      given-names: "Jayashree "
    - family-names: "Clunie"
      given-names: "David A."
    - family-names: "Fedorov"
      given-names: "Andriy Y."
    - family-names: "Herrmann"
      given-names: "Markus D."
      orcid: "https://orcid.org/0000-0002-7257-9205"
  title: "Highdicom: a Python Library for Standardized Encoding of Image Annotations and Machine Learning Model Outputs in Pathology and Radiology"
  journal: "J Digit Imaging"
  year: 2022
  doi: 10.1007/s10278-022-00683-y

GitHub Events

Total
  • Create event: 36
  • Release event: 5
  • Issues event: 36
  • Watch event: 24
  • Delete event: 46
  • Issue comment event: 106
  • Push event: 188
  • Pull request event: 69
  • Pull request review event: 11
  • Pull request review comment event: 19
  • Fork event: 8
Last Year
  • Create event: 36
  • Release event: 5
  • Issues event: 36
  • Watch event: 24
  • Delete event: 46
  • Issue comment event: 106
  • Push event: 188
  • Pull request event: 69
  • Pull request review event: 11
  • Pull request review comment event: 19
  • Fork event: 8

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 929
  • Total Committers: 23
  • Avg Commits per committer: 40.391
  • Development Distribution Score (DDS): 0.426
Past Year
  • Commits: 265
  • Committers: 5
  • Avg Commits per committer: 53.0
  • Development Distribution Score (DDS): 0.087
Top Committers
Name Email Commits
Chris Bridge c****4@g****m 533
hackermd h****d@p****m 180
Chris Bridge c****e@p****g 80
Erik O Gabrielsson e****n@s****m 32
Dimitri Papadopoulos 3****s 21
hackermd m****n@g****m 17
Christopher Bridge c****4@g****m 13
Leonardo Fedalto l****o@g****m 9
RobinFrcd 2****d 7
Andrey Fedorov a****v@g****m 5
Yaroslav Halchenko d****n@o****m 5
rhaxton r****n@g****m 4
afshinmessiah a****h@c****u 4
Sean Doyle s****e@g****m 3
Daniel Elton d****n@c****o 3
Christopher P Bridge c****8@g****u 3
EliaSchiavon 8****n 2
Mathieu Malaterre m****e@g****m 2
Thomas T****t@r****m 2
Chris Gorman c****3@m****u 1
Jeff VanOss 8****j 1
Steve Pieper p****r@i****m 1
elitalien 9****n 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 73
  • Total pull requests: 216
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 48
  • Total pull request authors: 19
  • Average comments per issue: 3.82
  • Average comments per pull request: 1.49
  • Merged pull requests: 190
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 27
  • Pull requests: 76
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 7 days
  • Issue authors: 21
  • Pull request authors: 7
  • Average comments per issue: 2.41
  • Average comments per pull request: 0.25
  • Merged pull requests: 65
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • CPBridge (17)
  • erikogabrielsson (3)
  • cgorman (3)
  • pieper (2)
  • deepakri201 (2)
  • nicolay-r (2)
  • jjjermiah (2)
  • fedorov (2)
  • hackermd (2)
  • thomas-albrecht (1)
  • DanielaSchacherer (1)
  • apint0-media (1)
  • elamathis18 (1)
  • Spenhouet (1)
  • efimfurman (1)
Pull Request Authors
  • CPBridge (144)
  • hackermd (39)
  • DimitriPapadopoulos (27)
  • Fedalto (4)
  • fedorov (3)
  • seandoyle (2)
  • erikogabrielsson (2)
  • aporter-turing (2)
  • thomas-albrecht (2)
  • rhaxton (2)
  • sarthakpati (2)
  • Eschivo (2)
  • cgorman (1)
  • afshinmessiah (1)
  • RobinFrcd (1)
Top Labels
Issue Labels
bug (25) enhancement (17) question (5) help wanted (2) documentation (1)
Pull Request Labels
bug (72) enhancement (61) documentation (24) tests (4) invalid (2) question (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 33,150 last-month
  • Total docker downloads: 310
  • Total dependent packages: 4
  • Total dependent repositories: 12
  • Total versions: 45
  • Total maintainers: 2
pypi.org: highdicom

High-level DICOM abstractions.

  • Versions: 45
  • Dependent Packages: 4
  • Dependent Repositories: 12
  • Downloads: 33,150 Last month
  • Docker Downloads: 310
Rankings
Dependent packages count: 2.2%
Downloads: 2.5%
Dependent repos count: 4.3%
Average: 4.5%
Stargazers count: 6.1%
Forks count: 7.7%
Maintainers (2)
Last synced: 4 months ago

Dependencies

requirements_docs.txt pypi
  • sphinx-autodoc-typehints ==1.17.0
  • sphinx-pyreverse ==0.0.17
  • sphinx-rtd-theme ==1.0.0
  • sphinxcontrib-autoprogram ==0.1.7
  • sphinxcontrib-websupport ==1.2.4
requirements_test.txt pypi
  • mypy ==0.971 test
  • numpy-stubs 201115370a0c011d879d69068b60509accc7f750 test
  • pytest ==7.1.2 test
  • pytest-cov ==3.0.0 test
  • pytest-flake8 ==1.1.1 test
setup.py pypi
  • numpy >=1.19
  • pillow >=8.3
  • pillow-jpls >=1.0
  • pydicom >=2.3.0
  • pylibjpeg >=1.4
  • pylibjpeg-libjpeg >=1.3
  • pylibjpeg-openjpeg >=1.2
.github/workflows/run_unit_tests.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
examples/Dockerfile docker
  • python 3.8-buster build
.github/workflows/codespell.yml actions
  • actions/checkout v3 composite
  • codespell-project/actions-codespell v2 composite