extensible neuroimaging archive toolkit (xnat) washington university neuroinformatics group

16
eXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

Upload: roland-richard

Post on 11-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

eXtensible Neuroimaging Archive Toolkit (XNAT)

Washington University Neuroinformatics Group

Page 2: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

What 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.

Page 3: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

Why do we need XNAT (or something like it)?

Raw images

Raw images

MetadataMetadata

AssessmentsAssessments

Demographics

Demographics

Processed images

Processed images

Deriveddata

Deriveddata

Page 4: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

Why do we need XNAT (or something like it)?

Integrated Data Store Secure User Interface

Assessments

Subject MR Session

Raw Processed

Derived

Demographics Metadata

Page 5: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

What is XML Schema?

XML Schema is a language for describing the structure and contents of an XML document.

<Class>Bird</Class> <xs:element name=“Class">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:enumeration value="Bird"/>

<xs:enumeration value="Mammal"/>

<xs:enumeration value="Reptile"/>

<xs:enumeration value="Fish"/>

</xs:restriction>

</xs:simpleType>

</xs:element>

XML XML Schema

Page 6: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

XML 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…

Page 7: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

Data Documents

Welcome to XNAT

XNATGenerator

<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xnat="xnat.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:element name="Database"><xs:annotation><xs:appinfo><xnat:dbinfo database.name="CNDA" database="MYSQL"/></xs:appinfo></xs:annotation></xs:element><xs:element name="wm_mod_scheltens"><xs:complexType><xs:sequence><xs:element ref="experiment"/><xs:element name="session_id" type="xs:string"/><xs:element name="assessment">…

<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xnat="xnat.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:element name="Database"><xs:annotation><xs:appinfo><xnat:dbinfo database.name="CNDA" database="MYSQL"/></xs:appinfo></xs:annotation></xs:element><xs:element name="wm_mod_scheltens"><xs:complexType><xs:sequence><xs:element ref="experiment"/><xs:element name="session_id" type="xs:string"/><xs:element name="assessment">…

XML SchemaCRATE 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)

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)

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();

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();

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">

$page.setTitle("CNDA -- Integrating the Neurouniverse")$page.setLinkColor($ui.alink)$page.setVlinkColor($ui.vlink)

<html><body>

<table border="0"><tr> <td bgcolor="#336600"> …

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">

$page.setTitle("CNDA -- Integrating the Neurouniverse")$page.setLinkColor($ui.alink)$page.setVlinkColor($ui.vlink)

<html><body>

<table border="0"><tr> <td bgcolor="#336600"> …

Database Schema

<?xml version="1.0" encoding="UTF-8"?><session id="050202_vc1000"> <subject map_num="0001" lab_id="0001"> <age>78</age> <gender>male</gender> <handedness>right</handedness> <cohort>ADRC</cohort> </subject> <session_info> <acq_date>5/1/2002</acq_date> <pi>Randy Buckner</pi> <operator>Dan

<?xml version="1.0" encoding="UTF-8"?><session id="050202_vc1000"> <subject map_num="0001" lab_id="0001"> <age>78</age> <gender>male</gender> <handedness>right</handedness> <cohort>ADRC</cohort> </subject> <session_info> <acq_date>5/1/2002</acq_date> <pi>Randy Buckner</pi> <operator>Dan

Java ClassesHTML Pages

Page 8: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

This XML schema structure…

Page 9: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

…becomes this database table

CREATE TABLE subjectData_g (ID VARCHAR(50) , birthDate DATE , deathDate DATE , name VARCHAR(50) , sex VARCHAR(50) , species_commonName VARCHAR(50) , species_latinName VARCHAR(50) , species_strain VARCHAR(50) , species_description VARCHAR(50) , subjectData_g_id INTEGER NOT NULL AUTO_INCREMENT , PRIMARY KEY (subjectData_g_id) );

Page 10: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

More complicated elements…

Page 11: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

…yield more complicated tables

CREATE TABLE studylevel_g (projectlevel_g_id INTEGER , subjectlevel_g_id INTEGER , visitlevel_g_id INTEGER , studyData_g_id INTEGER , levelcommon_g_id INTEGER , studylevel_g_id INTEGER NOT NULL AUTO_INCREMENT , PRIMARY KEY (studylevel_g_id) );

ALTER TABLE studylevel_g ADD KEY fk_projectlevel_g_id (projectlevel_g_id);

ALTER TABLE studylevel_g ADD FOREIGN KEY (projectlevel_g_id) REFERENCES projectlevel_g(projectlevel_g_id) ON DELETE SET NULL;

ALTER TABLE studylevel_g ADD KEY fk_subjectlevel_g_id (subjectlevel_g_id);

ALTER TABLE studylevel_g ADD FOREIGN KEY (subjectlevel_g_id) REFERENCES subjectlevel_g(subjectlevel_g_id) ON DELETE SET NULL;

ALTER TABLE studylevel_g ADD KEY fk_visitlevel_g_id (visitlevel_g_id);

ALTER TABLE studylevel_g ADD FOREIGN KEY (visitlevel_g_id) REFERENCES visitlevel_g(visitlevel_g_id) ON DELETE SET NULL;

ALTER TABLE studylevel_g ADD KEY fk_studyData_g_id (studyData_g_id);

ALTER TABLE studylevel_g ADD FOREIGN KEY (studyData_g_id) REFERENCES studyData_g(studyData_g_id) ON DELETE SET NULL;

ALTER TABLE studylevel_g ADD KEY fk_levelcommon_g_id (levelcommon_g_id);

ALTER TABLE studylevel_g ADD FOREIGN KEY (levelcommon_g_id) REFERENCES levelcommon_g(levelcommon_g_id) ON DELETE SET NULL;

Page 12: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

XNAT is a three-tiered architecture

Raw Image Data

Processed Images

XML Data Files

Data Tables

Management Tables

SQL Database

Flat file system

Data Store

XNATEngine

XNAT Schema

XNAT Schema

Web server

User Interface

Command line

Web browser

Page 13: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

The web application emphasizes usability and quality control Clean user interface Search and download, no statistics. Quality control

Page 14: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

Security 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 Buckner’s fMRI data.”)

Signed approval on new user accounts and changes to existing accounts.

Logins, queries, and downloads written to daily log files.

Page 15: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

XNAT is completely open source

All of XNAT’s 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.

Page 16: EXtensible Neuroimaging Archive Toolkit (XNAT) Washington University Neuroinformatics Group

XNAT 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.