30 likes | 257 Views
Jakarta Turbine. Actions. Screens. Display. XNAT Transformer. XNAT-managed Data. Unmanaged Data. Clinical evaluation. Psych. assessment. Integrated Data Archive. Secure User Interface. Processed images. Raw images. Genetic data.
E N D
Jakarta Turbine Actions Screens Display XNAT Transformer XNAT-managed Data Unmanaged Data Clinical evaluation Psych. assessment Integrated Data Archive Secure User Interface Processed images Raw images Genetic data XNAT: A SOFTWARE FRAMEWORK FOR MANAGING NEUROIMAGING LABORATORY DATA D.S. Marcus1,2, T.R. Olsen1, M. Ramaratnam2, R.L. Buckner1,2 Howard Hughes Medical Institute1, Washington University in St. Louis2 INTRODUCTION XNAT in operation The XNAT schema defines experimental data and is used to generate the archive components. XNAT manages a terabyte-sized neuroimaging archive at Washington University. Over 1800 imaging sessions from the University’s Alzheimer’s Disease Research Center, Conte Center, and Cognitive Neuroscience Laboratory have been entered, vetted, processed, and shared in the archive. Data include: structural MRI images, DTI, research radiological evaluations, white matter integrity assessments, automatic & manual volumetric measures, and normalized whole brain volumes. Neuroimaging research generates large quantities of raw, processed, and derived image data. Studies often include related non-image data, such as demographics, genetics and clinical measures, as well. Maintaining the integrity, organization, security, and accessibility of such data requires substantial software infrastructure. Additionally, informatics tools are needed for exploring and mining the data. We are developing a toolkit – the Extensible Neuroimaging Archive Toolkit (XNAT) – based on industry standards to support these requirements. XNAT uses XML Schema to define experimental data. XNAT automatically builds a database backend for storing data, while an accompanying web application allows users to archive, manage, search, and visualize the data. Database definition CREATE 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 Java classes <?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"> … 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(); Data file format <?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 Web app <!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"> … ‘Quick Search’ locates subjects and displays a dynamic summary report. ‘Add experiment’ link displays data entry forms. METHODS AND MATERIALS XNAT utilizes a number of supporting technologies and software packages. In all cases, open source and/or freely available libraries have been selected to ensure that XNAT is a zero cost solution. The specific packages are indicated below. A number of aspects of the XNAT architecture are in beta or earlier production. XML Schema: XNAT schemas follow the XML Schema 1.0 specification. Of note, XNAT utilizes xs:appinfo tags to incorporate custom application directives. XNAT includes a base schema that includes elements for representing common neuroimaging data. The base schema can be extended to capture additional data types. Data storage: XNAT operates on data stored in a Postgres relational database. XNAT automatically generate the database tables from supplied XML Schemas. XML instance documents can be loaded into the database using XNAT’s command line tools. Alternatively, data can be entered via custom forms within XNAT’s web applications. All image data are stored in binary files. The base XNAT schema includes elements detailing raw and processed image files and their locations on the server. Web application: The web application uses the Jakarta Turbine platform , which provides a user authentication model, data object generation, and Model-View-Control development architecture. The Velocity templating language is used for creating web pages. PDF generation: Dynamic PDF documents are generated by transforming XML data documents into XSL-FO documents which are then passed through Apache’s FOP engine. Image viewing: The XNAT’s online image viewer is a custom Java applet based on ImageJ. Image data is transported from 8-bit image files to the applet using HTTP tunneling. Command line tools: XNAT’s command line tools are written in Perl (using the XML::DOM and DBI modules for XML and database operations) and Java. The XNAT architecture includes clients, middleware, and data storage. Client applications Experiment links generate reports and ‘action’ lists tailored to user and data type. XDAT engine XDAT API XNAT Schemas Form handler Search engine List generator Report generator Database generator Dynamically-generated PDF documents serve as the hardcopy medium. XFT Data store Relational database Data files The web-based image viewer allows users to view raw and processed images. XNAT is a framework for laboratory data management and sharing XNAT improves data security and data integrity. XNAT SUMMARY XNAT provides laboratories with a framework for managing their data. Experimental protocols can be captured using XNAT’s default schema or a custom schema. The schema is then transformed into a number of customized tools for quality control, processing, and exploring. XNAT’s extensible design allows laboratories to quickly capture new experimental protocols by simply appending their schema documents, ensuring the long term maintainability of their data archive. • Data is easily lost and mishandled. • Data sharing is difficult. • No way to link related data types • Difficult to control user access. • Provides a single, integrated data store. • Enables quality control measures. • Provides links between related data types. • Includes online management and exploration tools. • Provides user access control. • Password protected access. • Create, read, update, delete privileges granted by lab & experiment type. • Auto-logoff from website. • Data entry validation. • Automated processing pipeline. • Database backup to XML. • Automatic quality control email reports. This work was supported by NIH-BIRN,NIA (AG00030, AB03991), NIMH (MH57506), the Alzheimer’s Association, the James S. McDonnell Foundation, and the Howard Hughes Medical Institute. Contact: dmarcus@wustl.edu