Skip to main content

Tools for reading dicom files, RT structures, and dose files, as well as tools for converting numpy prediction masks back to an RT structure

Project description

This code provides functionality for turning dicom images and RT structures into nifti files as well as turning prediction masks back into RT structures

Installation guide

pip install DicomRTTool

Highly recommend to go through the jupyter notebook Data_Curation_and_Predictions_to_RT

Data_Curation_and_Predictions_to_RT has three main parts

Works on oblique images for masks and predictions*

1) Identify RT structures and names in multiple patients

2) Creating associations file and turning dicom into nifti/numpy files

3) Turning predictions into RT structures

If you find this code useful, please provide a reference to my github page for others www.github.com/brianmanderson , thank you!

Please consider using the .write_parallel if you have many patients
Ring update allows for multiple rings to be represented correctly

multiple_rings.png

Various utilities created to help with the interpretation of dicom images/RT Structures

RT Structure and dicom conversion to numpy arrays

This code is designed to receive an input path to a folder which contains both dicom images and a single RT structure file

For example, assume a folder exists with dicom files and an RT structure located at 'C:\users\brianmanderson\Patient_1\CT1' with the roi 'Liver'

Assume there are 100 images, the generated data will be: Dicom_Image.ArrayDicom is the image numpy array in the format [# images, rows, cols]

You can then call it to return a mask based on contour names called DicomImage.get_mask(), this takes in a list of Contour Names

You can see the available contour names with

Example:

from DicomRTTool.ReaderWriter import DicomReaderWriter
Dicom_reader = DicomReaderWriter(description='Example')
path = 'C:\users\brianmanderson\Patients\'
Dicom_reader.walk_through_folders(path)  # This will walk through all of the folders, and print the indexes for each series instance UID present

all_rois = Dicom_reader.return_rois(print_rois=True)  # Return a list of all rois present, and print them



Contour_Names = ['Liver']
associations = {'Liver_BMA_Program4':'Liver','Liver':'Liver'}

Dicom_reader.set_contour_names(Contour_Names)
Dicom_reader.__set_associations__(associations)
Dicom_reader.get_images_and_mask()

image = Dicom_reader.ArrayDicom
mask = Dicom_reader.mask

pred = np.zeros([mask.shape[0],mask.shape[1],mask.shape[2],2]) # prediction needs to be [# images, rows, cols, # classes]
pred[:,200:300,200:300,1] = 1

output_path= os.path.join('.','Output')
Dicom_reader.prediction_array_to_RT(prediction_array=pred, output_dir=output_path, ROI_Names=['test'])

'''
Write the images and annotations as niftii files in parallel!
'''
Dicom_Reader.write_parallel(out_path=export_path, excel_file=os.path.join('.','MRN_Path_To_Iteration.xlsx'))

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

DicomRTTool-0.3.3.tar.gz (607.8 kB view details)

Uploaded Source

Built Distribution

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

DicomRTTool-0.3.3-py3-none-any.whl (30.8 kB view details)

Uploaded Python 3

File details

Details for the file DicomRTTool-0.3.3.tar.gz.

File metadata

  • Download URL: DicomRTTool-0.3.3.tar.gz
  • Upload date:
  • Size: 607.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.6.5

File hashes

Hashes for DicomRTTool-0.3.3.tar.gz
Algorithm Hash digest
SHA256 7068e637f4d9ece4fc3c0e3c6a68b296534e1b14c126b5dbdc0a8bb0d0268d17
MD5 1ac5ac18e8421153e7d29e1ba97f02c9
BLAKE2b-256 ba88c66824010e5db04383ec2d4d00cfc4a2aa0dad88ff6ee6579ba025582c3c

See more details on using hashes here.

File details

Details for the file DicomRTTool-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: DicomRTTool-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 30.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.6.5

File hashes

Hashes for DicomRTTool-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e685f8f6d2754fbd1757c1424168c7baa59e65255ea0a80f21598313ece55f0b
MD5 eabf2a7a1eaab0f7db5ae135a36fb185
BLAKE2b-256 94026bcea6d337db18d1824db9d16c89573a96ca59b08c4c2e63196564802dc6

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