Skip to content

Releases: Medical-Image-Analysis-Laboratory/mialsuperresolutiontoolkit

MIAL Super-Resolution Toolkit v2.1.0

06 Feb 13:18
ecd37d5
Compare
Choose a tag to compare

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) or preprocessing. 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

24 Dec 21:20
Compare
Choose a tag to compare

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 the mialsuperresolutiontoolkit_docker and mialsuperresolutiontoolkit_singularity python wrappers of the BIDS App, which will use codecarbon <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 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.

MIAL Super-Resolution Toolkit v2.0.2

22 Nov 18:46
7c0fb17
Compare
Choose a tag to compare

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

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

24 Dec 11:34
Compare
Choose a tag to compare

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

Contributors

MIAL Super-Resolution Toolkit v2.0.0

25 Nov 12:48
Compare
Choose a tag to compare

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

    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, pull request 4, pull request 34, pull request 39, pull request 47
for more change details and development discussions.