Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

XTOLM is a local bash XNAT-aware console. This documentation provides a use case for exporting data computations in XNAT to an external spreadsheet.

...

Useful for:

  • you develop developing or run running image processing locally in bash shell;using
  • you want to use usin XNAT as data source and/or remote archive in shell scripts;
  • you want to automate automating processing of multiple XNAT sessions and want to report your reporting results in spreadsheets.
  • you want to focus focusing on local script development and minimize minimizing programming effort to interact with XNAT.

...

Online Commands: mostly, load/save scans, resources and metadata as resources.

load_scans <id1>[,...]load scan(s) to DICOM by ID to the processing dir
load_type <type>load scan(s) DICOM of a given type to the processing dir
load_dir <dir1>[,...]load resource dir(s) to the processing dir
load_file <fil1> [fil2..]load resource file(s) to the processing dir
load_workspaceload context variables from XNAT session (stored under unique analysis ID)
save_workspace

save context variables to XNAT session (stored under unique analysis ID)

save_dir <dir>write resource dir to XNAT (overwrites existing)

   

Offline Commands: The purpose is to enable repeated analysis. Each study is loaded into a separate directory and is processed within 'processing context': XNAT subject and experiment label. Each study directory can have DICOM, resource dirs, and some configuration files that store context information. Workspace is defined as all user-defined variables that should be saved as key-value pairs.

set_context <subject> <session>set current context of subject and session
save_vars [var1] [,..] save one or more variables to current context
summary <label>generate a comma-separated summary of existing contexts
help                            list console commands
quit                            quit interactive console

 

Built-in varaiables (online mode only)

xt_serverhttps://my_xnat_server
xt_userxnat_user
xt_pass                       xnat_password
xt_project               xnat_project
xt_subjxnat_subject
xt_sessxnat_experiment

Command Details

set_context: move to another processing dir that corresponds to another XNAT session, and load/init workspace variables for that session. Previously computed variables are loaded using this command.

...

xtolm [options] <script file> [...]

Interactive mode : line-by-line command input.
Offline mode: all code that interacts with XNAT is ignored.
Debug mode:

...

Other commands

rcsv: convert a csv file into a set of bash arrays - can be used in XTOLM to change session context automatically, load specific scans/dirs, etc.
summary: create a summary spreadsheet that aggregates all contexts accross the batch processing session.

XTOLM design features

  • flexible coupling with online XNAT server. The analysis can be saved/loaded from/to XNAT using unique analysis ID. However, completely offline processing is possible (-o mode), when repeated or advanced analyses are required. Context is still saved in session configuration files. The design tolerates the same script in offline mode, ignoring all local<->xnat transactions.
  • repeatability of analysis - helped by re-using saved session context. Modifying the script and re-running is easy.
  • minimal local data structure requirements.

 

Use case

  • Compute whole brain volume using Brain Extraction Tool for all MPRAGE scans in an MRI project in XNAT and save statistics in a spreadsheet. View Use Case.