SlideShare a Scribd company logo
1 of 19
Download to read offline
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
 
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
 
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
devonpaul
 

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

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
 

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

Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Lisi Hocke
 

Recently uploaded (20)

Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdf
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
 

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