New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 0.3.0 #25

Merged
merged 39 commits into from May 28, 2018

Conversation

Projects
None yet
2 participants
@Lestropie
Copy link
Collaborator

Lestropie commented May 25, 2018

Various changes that have been accumulating over time:

  • Updated versions of various software dependencies.

  • FreeSurfer's recon-all script will be run multi-threaded if appropriate.

  • Additional parcellation schemes.

  • Non-linear registration to MNI template for volumetric parcellations.

  • Better control of the amount of output files provided by the script via option --output_verbosity. Also additional non-critical files are generated when this verbosity is high.

  • Use combination of N4 and ROBEX for T1 brain extraction.

  • Added standardised BIDS Apps option --skip-bids-validator.

  • References now appear in command help page.

  • Support for new capabilities of FSL eddy command.

  • Option --debug will place the script temporary directory in the output folder, so that if the script fails, its contents can be investigated.

Lestropie added some commits Aug 30, 2017

Bunch of changes in preparation for 0.3.0
- Install TIFF and FFTW libraries for newer MRtrix3 capabilities.
- Update FreeSurfer to version 6.0.0.
- Remove unring.a64, and instead use new MRtrix3 command mrdegibbs.
- Don't erase participant-level output directory path until the function has completed; but do issue a warning initially if the output directory already exists.
- Add support for SRI24 atlas with LPBA40 parcellation.
- For multi-shell data, produce RGB volume of MSMT-CSD tissue decomposition.
- Automatic calculation of number of streamlines to generate more accurately mimics described heuristic.
- Generate a super-resolution TDI.
- Generate a mean streamline length weighted connectome.
- Produce edge exemplar streamlines and smooth parcel meshes that can be subsequently used in mrview's connectome toolbar.
- New command-line option --output_verbosity controls the proportion of files that will be written to the output directory; 2 is the default, 1 writes only those data crucial for the group-level connectome normalisation, 3 writes all plausibly useful data (including the large tractogram file).
- Group-level analysis will use brain mask from participant-level analysis if it was written to the output directory.
- Edit file "version" so that this is appropriately reported in the help page.
Fix group-level analysis
DWI .json file was omitted from participant-level analysis output since it does not contain any useful information. However the group-level analysis was still checking for the presence of this file, despite not actually using it.
Fixes for Freesurfer multi-threading
Include required license file for FreeSurfer 6.0.0.
Fix app.nthreads having been renamed to app.numThreads in MRtrix3.
Construct symbolic links for FreeSurfer
It appears as though recon-all searches for the subjects 'fsaverage', 'lh.EC_average' and 'rh.EC_average' within the same directory as specified with the -sd command-line option, rather than the SUBJECTS_DIR environment variable.
This change constructs symbolic links within the overridden subject directory so that recon-all finds the files it searches for.
New parcellation: perry512
Other minor fixes:
- Generate an RGB-coloured parcellation image and write it to output if verbosity is 3.
- Fix errors in tckgen and connectome2tck calls.
- Write 5TT visualisation file to output for verbosity of 2 or 3.
New approach to T1 brain extraction
If available, use a combination of N4 and ROBEX to perform bias field correction and brain extraction. If these two commands are not available, revert to using fsl_anat to perform these two tasks.
Also, regardless of the commands used here, set the strides of the output images to be identical to the input T1 image.
Revert images to standaard strides when writing output images
Also fixed an issue with writing the DWI brain mask due to improper placement of bracket.
More changes for version 0.3.0
- By default, use ROBEX for T1 brain extraction. Fall back to FSL fsl_anat script if ROBEX is not installed.
- Add more console output announcing the purpose of each command / block of commands.
- Fix non-generation of RGB parcellation image.
Various changes
- Download 5.0.11 version of eddy in connectome construction.
- Perform slice-to-volume correction in eddy when possible (note that this requires the CUDA version of eddy to be installed, and therefore will not be possible within the container environment, only when the script is used as a stand-alone).
- Update MRtrix3 installation to a version just prior to 3.0_RC3.
- -parcellation option: New choice hcpmmp1, which uses projection of the HCP multi-modal parcellation on the FreeSurfer average surface.
- Permit input DWI to not have a corresponding JSON file if the -preprocessed option is specified.
- Elaborate a little on some common error messages.
- Re-order some processing steps: Now that dwi2response dhollander is used in all circumstances, and hence response function estimation is not dependent on a 5TT image, perform all DWI-specific processing before commencing any processing steps on the T1 image.
- Fix image.Header.stride() -> image.Header.strides(), as well as various uses of -strides command-line option (less critical).
- Remove explicit setting of tracking cutoff threshold following revision of default threshold in main MRtrix3 repository.
References update
- Added missing Perry et al. 2017 reference to readme.
Added app.cmdline.addCitation() calls so that reference list appears in script help page.
Fix registration to SRI24 atlas
Note however that the parcellation provided with this atlas has quite poor overlap with GM in subject space, and therefore connectomes constructed using this atlas may perform quite poorly with respect to success of streamline assignment to parcels; indeed I might even remove this atlas completely...
Updates to Dockerfile
- Use Ubuntu 18.04 rather than 14.04
- Split installation of multiple packages across multiple lines for better readability
- Update to MRtrix version 3.0_RC3.
Volume-based parcellation changes
- New parcellations: craddock200 and craddock400.
- Rename 'sri24' parcellation to 'lpba40'.
- Simplify code relating to locating and testing presence of atlas files, especially when combined with use of the -atlas-path option.
- Fix use of non-linear mode in mrhistmatch command for performing intra-subject T1-DWI registration due to change of command interface in MRtrix 3.0_RC3 update.
- Use new linear histogram matching feature of mrhistmatch in MRtrix 3.0_RC3 for subject-template registration.
--debug in container mode: Move temporary directory
When the script is run with debug mode enabled within a container environment, place the script temporary directory within the output directory, so that intermediate files are not lost if the container is destroyed on script failure.

Lestropie added some commits May 16, 2018

Rename Freesurfer parcellations
- 'fs_2005' -> 'desikan'
- 'fs_2009' -> 'destrieux'
This is more in line with newer added parcellations, where first author surnames are frequently used.
Fix identification of FSL flirt executable for Craddock parcellations
Also various comments throughout the script regarding pending modifications.
Changes to volumetric-based parcellations
- Removed SRI24 template and LPBA40 parcellation from container, script and documentation. This parcellation was found to not encapsulate many sulci in the posterior half of the brain, which would result in erroneous connectome quantification.
- Perform non-linear registration to MNI template in order to transform volumetric parcellations to subject space. This currently uses FSL tools, despite introduction of linear histogram matching tools in MRtrix 3.0_RC3, as poor behaviour was sometimes observed with mrregister.
Adjust NeuroDebian installation
- Change apt-key keyserver, as pool.sks-keyservers.net would result in 'gpg: keyserver receive failed: Cannot assign requested address'.
- Revert to 17.10 'artful' list, since the 18.04 'bionic' list is not properly available with the adjusted keyserver.
Changes to volumetric parcellation registration
- By default, use ANTS for registration of subject T1 image to MNI template.
- New command-line option --template_reg allows user to choose which registration software will be used for regisration of T1 to template.
- Use MNI 2mm template rather than 1mm.

@Lestropie Lestropie self-assigned this May 25, 2018

Lestropie added some commits May 25, 2018

Rename run.py to mrtrix3_connectome.py
This should not affect container-based usage of the script in any way, but will be more convenient for anyone who downloads the script for standalone usage.
Don't use list input to file.delTemporary()
This functionality was added in a different branch of MRtrix3, and is not supported in 3.0_RC3.

@Lestropie Lestropie merged commit eaaa2ae into master May 28, 2018

1 check passed

ci/circleci Your tests passed on CircleCI!
Details
@Lestropie

This comment has been minimized.

Copy link
Collaborator

Lestropie commented May 28, 2018

@chrisfilo: Version 0.3.0 is now up on Docker Hub; feel free to host on OpenNeuro. Changes from 0.2.2 are described in this PR.

@chrisfilo

This comment has been minimized.

Copy link
Contributor

chrisfilo commented May 28, 2018

Thanks for the info - I deployed the new version on OpenNeuro.

@Lestropie

This comment has been minimized.

Copy link
Collaborator

Lestropie commented May 28, 2018

@chrisfilo: Is the repo information listed on Docker Hub specified via copy-and-paste, rather than being generated automatically based on the repository's README.md file? It's currently not reflecting the updated contents of that file, and I don't appear to have any kind of admin access to the repository on Docker Hub.

@chrisfilo

This comment has been minimized.

Copy link
Contributor

chrisfilo commented May 28, 2018

@Lestropie

This comment has been minimized.

Copy link
Collaborator

Lestropie commented May 29, 2018

"lestropie" (no caps) 👍

@chrisfilo

This comment has been minimized.

Copy link
Contributor

chrisfilo commented May 29, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment