AIMSdata ChangeLog



Version 5.0.4
Version 5.0.3
Version 5.0.2
Version 5.0.1
Version 5.0.0
Version 4.6.1
Version 4.6.0
Version 4.5.0
Version 4.4.0
Version 4.3.1
Version 4.3.0
Version 4.2.1
Version 4.2.0
Version 4.1.1
Version 4.1.0
Version 4.0.2
Version 4.0
Version 3.2.1
Version 3.2
Version 3.1.6
Version 3.1.5
Version 3.1.4
Version 3.1.3
Version 3.1.2
Version 3.1.1
Version 3.1
Version 3.0.2
Version 3.0.1
Version 3.0
Version 2.13
Version 2.12
Version 2.11
Version 2.10

Dec. 22, 2021, Version 5.0.4

Oct. 13, 2021, Version 5.0.3

Apr. 14, 2021, Version 5.0.2

Mar., 2021, Version 5.0.1

Jan. 20, 2021, Version 5.0.0

Aug. 31, 2018, Version 4.6.1

Oct. 03, 2017, Version 4.6.0

Feb. 17, 2016, Version 4.5.0

Oct 9th, 2013, Version 4.4.0

Oct 8th, 2012, Version 4.3.1

Bugfix release

Sept 6th, 2012, Version 4.3.0

This version brings a number of bug fixes, and improvements:

February 16th, 2012, Version 4.2.1

Feb 3rd, 2012, Version 4.2.0

This version brings a number of bug fixes, and improvements:

Sept 14th, 2011, Version 4.1.1

May 17th, 2011, Version 4.1.0

In this version, an important change for the developers should be noted : the build tool used to compile from the source code has changed. We gave up our home-made tool build-config and replace it with the standard tool CMake, a cross-platform, open-source build system.

This version also brings a number of bug fixes, and improvements:

November 19th, 2010, Version 4.0.2

  • Fix reading GIFTI files extracted from SPM 8
  • Fix reading GIFTI mesh+texture files
  • Fix reading and writing transformations in MINC format
  • New option in AimsFileConvert: --orient, to specify output disk orientation or flip it
  • support for MNI .obj mesh format
  • AimsFoldGraphThickness can now use a pre-built sulci voronoi map (to speed things up)
  • Forbids to write NIFTI format when volume dimensions do not fit in short ints: NIFTI stores dimensions as short.
  • AimsLabelSelector can now work in batch mode (-b) without graphical interface.
  • May 28, 2010, Version 4.0

    User-level changes:
  • Improvements and fixes in various IO modules: Dicom, Nifti, Gifti, FDF
  • Beginning of a SQL database format for graphs (QSlite files for now). This will allow partial reading and queries in large graphs databases. But the module is still experimental and the SQL database schema will probably change, so it should not be used yet to store important graphs. Conversion from and to the .arg format are still possible.
  • Programmer-level changes:
  • Noticeable API change: the Motion class (for affine spatial transformations) has been renamed AffineTransformation3d in aims namespace, inherits the new Tansformation and Transformation3d classes, and undergoes some methods changes. Motion is still provided as a typedef to avoid breaking existing code, but some changes may be required anyway. See the AffineTransformation3d class documentation for details.
  • python API: more automatic conversions between reference-counted objects (rc_ptr and Object classes) and their contents when calling wrapped C++ functions
  • python API: the get() method of rc_ptr and Object classes is replaced by _get() so as not to shadow potential get() methods in the objects under the reference counter. In 4.0 the get() method is still present for backward compatibility and behaves as it did before, but this will be changed in a next release, so programmers are advised to use _get() instead (which is now rarely needed).
  • January 8, 2010, Version 3.2.1

  • New global option to Aims commandlines: --debugLevel. It is used instead of the --verbose option to print debug messages, when loading plugins for instance.
  • Nifti IO: When loading large 4D volumes which need a reorientation in memory, don't duplicate the whole 4D volume when reorienting. This saves temporary memory allocation.
  • Nifti IO: when no qform/sform/transformations are already in a volume written in nifti, set the origin at the center of the volume, otherwise SPM is lost (normalizaton fails)
  • September 4, 2009, Version 3.2

  • Re-organization of sources of aims: aims now regroups aimsdata, aimsalgo, graph, cartobase, cartodata, IO libs (ecat, ecat+, vidaIO), and aims-gpl which is the gui part.
  • added default_writers option in aimsrc: see the doc for details
  • the default output volumes format when no extension is specified is now NIFTI1.
  • GIFTI IO support for meshes and textures
  • The $SHFJ_SHARED_PATH environment variable is deprecated. It is replaced with the $BRAINVISA_SHARE variable. For now it contains a single directory, but will evolve in a PATH-like behaviour in future versions. $SHFJ_SHARED_PATH still exists as a fallback for backwards compatibility.
  • If no environment variable is set at all, the share directory is guessed from the $PATH variable.
  • May 10, 2009, Version 3.1.6

  • IO: Fix in NIFTI-1 writer when the storage_to_memory matrix is not what it should be
  • IO: Fix in reading pure 3D NIFTI-1 images (no 4th dimension)
  • Transformation information is set and maintained in sub-volumes and resampled volumes
  • A fix in the Quaternion class (apply() function)
  • IO: support TIFF format on U32 data type
  • Fix in meshExtract when no index array is needed
  • AimsFileInfo: correctly display min/max values for U8 and S8 types
  • November 14, 2009, Version 3.1.5

  • Correctly save alpha channel of RGBA volumes in Qt formats IO
  • Correctly use the "output_4d_volumes" option in NIFTI-1 writer
  • A few more minor fixes
  • October 24, 2008, Version 3.1.4

  • New global commandlines option: "output_4d_volumes" (used for NIFTI and SPM), replacing the recent "spm_output_4d_volumes".
  • Fixes in graph sub-objects IO system.
  • Fix: file descriptor leak in Tiff reader.
  • various other minor things
  • September 24, 2008, Version 3.1.3

  • various minor things
  • August 18, 2008, Version 3.1.2

  • various minor things
  • August 8, 2008, Version 3.1.1

    Bug fixes:
  • A serious bug fix in NIFTI writer: Nifti transformations were sometimes wong in the .nii file, event when they were OK in the .minf file.
  • fixed a recent bug in the volume type converters when using rescaling which could show side effects in various commands
  • Fixes and improvements in graphs reading when containing data stored as labels volumes. Changed the way anatomist handles them to a much cleaner behaviour.
  • many other less important fixes
  • Minor improvements:
  • some minor (not user-visible) improvements and additions to the libraries
  • January 4, 2008, Version 3.1

  • SPM images IO: ***CAUTION***, behaviour change: Read this document for details. The default settings for AIMS is now to behave like SPM2, not like SPM99 anymore.
  • NIFTI-1 volume format support, by Guillaume Flandin, using niftilib
  • PLY mesh format support, using the Rply library
  • Improvements in the Qt4 compatibility
  • complete reimplementation of the mesh cutting algorithm (used in anatomist). It doesn't crash anymore, but leaves holes or incorrect things on meshes with overlapping triangles
  • complements and improvements in the IO system and its suppport for various object types
  • headers were added to data objects which did not have one (Motion, buckets, Hierarchy, Object, ...)
  • The Quaternion class has been moved from anatomist to aimsdata. Bridges between Quaternions and Motions.
  • python bindings for a large part of aimsdata API (all data types and IO): see the pyaims project
  • ... far too many changes to possibly list them...
  • and many many bugfixes
  • April 27, 2006, Version 3.0.2

    Bug fixes:
  • Image formats handled via the Qt plugin (png, bmp...) had several bugs that caused image corruption when saving/reading them. It has been fixed, and support for int types wider than 8bit has been unregistered (it can't work actually).
  • Some 3D MINC images got an incorrect value (NaN or infinity) for 4th dimension in Aims
  • A huge memory leak has been fixed in AimsSubVolume in multiple output files mode, and some optimizations were done in this case.
  • The sourcecode now compiles with gcc 4.1
  • Many other minor bugs were fixed
  • September 22, 2005 - Version 3.0.1

    Bug fixes:

  • important bugfix in interpolation code which may affect, especially, all diffusion tracking algorithms
  • a few compilation warnings and configuration fixes / cleanups
  • AimsSubVolume supports a wider range of data types
  • The gui part is now compatible with Qt 4 - more compatibility headers
  • Fixed IO type Texture of Point2df which did not appear amongst supported IO types
  • Fixes in management of Aims objects contained in graphs
  • Fixed SPM writin of float/double images which were sometimes written in (short + scale factor) mode when they should not
  • May 18, 2005 - Version 3.0

    User-level changes:

  • Volumes IO: better support for large files. Memory mapping has been automatically enabled on GIS and SPM volumes when image sizes become large compared to the free memory size (linux only right now) or to absolute amounts. This is especially useful when loading large data in Anatomist or for data conversions. Note that not all volume formats can benefit the same optimization: depending on the disk and memory format of low-level data, the whole file must be copied to a temporary file in some situations (always needed for SPM volumes). Prefer GIS format when possible...
  • SPM volumes of FLOAT data can now be saved as short int + scale factor when it appears to be possible without precision loss. The drawback right now is that detecting the possibility of doing it takes some time and it's slower.
  • Minc format IO support: thanks to Olivier Coliot who wrote the reader/writer classes, there is now a Minc plugin in Aims. At the moment only 3D files are supported (not 4D) and the datatype detection may be improved in the future, but the base is here now. The plugin needs the Minc library.
  • The Ecat format IO has been ported to Windows
  • Graphs incompletely loaded (without buckets or meshes, like in the recognition program) and saved back to disk now load their sub-objects before they are saved, so nothing is lost anymore. The drawback is that saving them is much longer and consumes far more RAM.
  • Porting to 64 bit systems: done by Dimitri
  • Version numbering: all our projects will have the same version number: 3.0 for this release
  • Programmer-level changes:

  • Allocators have changed a bit, and their choice has been facilitated by a helper / factory class.
  • Porting to 64 bit systems. This port implies some modifications on some programming rules: we sould avoid using the long type anymore, but always fixed size types: int32_t, int8_t etc, so AimsData<long> should be replaced with AimsData<int32_t> in all Aims code.
  • In cartobase, the generic object API has been rewritten in a cleaner way GenObject becomes GenericObject. A compatibility interface is provided so code will not break, but we plan to remove it once we have cleaned all code (maybe in the next version).
  • Preparations for deep changes in Aims API: some main classes will be re-written in a new library: cartodata. The first is the 4D volume class (aims::AimsData) which will become carto::Volume, a newer, cleaner and more powerful implementation. In this release, AimsData is only a wrapper for Volume. Compatibility will be preserved. Moreover the wrapping can be disabled by a #define (the older implementation is still present in the source code).
  • A Python interface project for Aims has been started: pyaims, at the moment it allows manipulating volumes (including IO), either under AimsData or Volume shape. Meshes will be added soon.
  • Porting to gcc 4.0 compiler

  • 17/11/2004 - Bugfix update 2.13(c)

  • fixes in SPM IO
  • little doc on coordinates systems of AIMS and SPM: here
  • fixes on the Windows port, especially the graph writer which could write the .data directory in the wrong location (in the current directory). This bug affected saving ROI sessions from Anatomist, for instance.
  • various other minor fixes

  • 06/07/2004 - Bugfix update 2.13(b)

  • bucket writer wrote wrong voxel sizes
  • fix in list repesentations of attributed objects browser, this showed up in Anatomist
  • vida reader crashed on large files (with more than ~250 slices)

  • 18/02/2004 - Version 2.13

    User-level changes:

  • Porting to Windows: the sources can now be compiled on Windows platforms using either cygwin or MinGW gcc compilers and environments. I guess there will still be some little glitches but lots of commands now work well on Windows. Note: Vida and Ecat IO modules don't compile under MinGW because they use a missing rpc/hdr library.
  • SPM images IO: ***CAUTION***, behaviour change: Read this document for details. There have been a number of fixes, improvements and changes.
  • Fixes in Dicom reader allowing to still read images with partially incoherent headers
  • Beginning of a TIFF format reader (by Vincent Frouin), but it is not finished yet and apparently only partially working.
  • Rework of environment variables handling: to access data, several environment variables were needed: SHFJ_SHARED_PATH, AIMS_PATH, ANATOMIST_PATH, SIGRAPH_PATH etc. Now a more standard shared data structure can be adopted and only one environment variable is needed (SHFJ_SHARED_PATH). The older way (with several variables) is still supported. Shared data can be organized in $SHFJ_SHARED_PATH/shfj, $SHFJ_SHARED_PATH/aims, $SHFJ_SHARED_PATH/anatomist, $SHFJ_SHARED_PATH/sigraph etc. If SHFJ_SHARED_PATH is set to /usr/local/share or /usr/share, you just get a completely standard organization.
  • Settings files for AIMS, currently used to specify SPM IO conventions. There is one site-wide settings files (in the shared directory of Aims) and one personal $HOME/.aimsrc file. See this page for further explanations.
  • Many other things... I can't remember
  • Programmer-level changes:

  • Utility classes & functions for portably handling files, directories and filenames (made for windows porting...) [in cartobase library]
  • Threads: the threading package has moved from aimsalgo library (closed-source) to cartobase library (GPL). It implements a portable C++ interface to threads, and will be used in Anatomist now.
  • Many other things... I can't remember

  • 27/03/2003 - Version 2.12

    User-level changes:

  • More explanatory IO error messages
  • AimsFileConvert can handle RGB/RGBA images
  • Many many other things I don't remember...
  • Programmer-level changes:

  • libshfj has been renamed libcartobase (beginning of Cartograph project)
  • Some classes have moved from aims and graph libraries to cartobase, especially low-level general utility classes. More of them should move in the future. For now: stream classes, exceptions, GenObject and associated classes (formerly named DataExchanger), AttributedObject and IO (including syntax), Python-like IO for Object, string conversion templates, DataTypeCode template, basic typedefs...
  • Some classes still in aims have moved to the new namespace carto, like OptionParser and related classes
  • Classes renamings (in cartobase):
  • Externalization (as plugins) of IO formats that use external libraries (I mean external to aims, even for libraries made in SHFJ): Vida, Ecat, Jpeg, Dicom
  • Many many other things I don't remember...

  • 31/10/2002 - Version 2.11

    User-level changes:

  • Nothing has been recorded...
  • Programmer-level changes:

  • nothing has been recorded...

  • 09/07/2002 - Version 2.10

    User-level changes:

  • beginning of ChangeLog: nothing yet
  • Programmer-level changes:

  • nothing yet

  •