Attention: Confluence is not suitable for the storage of highly confidential data. Please ensure that any data classified as Highly Protected is stored using a more secure platform.
If you have any questions, please refer to the University's data classification guide or contact ict.askcyber@sydney.edu.au
Command line client XNAT-Utils (Artemis)
XNAT Utils (https://pypi.org/project/xnatutils/) is a collection of command-line tools/Python scripts for conveniently downloading, uploading and listing data to/from/on XNAT. The available tools are:
xnat-get - download scans and resources
xnat-put - upload scans and resources (requires write privileges for project you would like to upload to)
xnat-ls - list projects/subjects/sessions/scans
xnat-rename - renames an XNAT session
xnat-varget - set a metadata field (including "custom variables")
xnat-varput - retrieve a metadata field (including "custom variables")
For detailed help information on each tool pass the --help
or -h
option.
Loading environment module on Artemis
Before you can use xnat-utils on Artemis you will need to load the xnatutils
environment module
(artemis)$ module load xnatutils
NB: This module also loads the Python, Dcm2niix and MRtrix modules
xnat-get
The xnat-get
command is used to download resources from an XNAT instance from the command line (e.g. on Artemis). It is a flexible tool that can used to download resources specified in XML files generated by the XNAT UI or match sessions and scans using wildcard patterns.
For in-depth help pass the --help
or -h
flag to xnat-get
(artemis)$ xnat-get --help
Authentication
The first time you use xnat-get
you will be prompted to enter the URL of the XNAT server you would like to download from (e.g. https://xnat.sydney.edu.au) and your username and password. If you have a University of Sydney “unikey” that is linked to your XNAT account use this for your username and password. xnat-get
will generate a user token and store it in a hidden file in your user directory, ~/.netrc
in the following format (with permissions set to 600 on the file)
machine xnat.sydney.edu.au
user <your-alias-token>
password <your-alias-secret>
If you don't want these credentials stored (e.g. if you are using an insecure account), then pass the --no_netrc
(or -n
) option to xnat-get
. The token will last for two days, after which you will be prompted to reenter your username and password.
If you don’t have a “unikey” account and instead use the Australian Authentication Federation to login to XNAT, you will need to generate this ~/.netrc
file yourself after generating a token in the XNAT UI
NB: make sure that the permissions on the ~/.netrc
file are 600 otherwise it won’t work.
Using XML downloaded from UI
If you have downloaded an XML file from the “Download Images” page with the list of resources you would need to download, e.g.
then you first need to copy the XML file to Artemis
Then you can use xnat-get to download all the resources listed within it
Specifying sessions and scans to download from command line
Alternatively you can specifiy the resources you want to download without using the UI. For example, to download all scans in the sessions 556342B DSAD_2010
in the project with ID “001”
If you would like to download data from a range of sessions you can use a (regular expression) search patterns. For example the following command
will download the first imaging session of subjects 40000 - 40099 in the project “BCD4”. Note the single quotes around the pattern string, as these stop the '' being interpreted as a filename glob. Please refer to https://docs.python.org/3/library/re.html for the complete regular expression syntax you can use. However, most of the time just need the '.' wildcard to match any string of characters or perhaps '|'
to specify a list of options. For example the following command
will download sessions 1 & 3 for subjects 1, 2, 3 & 9 in project ABC.
By default all scans in the provided session(s) are downloaded to the current working directory unless they are filtered by the provided '--scan' option(s). Both the session name and scan filters can be regular expressions, e.g.
The destination directory can be specified by the --directory
option. Each session will be downloaded to its own folder under the destination directory unless the --subject-dir
option is provided in which case the sessions will be grouped under separate subject directories.
If there are multiple resources for a dataset on an XNAT instance (unlikely) the one to download can be specified using the --format
option, otherwise the only recognised neuroimaging format (e.g. DICOM, NIfTI, MRtrix format).
DICOM files (ONLY DICOM file) name can be stripped using the option --strip_name
or -sn
. If specified, the final name will be in the format 000*.dcm.
Conversion to NIfTI format on the fly
The downloaded images can be automatically converted to NIfTI or MRtrix Image Format (MIF) formats using dcm2niix or mrconvert (if the tools are installed and on the system path) by providing the '--convert_to' option and specifying the desired format.
By default DICOM → NIfTI conversion is performed by Dcm2niix, but mrconvert
can be used instead by passing the --converter
flag