Skip to content

2.1.0

Compare
Choose a tag to compare
@matthew-brett matthew-brett released this 24 Aug 17:08
· 3273 commits to master since this release
2.1.0

DOI

New feature release for the 2.1 series.

Most work on NiBabel so far has been by Matthew Brett (MB), Michael Hanke (MH)
Ben Cipollini (BC), Marc-Alexandre Côté (MC), Chris Markiewicz (CM), Stephan
Gerhard (SG) and Eric Larson (EL).

References like "pr/298" refer to github pull request numbers.

New features

  • New API for managing streamlines and their different file formats. This
    adds a new module nibabel.streamlines that will eventually deprecate
    the current trackvis reader found in nibabel.trackvis (pr/391) (MC,
    reviewed by Jean-Christophe Houde, Bago Amirbekian, Eleftherios
    Garyfallidis, Samuel St-Jean, MB);
  • A prototype image viewer using matplotlib (pr/404) (EL, based on a
    proto-prototype by Paul Ivanov) (Reviewed by Gregory R. Lee, MB);
  • Functions for image resampling and smoothing using scipy ndimage (pr/255)
    (MB, reviewed by EL, BC);
  • Add ability to write FreeSurfer morphology data (pr/414) (CM, BC, reviewed
    by BC);
  • Read and write support for DICOM tags in NIfTI Extended Header using
    pydicom (pr/296) (Eric Kastman).

Enhancements

  • Extensions to FreeSurfer module to fix reading and writing of FreeSurfer
    geometry data (pr/460) (Alexandre Gramfort, Jaakko Leppäkangas, reviewed
    by EL, CM, MB);
  • Various improvements to PAR / REC handling by Gregory R. Lee: supporting
    multiple TR values (pr/429); output of volume labels (pr/427); fix for
    some diffusion files (pr/426); option for more sophisticated sorting of
    volumes (pr/409);
  • Original trackvis reader will now allow final streamline to have fewer
    points than the number declared in the header, with strict=False
    argument to read function;
  • Helper function to return voxel sizes from an affine matrix (pr/413);
  • Fixes to DICOM multiframe reading to avoid assumptions on the position of
    the multiframe index (pr/439) (Eric M. Baker);
  • More robust handling of "CSA" private information in DICOM files (pr/393)
    (Brendan Moloney);
  • More explicit error when trying to read image from non-existent file
    (pr/455) (Ariel Rokem);
  • Extension to nib-ls command to show image statistics (pr/437) and other
    header files (pr/348) (Yarik Halchenko).

Bug fixes

  • Fixes to rotation order to generate affine matrices of PAR / REC files (MB,
    Gregory R Lee).

Maintenance

  • Dropped support for Pythons 2.6 and 3.2;
  • Comprehensive refactor and generalization of surface / GIFTI file support
    with improved API and extended tests (pr/352-355, pr/360, pr/365, pr/403)
    (BC, reviewed by CM, MB);
  • Refactor of image classes (pr/328, pr/329) (BC, reviewed by CM);
  • Better Appveyor testing on new Python versions (pr/446) (Ariel Rokem);
  • Fix shebang lines in scripts for correct install into virtualenvs via pip
    (pr/434);
  • Various fixes for numpy, matplotlib, and PIL / Pillow compatibility (CM,
    Ariel Rokem, MB);
  • Improved test framework for warnings (pr/345) (BC, reviewed by CM, MB);
  • New decorator to specify start and end versions for deprecation warnings
    (MB, reviewed by CM);
  • Write qform affine matrix to NIfTI images output by parrec2nii (pr/478)
    (Jasper J.F. van den Bosch, reviewed by Gregory R. Lee, MB).

API changes and deprecations

  • Minor API breakage in original (rather than new) trackvis reader. We are now
    raising a DataError if there are too few streamlines in the file,
    instead of a HeaderError. We are raising a DataError if the track
    is truncated when strict=True (the default), rather than a TypeError
    when trying to create the points array.
  • Change sform code that parrec2nii script writes to NIfTI images; change
    from 2 ("aligned") to 1 ("scanner");
  • Deprecation of get_header, get_affine method of image objects for
    removal in version 4.0;
  • Removed broken from_filespec method from image objects, and deprecated
    from_filespec method of ECAT image objects for removal in 4.0;
  • Deprecation of class_map instance in imageclasses module in favor of
    new image class attributes, for removal in 4.0;
  • Deprecation of ext_map instance in imageclasses module in favor of
    new image loading API, for removal in 4.0;
  • Deprecation of Header class in favor of SpatialHeader, for removal
    in 4.0;
  • Deprecation of BinOpener class in favor of more generic Opener
    class, for removal in 4.0;
  • Deprecation of GiftiMetadata methods get_metadata and get_rgba;
    GiftiDataArray methods get_metadata, get_labeltable,
    set_labeltable; GiftiImage methods get_meta, set_meta. All
    these deprecated in favor of corresponding properties, for removal in 4.0;
  • Deprecation of giftiio read and write functions in favor of
    nibabel load and save functions, for removal in 4.0;
  • Deprecation of gifti.data_tag function, for removal in 4.0;
  • Deprecation of write-access to GiftiDataArray.num_dim, and new error
    when trying to set invalid values for num_dim. We will remove
    write-access in 4.0;
  • Deprecation of GiftiDataArray.from_array in favor of GiftiDataArray
    constructor, for removal in 4.0;
  • Deprecation of GiftiDataArray to_xml_open, to_xml_close methods in
    favor of to_xml method, for removal in 4.0;
  • Deprecation of parse_gifti_fast.Outputter class in favor of
    GiftiImageParser, for removal in 4.0;
  • Deprecation of parse_gifti_fast.parse_gifti_file function in favor of
    GiftiImageParser.parse method, for removal in 4.0;
  • Deprecation of loadsave functions guessed_image_type and
    which_analyze_type, in favor of new API where each image class tests the
    file for compatibility during load, for removal in 4.0;