Releases: Medical-Image-Analysis-Laboratory/mialsuperresolutiontoolkit
MIAL Super-Resolution Toolkit v2.1.0
Medical Image Analysis Laboratory Super-Resolution ToolKit 2 (MIALSRTK2) consists of a set of C++ and Python processing and workflow tools necessary to perform motion-robust super-resolution fetal MRI reconstruction in the BIDS Apps framework.
This corresponds to the first major release of MIALSRTK 2 ✨✨✨
What's changed
New features
-
Computation of high resolution segmentation maps from low-resolution segmentations -
do_reconstruct_labels
option. -
Added an optional super-resolution reconstruction assessment stage where the SR reconstruction is compared to a provided high resolution ground truth image -
do_srr_assessment
option. -
Added the possibility to re-orient the SR reconstruction into the anatomical planes defined by the spatio-temporal atlas of Gholipour et al. (2017) used in NiftyMIC -
do_anat_orientation
option.
Minor changes
-
Improved flexibility of the pipeline. Added several options to be given in the config to facilitate various experiments. Details are available in the documentation
skip_preprocessing
allows to directly run registration and TV reconstruction without pre-processing.--run_type
:sr
(default) orpreprocessing
. Allows to run only preprocessing.
-
Improved computational workflow.
- Added an option to perform reconstruction using mulitple TV parameters efficiently, without needing to register the image several times.
- Added a reduction of the field-of-view at the beginning of pre-processing to accelerate computations.
-
Output organisation.
- Creation of various subworkflows for a clearer view at the processing graph.
- Improved the naming of outputs of pymialsrtk to be BIDS compliant.
-
User-friendliness.
- Given a subject, a run that fails will immediately crash and move to the next subject, instead of silently failing all modules. The message will be recorder and output at the end of the pipeline. This makes error tracking easier throughout the pipeline.
- Reports were updated to display directly the image of the SR reconstruction rather than the processing graph.
More...
Please check pull request 200 for more change details and development discussions.
Full Changelog: v2.1.0...v2.0.3
MIAL Super-Resolution Toolkit v2.0.3
Medical Image Analysis Laboratory Super-Resolution ToolKit 2 (MIALSRTK2) consists of a set of C++ and Python processing and workflow tools necessary to perform motion-robust super-resolution fetal MRI reconstruction in the BIDS Apps framework.
This corresponds to the third release of MIAL Super-Resolution Toolkit 2 🎄 🌍✨
What's changed
New features
-
You can now be aware about the adverse impact of your processing on the environment 🎄🌍✨!
A new
--track_carbon_footprint
option has been added to themialsuperresolutiontoolkit_docker
andmialsuperresolutiontoolkit_singularity
python wrappers of the BIDS App, which will usecodecarbon <https://codecarbon.io/>
_ to estimate the amount of carbon dioxide (CO2) produced to execute the BIDS App.Results are saved in
<bids_dir>/code/emissions.csv
. -
Functions
get_emission_car_miles_equivalent
andget_emission_tv_time_equivalent
that convert the CO2 emission in terms of (i) kms traveled by an average car and (ii) time of watching a 32-inch screen have been added topymialsrtk.interfaces.util
module.
More...
Please check pull request 113 for more change details and development discussions.
MIAL Super-Resolution Toolkit v2.0.2
Medical Image Analysis Laboratory Super-Resolution ToolKit 2 (MIALSRTK2) consists of a set of C++ and Python processing and workflow tools necessary to perform motion-robust super-resolution fetal MRI reconstruction in the BIDS Apps framework.
This corresponds to the second release of MIAL Super-Resolution Toolkit 2.
What's changed
New feature
-
pymialsrtk
enables to fix the maximal amount of memory (in Gb) that could be used by the pipelines at execution with the--memory MEMORY_Gb
option flag.
(See pull request 92). -
pymialsrtk
generates a HTML processing report for each subject in
sub-\<label>/report/sub-\<label>.html
. It includes the
following:- Pipeline/workflow configuration summary
- Nipype workflow execution graph
- Link to the processing log
- Plots for the quality check of the automatic reordering step based on the motion index.
- Three orthogonal cuts of the reconstructed image
- Computing environment summary
Major change
- The method
pymialsrtk.postprocess.binarize_image()
has been modified and encapsulated in a new interface calledpymialsrtk.postprocess.BinarizeImage
.
Python update
- From
3.6.8
to3.7.10
New package
- pandas
1.1.5
- sphinxcontrib-apidoc
0.3.0
(required to build documentation) - sphinxcontrib-napoleon
0.7
(required to build documentation)
Package update
- traits from
5.1.2
to6.3.0
- nipype from
1.6.0
to1.7.0
- nilearn from
0.7.1
to0.8.1
- numpy from
1.16.6
to1.21.3
- scikit-learn from
0.20
to1.0.1
- scikit-image from
0.14
to0.16.2
Bug fix
-
Correct the filename of the high-resolution brain mask generated by the data sinker in
mialsrtk-<variant>/sub-<label>/anat
.
(See pull request 92) -
mialsrtkImageReconstruction
updates the reference image used for slice-to-volume registration using the high-resolution image reconstructed by SDI at the previous iteration. -
The following Sphinx extension packages were added to the conda
environment, that were required if one wish to build the
documentation locally:- sphinxcontrib-apidoc
0.3.0
- sphinxcontrib-napoleon
0.7
- sphinxcontrib-apidoc
Note
It was not possible to update the version of tensorflow for the moment. All versions of tensorflow greater than 1.14 are in fact compiled with a version of GCC much more recent than the one available in Ubuntu 14.04. This seems to cause unresponsiveness of the preprocess.BrainExtraction
interface node which can get stuck while getting access to the CPU device.
Software development life cycle
- Use PEP 8 Speaks, a GitHub app to automatically review Python code style over Pull Requests. Configuration described by
.pep8speaks.yml
More...
Please check main pull requests 70 and 110 for more change details and development discussions.
Full Changelog: v2.0.1...v2.0.2
MIAL Super-Resolution Toolkit v2.0.1
Version 2.0.1
Date: December 24, 2020
Merry Christmas from the MIASRTK team 🎁 🎄!
This corresponds to the release of MIAL Super-Resolution Toolkit 2.0.1, that includes in particular full support with Singularity and more! See below.
Major change
- Review setup.py for publication of future release of pymialsrtk to PyPI (See pull request 59).
- Review creation of entrypoint scripts of the container for compatibility with Singularity (See pull request 60).
- Use MapNode for all interfaces that apply a processing independently to a list of images (See pull request 68).
- Use the nipype sphinx extension to generate API documentation (See pull request 65).
- Review the --manual option flag which takes as input a directory with brain masks (See pull request 51).
New feature
pymialsrtk
enables to skip different steps in the super-resolution pipeline (See pull request 63).- Support of Singularity to execute MIALSTK on high-performance computing cluster (See pull request 60).
pymialsrtk
implements for convenience a Python wrapper that generates the Singularity command line of the BIDS App for you, prints it out for reporting purposes, and then executes it without further action needed (See pull request 61).
Software development life cycle
-
Add test-python-install job to CircleCI to test the creation of the distribution wheel to PyPI and test its installation via pip (See pull request 34).
-
Add deploy-pypi-release job to CircleCI to publish the package of a new release to PyPI (See pull request 59).
-
Add
build-singularity
,test-singularity
,deploy-singularity-latest
, anddeploy-singularity-release
jobs in CircleCI to build, test and deploy a Singularity image of MIALSRTK to Sylabs.io (See pull request 34). The tests includes:- Test 03: Run BIDS App on the sample data/ BIDS dataset with the
--manual_masks
option without code coverage. - Test 04: Run BIDS App on the sample data/ BIDS dataset with automated brain extraction (masking) without code coverage.
- Test 03: Run BIDS App on the sample data/ BIDS dataset with the
More...
Please check pull request 53 for more change details and development discussions.
Contributors
MIAL Super-Resolution Toolkit v2.0.0
Version 2.0.0
Date: November 25, 2020
This corresponds to the first release of the second version of the MIAL
Super-Resolution Toolkit, which has evolved massively over the last
years in terms of the underlying codebase and the scope of the
functionality provided, following recent advances in standardization of
neuroimaging data organization and processing workflows.
Major changes
- Adoption of the Brain Imaging Data Structure
standard for data organization and
the sample dataset available in data/ has been modified accordingly.
(See BIDS and BIDS App standards <cmpbids> for more details) - MIALSRTK is going to Python with the creation of the
pymialsrtk
workflow library which extends the Nipype dataflow
library with the
implementation of interfaces to all C++ MIALSRTK tools connected in
a common workflow to perform super-resolution reconstruction of
fetal brain MRI with data provenance and execution detail
recordings. (See API Documentation <api-doc>) - Docker image encapsulating MIALSRTK is distributed as a BIDS App, a
standard for containerized workflow that handles BIDS datasets with
a set of predefined commandline input argument. (See
BIDS App Commadline Usage <cmdusage> for more details) - Main documentation of MIALSRTK is rendered using readthedocs at
https://mialsrtk.readthedocs.io/.
New feature
-
pymialsrtk
implements an automatic brain extraction (masking)
module based on a 2D U-Net (Ronneberger et al. [Ref1]_) using the
pre-trained weights from Salehi et al. [Ref2]_ (See pull request
4).
It is integrated in the BIDS App workflow by default. -
pymialsrtk
implements a module for automatic stack reference
selection and ordering (masking) based on the tracking of the brain
mask centroid slice by slice (See pull request
34)
* pymialsrtk
implements for convenience a Python wrapper that
generates the Docker command line of the BIDS App for you, prints it out
for reporting purposes, and then executes it without further action
needed (See pull request
47)
Software development life cycle
-
Adopt CircleCI for continuous integration testing and run the
following regression tests:- Test 01: Run BIDS App on the sample data/ BIDS dataset with
the--manual_masks
option. - Test 02: Run BIDS App on the sample data/ BIDS dataset with
automated brain extraction (masking).
- Test 01: Run BIDS App on the sample data/ BIDS dataset with
-
Use Codacy to support code reviews and
monitor code quality over time. -
Use coveragepy
in CircleCI during regression tests of the BIDS app and create code
coverage reports published on our Codacy project
page.
More...
Please check pull request 2, pull request 4, pull request 34, pull request 39, pull request 47
for more change details and development discussions.