Title: eXtensible Neuroimaging Archive Toolkit (XNAT)
1eXtensible Neuroimaging Archive Toolkit (XNAT)
- Washington University Neuroinformatics Group
2What is XNAT?
- An environment for developing experimental data
archives (data store archiving tools). - Data store
- relational database for non-image data
- specified directory structure for image data.
- Archiving tools
- Web application for uploading, entering,
searching, visualizing, and otherwise exploring
data. - Command-line tools for batch handling data.
3Why do we need XNAT (or something like it)?
Assessments
Metadata
Processed images
Derived data
Demographics
Raw images
4Why do we need XNAT (or something like it)?
Assessments
Raw
Processed
Subject
MR Session
Derived
Demographics
Metadata
Secure User Interface
Integrated Data Store
5What is XML Schema?
- XML Schema is a language for describing the
structure and contents of an XML document.
XML
XML Schema
ltClassgtBirdlt/Classgt
ltxselement nameClass"gt ltxssimpleTypegt
ltxsrestriction base"xsstring"gt
ltxsenumeration value"Bird"/gt
ltxsenumeration value"Mammal"/gt
ltxsenumeration value"Reptile"/gt
ltxsenumeration value"Fish"/gt
lt/xsrestrictiongt lt/xssimpleTypegt lt/xselementgt
6XML Schema is the lingua franca for data exchange
- Data exchange requires standard open data
formats. - XML Schema is the language in which these open
formats are defined. - Many fields (e.g. genetics, medicine) have
already implemented XML Schema-based standards. - So an application that automatically archives,
searches, and displays XML Schema-based data
would be really useful
7Welcome to XNAT
Data Documents
Database Schema
Java Classes
HTML Pages
CRATE TABLE table ( name, VARCHAR(50),
idMethod, VARCHAR(50), DEFAULT 'null,
type, VARCHAR(50), ID INT UNSIGNED, NOT NULL
AUTO_INCREMENT, PRIMARY KEY (ID) ) CREATE
TABLE table_column ( name VARCHAR(50)
javaName VARCHAR(50) primaryKey VARCHAR(50)
XML Schema
public class Experiment extends
org.cnl.cnda.om.BaseExperiment implements
Persistent public static final long
MILLIS_IN_DAY 86400000 public static long
getDays(Calendar c1, Calendar c2)
long time1 c1.getTime().getTime()
lt?xml version"1.0" encoding"UTF-8"?gt ltxsschema
xmlnsxnat"xnat.xsd" xmlnsxs"http//www.w3.org/
2001/XMLSchema" elementFormDefault"qualified"
attributeFormDefault"unqualified"gt ltxselement
name"Database"gt ltxsannotationgt ltxsappinfogt ltxna
tdbinfo database.name"CNDA" database"MYSQL"/gt lt
/xsappinfogt lt/xsannotationgt lt/xselementgt ltxsel
ement name"wm_mod_scheltens"gt ltxscomplexTypegt ltx
ssequencegt ltxselement ref"experiment"/gt ltxsele
ment name"session_id" type"xsstring"/gt ltxselem
ent name"assessment"gt
lt!DOCTYPE html PUBLIC "-//W3C//DTD HTML
3.2//EN"gt page.setTitle("CNDA -- Integrating
the Neurouniverse") page.setLinkColor(ui.alink)
page.setVlinkColor(ui.vlink) lthtmlgt ltbodygt ltta
ble border"0"gt lttrgt lttd bgcolor"336600"gt
lt?xml version"1.0" encoding"UTF-8"?gt ltsession
id"050202_vc1000"gt ltsubject map_num"0001"
lab_id"0001"gt ltagegt78lt/agegt
ltgendergtmalelt/gendergt lthandednessgtrightlt/h
andednessgt ltcohortgtADRClt/cohortgt
lt/subjectgt ltsession_infogt
ltacq_dategt5/1/2002lt/acq_dategt ltpigtRandy
Bucknerlt/pigt ltoperatorgtDan
8This XML schema structure
9becomes this database table
10More complicated elements
11yield more complicated tables
12XNAT is a three-tiered architecture
Data Store
User Interface
13The web application emphasizes usability and
quality control
- Clean user interface
- Search and download, no statistics.
- Quality control
14Security is pretty important too
- Password protected login and session timeout.
- Secondary password and IP-address restriction on
most sensitive data. - User access privileges set by data type and meta
data values (e.g. Dan can view but not edit R
Buckners fMRI data.) - Signed approval on new user accounts and changes
to existing accounts. - Logins, queries, and downloads written to daily
log files.
15XNAT is completely open source
- All of XNATs dependencies are open source.
- Turbine (Apache Jakarta) provides a servlet
based framework that allows developers to
quickly build web applications. - ImageJ (NIH) provides the foundation for the
image viewer. - MySQL and PostgreSQL databases are supported.
16XNAT improvements are on the way
- Data quarantine
- Data history
- Direct XML?? Database exchange
- Improved image viewer with subcortical
segmentation and fMRI plugins. - Improved mechanisms for controlling display of
data. - Improved mechanisms for validating user input
from web forms.