Changes

Version 2.0.3

Date: December 24, 2021

This corresponds to the release of MIAL Super-Resolution Toolkit 2.0.3, that includes in particular the following changes.

New feature

  • You can now be aware about the adverse impact of your processing on the environment :raw-html:`&#x1F30D;`:raw-html:`&#x2728;`:raw-html:`&#127876;`! A new --track_carbon_footprint option has been added to the mialsuperresolutiontoolkit_docker and mialsuperresolutiontoolkit_singularity python wrappers of the BIDS App, which will use codecarbon 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 and get_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 to pymialsrtk.interfaces.util module.

More…

Please check pull request 113 for more change details and development discussions.

Version 2.0.2

Date: November 22, 2021

This corresponds to the release of MIAL Super-Resolution Toolkit 2.0.2, that includes in particular the following changes.

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

    (See pull requests 97, 102, and 103).

Major change

  • The method pymialsrtk.postprocess.binarize_image() has been modified and encapsulated in a new interface called pymialsrtk.postprocess.BinarizeImage.

Python update

  • From 3.6.8 to 3.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 to 6.3.0

  • nipype from 1.6.0 to 1.7.0

  • nilearn from 0.7.1 to 0.8.1

  • numpy from 1.16.6 to 1.21.3

  • scikit-learn from 0.20 to 1.0.1

  • scikit-image from 0.14 to 0.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

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 pull request 70 and pull request 110 for more change details and development discussions.

Version 2.0.1

Date: December 24, 2020

This corresponds to the release of MIAL Super-Resolution Toolkit 2.0.1, that includes in particular the following changes.

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, and deploy-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.

More…

Please check pull request 53 for more change details and development discussions.

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 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)

  • 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 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.

Ref1

Ronneberger et al.; Medical Image Computing and Computer Assisted Interventions, 2015. (link to paper)

Ref2

Salehi et al.; arXiv, 2017. (link to paper)

  • 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).

    See CircleCI project page.

  • 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 and pull request 4 for more change details and development discussions.