Mbirn: FAQ
What is XNAT?
The eXtensible Neuroimaging Archive Toolkit (XNAT) is a Java-based framework for organizing laboratory data and creating a user interface for accessing that data. XNAT is designed to improve the overall reliability, security and accessibility of laboratory data. Data Storage: XNAT uses a relational database to store metadata and non-image based data. Image data is stored in as flat files within the file system. The database structure is generated by XNAT from XML Schema documents that describe the experimental data. Laboratories may take advantage of pre-existing schemas or generate their own custom schemas. Data Access: Users interact with XNAT-managed data primarily through a secure web application. The web application includes modules for a number of supported data types (e.g. structural MRI, functional MRI). Custom modules can be developed for incorporating additional data. A typical web module includes: experiment listing and reports pages, data entry forms, search tools, and visualization tools. Data from multiple related experiment types (e.g. clinical and imaging data from the same subject) can be joined and downloaded into a spreadsheet using XNAT’s ‘Super Search’ tool.
What isn't XNAT?
XNAT is not an image database. That is, it doesn't store brain images or any other images in a relational database. For brain imaging data, image databases are inefficient and make it difficult to run processing routines on the images. Instead, XNAT maintains information about where image data is stored in a directory-based storage device (e.g. hard drive, RAID). XNAT then manages security, workflow, and visualization of image data. Non-image data (e.g. image metadata, clinical data) is stored in a relational database.
What hardware is required to use XNAT?
- Server for running web application
- Server for running database
- Server for running workflows
- Server for image storage
The servers may be all one machine or distributed across multiple machines. The web application and database servers need not be high-end but are ideally dedicated machines. The workflow and image storage servers are ideally high-end workhorse machines.
What platforms does XNAT run on?
Any operating system that supports Java. It has been tested most thoroughly on Solaris, Mandrake Linux, and Windows XP.
What software is required to use XNAT?
- Apache Jakarta Tomcat 5.0 or higher (download Tomcat)
If using 5.0.30 see bug re: admin page[1]
- Java 1.4.1 or higher (download Java)
- Maven (download Maven)
- M.E.T.A. (Turbine installer) download M.E.T.A
These packages are all free and mostly open source.
Why doesn't M.E.T.A. work?
Apparently, it's due to some licensing conflicts. Before running turbine:deploy, you will need to manually download several jar files and edit the project.xml file in your Maven project directory. Place these jars in your Maven repository:
jdbc 2.0 (download "JDBC 2.0 Optional Package Binary" and rename the jar tojdbc-2.0.jar)
activation 1.0.2 (download the file and rename the jar to activation-1.0.2.jar)
jndi 1.2.1 (download the file and rename the jar to jndi-1.2.1.jar)
Modify this entry in the project.xml file:
- In the entry with groupId = javamail: change the version to 1.3.2
What is XML Schema?
XML Schema [2] is a language for defining the structure and contents of an XML document. An XML instance document can be validated against a target schema to ensure that is meets the schema definition.
XNAT uses XML Schema to define the data that will be represented within a given implementation. XML Schema was chosen because many scientific fields have developed standard schemas to describe their data. XNAT thus provides an easy way to database and share data that conform to these standards. And since it's straightforward to model data in XML Schema, XNAT can easily capture custom data types associated with a project.
Wondering what an XML Schema document looks like? Here's a schema used at WashU to capture a simple structural MRI data set and related subject data. Email me (dmarcus@wustl.edu) for a formatted copy. Anyone know how to upload a text file into Wiki?
How does XNAT security work?
Can I get a sample XNAT implementation?
Can I get sample image data?