Usage¶
usage: xnat_downloader [-h] [-c CONFIG] [-i INPUT_JSON]
xnat_downloader downloads xnat dicoms and saves them in BIDs compatible
directory format
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG login file (contains user/pass info)
Required arguments:
-i INPUT_JSON, --input_json INPUT_JSON json file defining inputs for this script.
json format¶
The json file has multiple fields specifying where and how the data are downloaded from xnat.
- destination: string
(required) The absolute path to the output base directory of the BIDS dataset
- project: string
(required) The name of the project on xnat
- server: string
(required) The base URL to the xnat server (e.g. “https://central.xnat.org”)
- subjects: list
(optional) The subjects you wish to download from xnat. Use the subject names as they are seen on xnat.
- sub_dict: dictionary
(optional) (non-BIDS) If you want to change the subject label that is not represented in the xnat subject name
- session_labels: list
(optional) (non-BIDS) If you want to replace the names of the sessions on xnat with your own list of scans.
Warning
this will not behave as expected if the subject on xnat has a missing “middle” session or an extra session.
- scan_labels: list
(optional) a list of the scans you want to download (if you don’t want to download all the scans).
- num_digits: int
(optional) an integer indicating how many digits the subject number should have. For example if the subject number on xnat is 10, then setting num_digits to 2 will not change the subject 10, but if num_digits was set to 3 then subject 10 will be written as 010.
- scan_dict: dictionary
(conditionally required) (non-BIDS) required if your dicoms are not stored in a BIDS format on xnat. The keys to the dictionary are scan names as they are seen on xnat (e.g. “SAG FSPGR BRAVO”), and the values are the associated reproin (BIDS-ish) name for the scan (e.g. “anat-T1w”).
example json¶
Once installed and the json file is configured, the final step is to call the command.
locally installed: (python2 only)
xnat_downloader -i /path/to/json/file.json
via docker:
docker run \
-v /path/to/out:/out \
-v /path/to/json/:/json \
jdkent:xnat_downloader \
-i /json/file.json
Note: when calling via docker, the destination location should be specified relative to where the path is in the docker container, not on your machine.