SlideShare a Scribd company logo
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
DICOM and NIfTI Data Standards
in R
Brandon Whitcher PhD CStat
Mango Solutions
London, United Kingdom
www.mango-solutions.com
bwhitcher@mango-solutions.com
@MangoImaging
12 June 2012 – useR!2012 Tutorial
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Outline
1 Summary
2 Digital Imaging and Communications in Medicine
3 Neuroimaging Informatics Technology Initiative
4 Data Visualization
5 DICOM-to-NIfTI Conversion
6 Conclusions
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Goal
• Content presented here provides users with the skills to
manipulate DICOM / ANALYZE / NIfTI files in R.
• Real-world data sets are used to illustrate the basic
functionality of oro.dicom and oro.nifti.
• S4 classes “nifti” and “anlz” enable further statistical
analysis in R without losing contextual information from
the original ANALYZE or NIfTI files.
• Images in the metadata-rich DICOM format may be
converted to NIfTI semi-automatically using as much
information from the DICOM files as possible.
• Basic visualization functions, are provided for “nifti” and
“anlz” objects.
• The oro.nifti package allows one to track every
operation on a nifti object in an XML-based audit trail.
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Alternatives to oro.dicom and oro.nifti
• There are several R packages that are able to access
the DICOM / ANALYZE / NIfTI data formats:
• AnalyzeFMRI (Bordier et al. 2009)
• fmri (Polzehl and Tabelow 2007)
• Rniftilib (Granert 2010)
• tractor.base (Clayden 2010)
Question #1
What are the (dis)advantages to having a single R package
that performs input / output for medical imaging data?
Question #2
Should R packages be discouraged from writing output in
formats other than ANALYZE or NIfTI?
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
The DICOM “Standard”
• The DICOM “standard” for data acquired using a
clinical imaging device is very broad and complex.
• Each DICOM-compliant file is a collection of fields
organized into two two-byte sequences (group,element)
that are represented as hexadecimal numbers and form
a tag.
• The (group,element) combination establishes what type
of information is forthcoming in the file.
• There is no fixed number of bytes for a DICOM header.
• The final (group,element) tag should be the PixelData
tag (7FE0,0010), such that all subsequent information
is related to the image.
DICOM
Digital Imaging and Communications in Medicine
http://medical.nema.org
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
The Structure of a DICOM File
Data element with explicit VR of OB, OF, OW, SQ, UT or UN:
+-----------------------------------------------------------+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
+----+----+----+----+----+----+----+----+----+----+----+----+
|<Group-->|<Element>|<VR----->|<0x0000->|<Length----------->|<Value->
Data element with explicit VR other than as shown above:
+---------------------------------------+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+----+----+----+----+----+----+----+----+
|<Group-->|<Element>|<VR----->|<Length->|<Value->
Data element with implicit VR:
+---------------------------------------+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+----+----+----+----+----+----+----+----+
|<Group-->|<Element>|<Length----------->|<Value->
• Byte ordering for a single (group,element) tag in the
DICOM standard.
• Explicit VRs store the VR as text characters in two
bytes.
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Reading DICOM Files
readDICOMFile()
Accessing information stored in a single DICOM file
• The resulting object is a list with two elements: the
DICOM header (hdr) and the DICOM image (img).
• Header information is organized in a data frame with six
columns and an unknown number of rows.
• First five columns taken from DICOM header
information (group, element, code, length and value) or
inferred (name).
• (group,element) values are stored as character strings
– not hexadecimal numbers.
readDICOM()
Accessing multiple DICOM files in a single directory or
directory tree
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Stacking DICOM Images
create3D() and create4D()
Create arrays from DICOM headers / images
• Minimum input = “dcm” structure
• PixelData may be read on-the-fly
• Siemens MOSAIC format allowed
• 4D volumes may require additional information
• nslices = ?
• ntimes = ?
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
The ANALYZE Format
• The ANALYZE format was originally developed in
conjunction with an image processing system (of the
same name) at the Mayo Foundation.
• A common version of the format, although not the most
recent, is called ANALYZE 7.5.
• An ANALYZE 7.5 format image is comprised of two
files, the “.hdr” and “.img” files, that contain information
about the acquisition and the acquisition itself,
respectively.
The ANALYZE Format
.hdr = 348-byte binary file of header information
.img = binary flat file of images (multi-dimensional array)
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
The NIfTI-1 Format
• The NIfTI-1 data format is almost identical to the
ANALYZE format, but offers a few improvements:
• Merging of the header and image information into one
file “.nii”
• Re-organization of the 348-byte fixed header into more
relevant categories
• Possibility of extending the header information
• Discussions have begun on the NIfTI-2 data format.
NIfTI
Neuroimaging Informatics Technology Initiative
http://nifti.nimh.nih.gov
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
S4 Classes for ANALYZE and NIfTI-1
• “nifti”
• Inherits from class “array”
• Slots contain NIfTI header information
• Basic methods: show(), nifti(), is.nifti(), as(<obj>, “nifti”)
• Input / output: readNIfTI(), writeNIfTI()
• Slot access: pixdim(), qform(), sform(), descrip(),
aux.file(), audit.trail()
• Additional classes: “niftiExtension” and
“niftiExtensionSection”
• “anlz”
• Inherits from class “array”
• Slots contain ANALYZE header information
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Visualization
• oro.nifti offers three functions for visualization
• image() = overloaded function for “anlz”, “array” and
“nifti” classes
• overlay() = extension of image() with x and y input
parameters
• orthographic() = mid-axial, mid-sagittal, mid-coronal
views
Interactive Visualization
FSLView
http://www.fmrib.ox.ac.uk/fsl/fslview/
MRIcron
http://www.cabiatl.com/mricro/mricron/
VolView
http://www.kitware.com/products/volview.html
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
DICOM-to-NIfTI Conversion
• oro.dicom and oro.nifti were designed to use as much
information as possible from the metadata-rich DICOM
format and apply that information in the construction of
the NIfTI data volume.
• Read in a single series using dicomSeperate()
• dicom2nifti() converts the list of DICOM images into a
multidimensional “nifti” object
• dicom2analyze() converts the list of DICOM images into
a multidimensional “anlz” object
• Additional scripting in R is required to deal with multiple
series
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Goal
• Content presented here provides users with the skills to
manipulate DICOM / ANALYZE / NIfTI files in R.
• Real-world data sets are used to illustrate the basic
functionality of oro.dicom and oro.nifti.
• S4 classes “nifti” and “anlz” enable further statistical
analysis in R without losing contextual information from
the original ANALYZE or NIfTI files.
• Images in the metadata-rich DICOM format may be
converted to NIfTI semi-automatically using as much
information from the DICOM files as possible.
• Basic visualization functions, are provided for “nifti” and
“anlz” objects.
• The oro.nifti package allows one to track every
operation on a nifti object in an XML-based audit trail.
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Help
• http://rigorousanalytics.blogspot.com
• https://r-forge.r-project.org/projects/
rigorous
• rigorous-dicom@lists.r-forge.r-project.org
• rigorous-nifti@lists.r-forge.r-project.org
•
rigorous-dcemris4@lists.r-forge.r-project.org
Volume 44 in the Journal of Statistical Software
Special volume on “Magnetic Resonance Imaging in R”
• 13 articles on fMRI, DTI, DCE-MRI, etc.
• www.jstatsoft.org/v44
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Bibliography I
C. Bordier, M. Dojat, and P. Lafaye de Micheaux.
AnalyzeFMRI: an R package to perform statistical
analysis on fmri datasets. 2009. URL http:
//www.biostatisticien.eu/AnalyzeFMRI/.
Software: R Package, AnalyzeFMRI, version 1.1-12.
J. Clayden. tractor.base: A Package for Reading,
Manipulating and Visualising Magnetic Resonance
Images, 2010. URL http:
//CRAN.R-project.org/package=tractor.base.
R package version 1.5.0.
O. Granert. Rniftilib: R Interface to NIFTICLIB (V1.1.0),
2010. URL http:
//CRAN.R-project.org/package=Rniftilib. R
package version 0.0-29.
DICOM and
NIfTI Data
Standards in
R
Summary
DICOM
NIfTI
Visualization
Conversion
End
Bibliography
Bibliography II
J. Polzehl and K. Tabelow. fmri: A package for analyzing
fmri data. RNews, 7(2):13–17, 2007. URL
http://www.r-project.org/doc/Rnews/Rnews_
2007-2.pdf.
DICOM and
NIfTI Data
Standards in
R
Appendix
R Package: oro.dicom
• Title: Rigorous - DICOM Input / Output
• Description: Data input/output functions for data that
conform to the Digital Imaging and Communications in
Medicine (DICOM) standard, part of the Rigorous
Analytics bundle.
• Depends: R (>= 2.13.0), utils
• Suggests: hwriter, oro.nifti (>= 0.2.9)
• License: BSD
• URL: http://rigorousanalytics.blogspot.com
DICOM and
NIfTI Data
Standards in
R
Appendix
R Package: oro.nifti
• Title: Rigorous - NIfTI+ANALYZE+AFNI Input / Output
• Description: Functions for the input/output and
visualization of medical imaging data that follow either
the ANALYZE, NIfTI or AFNI formats. This package is
part of the Rigorous Analytics bundle.
• Depends: R (>= 2.13.0), bitops, graphics, grDevices,
methods, utils
• Suggests: XML
• Imports: splines
• Enhances: fmri
• License: BSD
• URL: http://rigorousanalytics.blogspot.com

More Related Content

Viewers also liked

A review on Rich dad's "The Business School"
A review on Rich dad's "The Business School"A review on Rich dad's "The Business School"
A review on Rich dad's "The Business School"
Deepika Bommu
 
Neminath electricals
Neminath electricalsNeminath electricals
Neminath electricals
Neminath Electricals
 
EDUCANDO CON CARIÑO LA SEGURIDAD VIAL
EDUCANDO CON CARIÑO LA SEGURIDAD VIALEDUCANDO CON CARIÑO LA SEGURIDAD VIAL
EDUCANDO CON CARIÑO LA SEGURIDAD VIAL
Alexis Rodriguez
 
Media studies
Media studiesMedia studies
Media studies
Jordan Bunning
 
Props
PropsProps
Παρουσίαση της Ελληνικής Επαγγελματικής και Επιστημονικής Ένωση των Βιβλιοθηκ...
Παρουσίαση της Ελληνικής Επαγγελματικής και Επιστημονικής Ένωση των Βιβλιοθηκ...Παρουσίαση της Ελληνικής Επαγγελματικής και Επιστημονικής Ένωση των Βιβλιοθηκ...
Παρουσίαση της Ελληνικής Επαγγελματικής και Επιστημονικής Ένωση των Βιβλιοθηκ...
Department of Library Science AΤEI Thessaloniki
 
Karma infrastructure
Karma infrastructureKarma infrastructure
Karma infrastructure
Karma Group of Companies
 
Up to date 4A0-103 Exam Questions and Info
Up to date 4A0-103 Exam Questions and InfoUp to date 4A0-103 Exam Questions and Info
Up to date 4A0-103 Exam Questions and Infodevonpaul
 
Открытое внеклассное мероприятие "Золотая Осень"
Открытое внеклассное мероприятие "Золотая Осень"Открытое внеклассное мероприятие "Золотая Осень"
Открытое внеклассное мероприятие "Золотая Осень"
mizieva
 
Font questionnaire analysis
Font questionnaire analysisFont questionnaire analysis
Font questionnaire analysis
Scoley1996
 
Asif javaid chattha
Asif javaid chatthaAsif javaid chattha
Asif javaid chattha
Junaid Javaid
 
ppti
pptippti
Story board
Story boardStory board
Story board
Jordan Bunning
 
Shannon media
Shannon mediaShannon media
Shannon media
shannon21st
 
Основи програмування
Основи програмуванняОснови програмування
Основи програмування
HelenSm007
 
MS POWER POINT 2007 BAB 1
MS POWER POINT 2007 BAB 1MS POWER POINT 2007 BAB 1
MS POWER POINT 2007 BAB 1
nicko9h
 

Viewers also liked (16)

A review on Rich dad's "The Business School"
A review on Rich dad's "The Business School"A review on Rich dad's "The Business School"
A review on Rich dad's "The Business School"
 
Neminath electricals
Neminath electricalsNeminath electricals
Neminath electricals
 
EDUCANDO CON CARIÑO LA SEGURIDAD VIAL
EDUCANDO CON CARIÑO LA SEGURIDAD VIALEDUCANDO CON CARIÑO LA SEGURIDAD VIAL
EDUCANDO CON CARIÑO LA SEGURIDAD VIAL
 
Media studies
Media studiesMedia studies
Media studies
 
Props
PropsProps
Props
 
Παρουσίαση της Ελληνικής Επαγγελματικής και Επιστημονικής Ένωση των Βιβλιοθηκ...
Παρουσίαση της Ελληνικής Επαγγελματικής και Επιστημονικής Ένωση των Βιβλιοθηκ...Παρουσίαση της Ελληνικής Επαγγελματικής και Επιστημονικής Ένωση των Βιβλιοθηκ...
Παρουσίαση της Ελληνικής Επαγγελματικής και Επιστημονικής Ένωση των Βιβλιοθηκ...
 
Karma infrastructure
Karma infrastructureKarma infrastructure
Karma infrastructure
 
Up to date 4A0-103 Exam Questions and Info
Up to date 4A0-103 Exam Questions and InfoUp to date 4A0-103 Exam Questions and Info
Up to date 4A0-103 Exam Questions and Info
 
Открытое внеклассное мероприятие "Золотая Осень"
Открытое внеклассное мероприятие "Золотая Осень"Открытое внеклассное мероприятие "Золотая Осень"
Открытое внеклассное мероприятие "Золотая Осень"
 
Font questionnaire analysis
Font questionnaire analysisFont questionnaire analysis
Font questionnaire analysis
 
Asif javaid chattha
Asif javaid chatthaAsif javaid chattha
Asif javaid chattha
 
ppti
pptippti
ppti
 
Story board
Story boardStory board
Story board
 
Shannon media
Shannon mediaShannon media
Shannon media
 
Основи програмування
Основи програмуванняОснови програмування
Основи програмування
 
MS POWER POINT 2007 BAB 1
MS POWER POINT 2007 BAB 1MS POWER POINT 2007 BAB 1
MS POWER POINT 2007 BAB 1
 

Similar to Using DICOM and NIfTI in R

Building a Knowledge Graph using NLP and Ontologies
Building a Knowledge Graph using NLP and OntologiesBuilding a Knowledge Graph using NLP and Ontologies
Building a Knowledge Graph using NLP and Ontologies
Neo4j
 
Data ingestion using NiFi - Quick Overview
Data ingestion using NiFi - Quick OverviewData ingestion using NiFi - Quick Overview
Data ingestion using NiFi - Quick Overview
Durga Gadiraju
 
Canllawiau CBHC ar gyfer Archifau Archaeolegol Digidol – Ymagwedd Gynaliadwy ...
Canllawiau CBHC ar gyfer Archifau Archaeolegol Digidol – Ymagwedd Gynaliadwy ...Canllawiau CBHC ar gyfer Archifau Archaeolegol Digidol – Ymagwedd Gynaliadwy ...
Canllawiau CBHC ar gyfer Archifau Archaeolegol Digidol – Ymagwedd Gynaliadwy ...
RCAHMW
 
London useR Meeting 21-Jul-09
London useR Meeting 21-Jul-09London useR Meeting 21-Jul-09
London useR Meeting 21-Jul-09
bwhitcher
 
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Maurice Nsabimana
 
GraphTour 2020 - Neo4j: What's New?
GraphTour 2020 - Neo4j: What's New?GraphTour 2020 - Neo4j: What's New?
GraphTour 2020 - Neo4j: What's New?
Neo4j
 
The Role of OAIS Representation Information in the Digital Curation of Crysta...
The Role of OAIS Representation Information in the Digital Curation of Crysta...The Role of OAIS Representation Information in the Digital Curation of Crysta...
The Role of OAIS Representation Information in the Digital Curation of Crysta...
ManjulaPatel
 
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Databricks
 
Towards Flexible Indices for Distributed Graph Data: The Formal Schema-level...
Towards Flexible Indices for  Distributed Graph Data: The Formal Schema-level...Towards Flexible Indices for  Distributed Graph Data: The Formal Schema-level...
Towards Flexible Indices for Distributed Graph Data: The Formal Schema-level...
Till Blume
 
An Emerging Standard for Research-Quality Images: What IIIF Means for Digital...
An Emerging Standard for Research-Quality Images: What IIIF Means for Digital...An Emerging Standard for Research-Quality Images: What IIIF Means for Digital...
An Emerging Standard for Research-Quality Images: What IIIF Means for Digital...
tseneca
 
Neo4j in Depth
Neo4j in DepthNeo4j in Depth
Neo4j in Depth
Max De Marzi
 
Python meetup
Python meetupPython meetup
Python meetup
Jeffrey Clark
 
dicom.ppt
dicom.pptdicom.ppt
dicom.ppt
AudyFakhrinoor
 
DRI Introductory Training: Preparing Your Collections for the DRI
DRI Introductory Training: Preparing Your Collections for the DRIDRI Introductory Training: Preparing Your Collections for the DRI
DRI Introductory Training: Preparing Your Collections for the DRI
dri_ireland
 
One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...
One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...
One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...
12th International Conference on Digital Preservation (iPRES 2015)
 
Kevin Long - Preparing your collection for DRI
Kevin Long - Preparing your collection for DRIKevin Long - Preparing your collection for DRI
Kevin Long - Preparing your collection for DRI
dri_ireland
 
CNI 2018: A Research Object Authoring Tool for the Data Commons
CNI 2018: A Research Object Authoring Tool for the Data CommonsCNI 2018: A Research Object Authoring Tool for the Data Commons
CNI 2018: A Research Object Authoring Tool for the Data Commons
Anita de Waard
 
e-Services to Keep Your Digital Files Current
e-Services to Keep Your Digital Files Currente-Services to Keep Your Digital Files Current
e-Services to Keep Your Digital Files Current
pbajcsy
 
How to store, organize and use petabytes of heterogenous data
How to store, organize and use petabytes of heterogenous dataHow to store, organize and use petabytes of heterogenous data
How to store, organize and use petabytes of heterogenous data
OVHcloud
 
ISO 15926 Reference Data Engineering Methodology
ISO 15926 Reference Data Engineering MethodologyISO 15926 Reference Data Engineering Methodology
ISO 15926 Reference Data Engineering Methodology
Anatoly Levenchuk
 

Similar to Using DICOM and NIfTI in R (20)

Building a Knowledge Graph using NLP and Ontologies
Building a Knowledge Graph using NLP and OntologiesBuilding a Knowledge Graph using NLP and Ontologies
Building a Knowledge Graph using NLP and Ontologies
 
Data ingestion using NiFi - Quick Overview
Data ingestion using NiFi - Quick OverviewData ingestion using NiFi - Quick Overview
Data ingestion using NiFi - Quick Overview
 
Canllawiau CBHC ar gyfer Archifau Archaeolegol Digidol – Ymagwedd Gynaliadwy ...
Canllawiau CBHC ar gyfer Archifau Archaeolegol Digidol – Ymagwedd Gynaliadwy ...Canllawiau CBHC ar gyfer Archifau Archaeolegol Digidol – Ymagwedd Gynaliadwy ...
Canllawiau CBHC ar gyfer Archifau Archaeolegol Digidol – Ymagwedd Gynaliadwy ...
 
London useR Meeting 21-Jul-09
London useR Meeting 21-Jul-09London useR Meeting 21-Jul-09
London useR Meeting 21-Jul-09
 
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
 
GraphTour 2020 - Neo4j: What's New?
GraphTour 2020 - Neo4j: What's New?GraphTour 2020 - Neo4j: What's New?
GraphTour 2020 - Neo4j: What's New?
 
The Role of OAIS Representation Information in the Digital Curation of Crysta...
The Role of OAIS Representation Information in the Digital Curation of Crysta...The Role of OAIS Representation Information in the Digital Curation of Crysta...
The Role of OAIS Representation Information in the Digital Curation of Crysta...
 
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
 
Towards Flexible Indices for Distributed Graph Data: The Formal Schema-level...
Towards Flexible Indices for  Distributed Graph Data: The Formal Schema-level...Towards Flexible Indices for  Distributed Graph Data: The Formal Schema-level...
Towards Flexible Indices for Distributed Graph Data: The Formal Schema-level...
 
An Emerging Standard for Research-Quality Images: What IIIF Means for Digital...
An Emerging Standard for Research-Quality Images: What IIIF Means for Digital...An Emerging Standard for Research-Quality Images: What IIIF Means for Digital...
An Emerging Standard for Research-Quality Images: What IIIF Means for Digital...
 
Neo4j in Depth
Neo4j in DepthNeo4j in Depth
Neo4j in Depth
 
Python meetup
Python meetupPython meetup
Python meetup
 
dicom.ppt
dicom.pptdicom.ppt
dicom.ppt
 
DRI Introductory Training: Preparing Your Collections for the DRI
DRI Introductory Training: Preparing Your Collections for the DRIDRI Introductory Training: Preparing Your Collections for the DRI
DRI Introductory Training: Preparing Your Collections for the DRI
 
One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...
One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...
One Core Preservation System for all your Data. No Exceptions! Marco Klindt a...
 
Kevin Long - Preparing your collection for DRI
Kevin Long - Preparing your collection for DRIKevin Long - Preparing your collection for DRI
Kevin Long - Preparing your collection for DRI
 
CNI 2018: A Research Object Authoring Tool for the Data Commons
CNI 2018: A Research Object Authoring Tool for the Data CommonsCNI 2018: A Research Object Authoring Tool for the Data Commons
CNI 2018: A Research Object Authoring Tool for the Data Commons
 
e-Services to Keep Your Digital Files Current
e-Services to Keep Your Digital Files Currente-Services to Keep Your Digital Files Current
e-Services to Keep Your Digital Files Current
 
How to store, organize and use petabytes of heterogenous data
How to store, organize and use petabytes of heterogenous dataHow to store, organize and use petabytes of heterogenous data
How to store, organize and use petabytes of heterogenous data
 
ISO 15926 Reference Data Engineering Methodology
ISO 15926 Reference Data Engineering MethodologyISO 15926 Reference Data Engineering Methodology
ISO 15926 Reference Data Engineering Methodology
 

Recently uploaded

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 

Recently uploaded (20)

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 

Using DICOM and NIfTI in R

  • 1. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography DICOM and NIfTI Data Standards in R Brandon Whitcher PhD CStat Mango Solutions London, United Kingdom www.mango-solutions.com bwhitcher@mango-solutions.com @MangoImaging 12 June 2012 – useR!2012 Tutorial
  • 2. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Outline 1 Summary 2 Digital Imaging and Communications in Medicine 3 Neuroimaging Informatics Technology Initiative 4 Data Visualization 5 DICOM-to-NIfTI Conversion 6 Conclusions
  • 3. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Goal • Content presented here provides users with the skills to manipulate DICOM / ANALYZE / NIfTI files in R. • Real-world data sets are used to illustrate the basic functionality of oro.dicom and oro.nifti. • S4 classes “nifti” and “anlz” enable further statistical analysis in R without losing contextual information from the original ANALYZE or NIfTI files. • Images in the metadata-rich DICOM format may be converted to NIfTI semi-automatically using as much information from the DICOM files as possible. • Basic visualization functions, are provided for “nifti” and “anlz” objects. • The oro.nifti package allows one to track every operation on a nifti object in an XML-based audit trail.
  • 4. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Alternatives to oro.dicom and oro.nifti • There are several R packages that are able to access the DICOM / ANALYZE / NIfTI data formats: • AnalyzeFMRI (Bordier et al. 2009) • fmri (Polzehl and Tabelow 2007) • Rniftilib (Granert 2010) • tractor.base (Clayden 2010) Question #1 What are the (dis)advantages to having a single R package that performs input / output for medical imaging data? Question #2 Should R packages be discouraged from writing output in formats other than ANALYZE or NIfTI?
  • 5. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography The DICOM “Standard” • The DICOM “standard” for data acquired using a clinical imaging device is very broad and complex. • Each DICOM-compliant file is a collection of fields organized into two two-byte sequences (group,element) that are represented as hexadecimal numbers and form a tag. • The (group,element) combination establishes what type of information is forthcoming in the file. • There is no fixed number of bytes for a DICOM header. • The final (group,element) tag should be the PixelData tag (7FE0,0010), such that all subsequent information is related to the image. DICOM Digital Imaging and Communications in Medicine http://medical.nema.org
  • 6. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography The Structure of a DICOM File Data element with explicit VR of OB, OF, OW, SQ, UT or UN: +-----------------------------------------------------------+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | +----+----+----+----+----+----+----+----+----+----+----+----+ |<Group-->|<Element>|<VR----->|<0x0000->|<Length----------->|<Value-> Data element with explicit VR other than as shown above: +---------------------------------------+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | +----+----+----+----+----+----+----+----+ |<Group-->|<Element>|<VR----->|<Length->|<Value-> Data element with implicit VR: +---------------------------------------+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | +----+----+----+----+----+----+----+----+ |<Group-->|<Element>|<Length----------->|<Value-> • Byte ordering for a single (group,element) tag in the DICOM standard. • Explicit VRs store the VR as text characters in two bytes.
  • 7. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Reading DICOM Files readDICOMFile() Accessing information stored in a single DICOM file • The resulting object is a list with two elements: the DICOM header (hdr) and the DICOM image (img). • Header information is organized in a data frame with six columns and an unknown number of rows. • First five columns taken from DICOM header information (group, element, code, length and value) or inferred (name). • (group,element) values are stored as character strings – not hexadecimal numbers. readDICOM() Accessing multiple DICOM files in a single directory or directory tree
  • 8. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Stacking DICOM Images create3D() and create4D() Create arrays from DICOM headers / images • Minimum input = “dcm” structure • PixelData may be read on-the-fly • Siemens MOSAIC format allowed • 4D volumes may require additional information • nslices = ? • ntimes = ?
  • 9. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography The ANALYZE Format • The ANALYZE format was originally developed in conjunction with an image processing system (of the same name) at the Mayo Foundation. • A common version of the format, although not the most recent, is called ANALYZE 7.5. • An ANALYZE 7.5 format image is comprised of two files, the “.hdr” and “.img” files, that contain information about the acquisition and the acquisition itself, respectively. The ANALYZE Format .hdr = 348-byte binary file of header information .img = binary flat file of images (multi-dimensional array)
  • 10. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography The NIfTI-1 Format • The NIfTI-1 data format is almost identical to the ANALYZE format, but offers a few improvements: • Merging of the header and image information into one file “.nii” • Re-organization of the 348-byte fixed header into more relevant categories • Possibility of extending the header information • Discussions have begun on the NIfTI-2 data format. NIfTI Neuroimaging Informatics Technology Initiative http://nifti.nimh.nih.gov
  • 11. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography S4 Classes for ANALYZE and NIfTI-1 • “nifti” • Inherits from class “array” • Slots contain NIfTI header information • Basic methods: show(), nifti(), is.nifti(), as(<obj>, “nifti”) • Input / output: readNIfTI(), writeNIfTI() • Slot access: pixdim(), qform(), sform(), descrip(), aux.file(), audit.trail() • Additional classes: “niftiExtension” and “niftiExtensionSection” • “anlz” • Inherits from class “array” • Slots contain ANALYZE header information
  • 12. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Visualization • oro.nifti offers three functions for visualization • image() = overloaded function for “anlz”, “array” and “nifti” classes • overlay() = extension of image() with x and y input parameters • orthographic() = mid-axial, mid-sagittal, mid-coronal views Interactive Visualization FSLView http://www.fmrib.ox.ac.uk/fsl/fslview/ MRIcron http://www.cabiatl.com/mricro/mricron/ VolView http://www.kitware.com/products/volview.html
  • 13. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography DICOM-to-NIfTI Conversion • oro.dicom and oro.nifti were designed to use as much information as possible from the metadata-rich DICOM format and apply that information in the construction of the NIfTI data volume. • Read in a single series using dicomSeperate() • dicom2nifti() converts the list of DICOM images into a multidimensional “nifti” object • dicom2analyze() converts the list of DICOM images into a multidimensional “anlz” object • Additional scripting in R is required to deal with multiple series
  • 14. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Goal • Content presented here provides users with the skills to manipulate DICOM / ANALYZE / NIfTI files in R. • Real-world data sets are used to illustrate the basic functionality of oro.dicom and oro.nifti. • S4 classes “nifti” and “anlz” enable further statistical analysis in R without losing contextual information from the original ANALYZE or NIfTI files. • Images in the metadata-rich DICOM format may be converted to NIfTI semi-automatically using as much information from the DICOM files as possible. • Basic visualization functions, are provided for “nifti” and “anlz” objects. • The oro.nifti package allows one to track every operation on a nifti object in an XML-based audit trail.
  • 15. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Help • http://rigorousanalytics.blogspot.com • https://r-forge.r-project.org/projects/ rigorous • rigorous-dicom@lists.r-forge.r-project.org • rigorous-nifti@lists.r-forge.r-project.org • rigorous-dcemris4@lists.r-forge.r-project.org Volume 44 in the Journal of Statistical Software Special volume on “Magnetic Resonance Imaging in R” • 13 articles on fMRI, DTI, DCE-MRI, etc. • www.jstatsoft.org/v44
  • 16. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Bibliography I C. Bordier, M. Dojat, and P. Lafaye de Micheaux. AnalyzeFMRI: an R package to perform statistical analysis on fmri datasets. 2009. URL http: //www.biostatisticien.eu/AnalyzeFMRI/. Software: R Package, AnalyzeFMRI, version 1.1-12. J. Clayden. tractor.base: A Package for Reading, Manipulating and Visualising Magnetic Resonance Images, 2010. URL http: //CRAN.R-project.org/package=tractor.base. R package version 1.5.0. O. Granert. Rniftilib: R Interface to NIFTICLIB (V1.1.0), 2010. URL http: //CRAN.R-project.org/package=Rniftilib. R package version 0.0-29.
  • 17. DICOM and NIfTI Data Standards in R Summary DICOM NIfTI Visualization Conversion End Bibliography Bibliography II J. Polzehl and K. Tabelow. fmri: A package for analyzing fmri data. RNews, 7(2):13–17, 2007. URL http://www.r-project.org/doc/Rnews/Rnews_ 2007-2.pdf.
  • 18. DICOM and NIfTI Data Standards in R Appendix R Package: oro.dicom • Title: Rigorous - DICOM Input / Output • Description: Data input/output functions for data that conform to the Digital Imaging and Communications in Medicine (DICOM) standard, part of the Rigorous Analytics bundle. • Depends: R (>= 2.13.0), utils • Suggests: hwriter, oro.nifti (>= 0.2.9) • License: BSD • URL: http://rigorousanalytics.blogspot.com
  • 19. DICOM and NIfTI Data Standards in R Appendix R Package: oro.nifti • Title: Rigorous - NIfTI+ANALYZE+AFNI Input / Output • Description: Functions for the input/output and visualization of medical imaging data that follow either the ANALYZE, NIfTI or AFNI formats. This package is part of the Rigorous Analytics bundle. • Depends: R (>= 2.13.0), bitops, graphics, grDevices, methods, utils • Suggests: XML • Imports: splines • Enhances: fmri • License: BSD • URL: http://rigorousanalytics.blogspot.com