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 ïŹles 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 ïŹles.
‱ Images in the metadata-rich DICOM format may be
converted to NIfTI semi-automatically using as much
information from the DICOM ïŹles 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 ïŹle is a collection of ïŹelds
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 ïŹle.
‱ There is no ïŹxed number of bytes for a DICOM header.
‱ The ïŹnal (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 ïŹle
‱ 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 ïŹve 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 ïŹles 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-ïŹ‚y
‱ 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
ïŹles, the “.hdr” and “.img” ïŹles, that contain information
about the acquisition and the acquisition itself,
respectively.
The ANALYZE Format
.hdr = 348-byte binary ïŹle of header information
.img = binary ïŹ‚at ïŹle 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
ïŹle “.nii”
‱ Re-organization of the 348-byte ïŹxed 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.ïŹle(), 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 ïŹles 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 ïŹles.
‱ Images in the metadata-rich DICOM format may be
converted to NIfTI semi-automatically using as much
information from the DICOM ïŹles 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

PPT
Digital Object Identifiers for EOSDIS data
PPTX
Introduction to HDF5 Data and Programming Models
PDF
Bayesian and Frequentist Methods for Compartmental Models in Perfusion MRI
PDF
DCE-MRI for Oncology in R
PPTX
Aardbeving sumatra 28 maart 2005.ppt
PPTX
Welcome mtc sfe
PPTX
Oranjerevolutie
DOCX
kenegaraan
Digital Object Identifiers for EOSDIS data
Introduction to HDF5 Data and Programming Models
Bayesian and Frequentist Methods for Compartmental Models in Perfusion MRI
DCE-MRI for Oncology in R
Aardbeving sumatra 28 maart 2005.ppt
Welcome mtc sfe
Oranjerevolutie
kenegaraan

Viewers also liked (16)

PPTX
A review on Rich dad's "The Business School"
PDF
Neminath electricals
PDF
EDUCANDO CON CARIÑO LA SEGURIDAD VIAL
ODP
Media studies
PPTX
Î Î±ÏÎżÏ…ÏƒÎŻÎ±ÏƒÎ· της ΕλληΜÎčÎșÎźÏ‚ Î•Ï€Î±ÎłÎłÎ”Î»ÎŒÎ±Ï„ÎčÎșÎźÏ‚ ÎșαÎč ΕπÎčÏƒÏ„Î·ÎŒÎżÎœÎčÎșÎźÏ‚ ΈΜωση τωΜ ΒÎčÎČλÎčοΞηÎș...
PPTX
Karma infrastructure
PDF
Up to date 4A0-103 Exam Questions and Info
DOCX
ОтĐșŃ€Ń‹Ń‚ĐŸĐ” ĐČĐœĐ”ĐșĐ»Đ°ŃŃĐœĐŸĐ” ĐŒĐ”Ń€ĐŸĐżŃ€ĐžŃŃ‚ĐžĐ” "Đ—ĐŸĐ»ĐŸŃ‚Đ°Ń ĐžŃĐ”ĐœŃŒ"
PPTX
Font questionnaire analysis
DOC
Asif javaid chattha
PPT
ppti
PPTX
Story board
PPTX
Shannon media
PPT
ĐžŃĐœĐŸĐČĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒŃƒĐČĐ°ĐœĐœŃ
PPT
MS POWER POINT 2007 BAB 1
A review on Rich dad's "The Business School"
Neminath electricals
EDUCANDO CON CARIÑO LA SEGURIDAD VIAL
Media studies
Î Î±ÏÎżÏ…ÏƒÎŻÎ±ÏƒÎ· της ΕλληΜÎčÎșÎźÏ‚ Î•Ï€Î±ÎłÎłÎ”Î»ÎŒÎ±Ï„ÎčÎșÎźÏ‚ ÎșαÎč ΕπÎčÏƒÏ„Î·ÎŒÎżÎœÎčÎșÎźÏ‚ ΈΜωση τωΜ ΒÎčÎČλÎčοΞηÎș...
Karma infrastructure
Up to date 4A0-103 Exam Questions and Info
ОтĐșŃ€Ń‹Ń‚ĐŸĐ” ĐČĐœĐ”ĐșĐ»Đ°ŃŃĐœĐŸĐ” ĐŒĐ”Ń€ĐŸĐżŃ€ĐžŃŃ‚ĐžĐ” "Đ—ĐŸĐ»ĐŸŃ‚Đ°Ń ĐžŃĐ”ĐœŃŒ"
Font questionnaire analysis
Asif javaid chattha
ppti
Story board
Shannon media
ĐžŃĐœĐŸĐČĐž ĐżŃ€ĐŸĐłŃ€Đ°ĐŒŃƒĐČĐ°ĐœĐœŃ
MS POWER POINT 2007 BAB 1
Ad

Similar to Using DICOM and NIfTI in R (20)

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

Recently uploaded (20)

PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
L1 - Introduction to python Backend.pptx
PDF
medical staffing services at VALiNTRY
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Introduction to Artificial Intelligence
PDF
Nekopoi APK 2025 free lastest update
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Upgrade and Innovation Strategies for SAP ERP Customers
Design an Analysis of Algorithms II-SECS-1021-03
Reimagine Home Health with the Power of Agentic AI​
Understanding Forklifts - TECH EHS Solution
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Which alternative to Crystal Reports is best for small or large businesses.pdf
PTS Company Brochure 2025 (1).pdf.......
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
L1 - Introduction to python Backend.pptx
medical staffing services at VALiNTRY
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Introduction to Artificial Intelligence
Nekopoi APK 2025 free lastest update
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
CHAPTER 2 - PM Management and IT Context

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 ïŹles 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 ïŹles. ‱ Images in the metadata-rich DICOM format may be converted to NIfTI semi-automatically using as much information from the DICOM ïŹles 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 ïŹle is a collection of ïŹelds 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 ïŹle. ‱ There is no ïŹxed number of bytes for a DICOM header. ‱ The ïŹnal (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 ïŹle ‱ 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 ïŹve 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 ïŹles 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-ïŹ‚y ‱ 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 ïŹles, the “.hdr” and “.img” ïŹles, that contain information about the acquisition and the acquisition itself, respectively. The ANALYZE Format .hdr = 348-byte binary ïŹle of header information .img = binary ïŹ‚at ïŹle 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 ïŹle “.nii” ‱ Re-organization of the 348-byte ïŹxed 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.ïŹle(), 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 ïŹles 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 ïŹles. ‱ Images in the metadata-rich DICOM format may be converted to NIfTI semi-automatically using as much information from the DICOM ïŹles 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