Skip to content

Latest commit

 

History

History
795 lines (648 loc) · 34.5 KB

Changelog

File metadata and controls

795 lines (648 loc) · 34.5 KB
.. index:: changelog

Development Changelog

This changelog only lists rather macroscopic changes to PyMVPA. The full VCS changelog for 2.x series of PyMVPA is available here:

https://github.com/PyMVPA/PyMVPA/commits/master

Note

You could find relevant information on 0.4.x series at http://v04.pymvpa.org .

In addition there is also a somewhat unconventional visual changelog.

'Closes' and 'Fixes' statement IDs refer to the Debian and Github bug tracking systems accordingly and can be queried by visiting the URLs:

http://bugs.debian.org/<closed bug id>

https://github.com/PyMVPA/PyMVPA/issues/<fixed bug id>

Releases

  • 2.2.0 (Sun, Sep 16 2012)

    • New functionality (14 commits)
  • 2.1.0 (Fri, June 29 2012)

  • 2.0.1 (Tue, Mar 27 2012)

    Primarily a bugfix release

  • 2.0.0 (Mon, Dec 19 2011)

    This release aggregates all the changes occurred between official releases in 0.4 series and various snapshot releases (in 0.5 and 0.6 series). To get better overview of high level changes see :ref:`release notes for 0.5 <chap_release_notes_0.5>` and :ref:`0.6 <chap_release_notes_0.6>` as well as summaries of release candidates below

    • Fixes (23 BF commits)
      • Significance level in the right tail was fixed to include the value tested -- otherwise resulted in optimistic bias (or absurdly high significance in improbable case if all estimates having the same value).
      • Compatible with the upcoming IPython 0.12 and renamed sklearn (Fixes #57).
      • Do not double-train slave classifiers while assessing sensitivities (Fixes #53).
    • Enhancements (30 ENH + 3 NF commits)
      • Resolving voting ties in kNN based on mean distance, and randomly in SMLR.
      • :class:`kNN`'s ca.estimates now contains dictionaries with votes for each class.
      • Consistent zscoring in :class:`Hyperalignment`.
  • 2.0.0~rc5 (Wed, Oct 19 2011)

    • Major: to allow easy co-existence of stable PyMVPA 0.4.x, 0.6 development mvpa module was renamed into mod:mvpa2.
    • Fixes
    • Enhancements
      • Tutorial uses :mod:`mvpa2.tutorial_suite` now.
      • Better suppression of R warnings when needed.
      • Internal attributes of many classes were exposed as properties.
      • More unification of __repr__ for many classes.
  • 0.6.0~rc4 (Wed, Jun 14 2011)

    • Fixes
    • New functionality
      • Explicit new argument flatten to from_wizard -- default behavior changed if mapper was provided as well
    • Enhancements
      • Elaborated __str__ and __repr__ for some Classifiers and Measures
  • 0.6.0~rc3 (Thu, Apr 12 2011)

    • Fixes
      • Bugfixes regarding the interaction of FlattenMapper and BoxcarMapper that affected event-related analyses.
      • Splitter now handles attribute value None for splitting properly.
      • GNBSearchlight handling of roi_ids.
      • More robust detection of mod:scikits.learn and :mod:`nipy` externals.
    • New functionality
      • Added a Repeater node to yield a dataset multiple times and Sifter node to exclude some datasets. Consequently, the "nosplitting" mode of Splitter got removed at the same time.
      • :file:`tools/niils` -- little tool to list details (dimensionality, scaling, etc) of the files in nibabel-supported formats.
    • Enhancements
      • Numerous documentation fixes.
      • Various improvements and increased flexibility of null distribution estimation of Measures.
      • All attribute are now reported in sorted order when printing a dataset.
      • fmri_dataset now also stores the input image type.
      • Crossvalidation can now take a custom Splitter instance. Moreover, the default splitter of CrossValidation is more robust in terms of number and type of created splits for common usage patterns (i.e. together with partitioners).
      • CrossValidation takes any custom Node as errorfx argument.
      • ConfusionMatrix can now be used as an errorfx in Crossvalidation.
      • LOE(ACC): Linear Order Effect in ACC was added to ConfusionMatrix to detect trends in performances across splits.
      • A Nodes postproc is now accessible as a property.
      • RepeatedMeasure has a new 'concat_as' argument that allows results to be concatenated along the feature axis. The default behavior, stacking as multiple samples, is unchanged.
      • Searchlight now has the ability to mark the center/seed of an ROI in with a feature attribute in the generated datasets.
      • debug takes args parameter for delayed string comprehensions. It should reduce run-time impact of debug() calls in regular, non -O mode of Python operation.
      • String summaries and representations (provided by __str__ and __repr__) were made more exhaustive and more coherent. Additional properties to access initial constructor arguments were added to variety of classes.
    • Internal changes
      • New debug target STDOUT to allow attaching metrics (e.g. traceback, timestamps) to regular output printed to stdout
      • New set of decorators to help with unittests
        • @nodebug to disable specific debug targets for the duration of the test.
        • @reseed_rng to guarantee consistent random data given initial seeding.
        • @with_tempfile to provide a tempfile name which would get removed upon completion (test success or failure)
      • Dropping daily testing of maint/0.5 branch -- RIP.
      • Collections were provided with adequate (deep|)copy. And Dataset was refactored to use Collections copy method.
      • update-* Makefile rules automatically should fast-forward corresponding website-updates branch
      • MVPA_TESTS_VERBOSITY controls also :mod:`numpy` warnings now.
      • Dataset.__array__ provides original array instead of copy (unless dtype is provided)

    Also adapts changes from 0.4.6 and 0.4.7 (see corresponding changelogs).

  • 0.6.0~rc2 (Thu, Mar 3 2011)

    • Various fixes in the mvpa.atlas module.
  • 0.6.0~rc1 (Thu, Feb 24 2011)

  • 0.5.0 (sometime in March 2010)

    This is a special release, because it has never seen the general public. A summary of fundamental changes introduced in this development version can be seen in the :ref:`release notes <chap_release_notes_0.5>`.

    Most notably, this version was to first to come with a comprehensive two-day workshop/tutorial.

  • 0.4.7 (Tue, Mar 07 2011) (Total: 12 commits)

    A bugfix release

  • 0.4.6 (Tue, Feb 01 2011) (Total: 20 commits)

    A bugfix release

    • Fixed (few BF commits):
      • Compatibility with numpy 1.5.1 (histogram) and scipy 0.8.0 (workaround for a regression in legendre)
      • Compatibility with libsvm 3.0
      • :class:`~mvpa.clfs.plr.PLR` robustification
    • Enhancements
      • Enforce suppression of numpy warnings while running unittests. Also setting verbosity >= 3 enables all warnings (Python, NumPy, and PyMVPA)
      • :file:`doc/examples/nested_cv.py` example (adopted from 0.5)
      • Introduced base class :class:`~mvpa.clfs.base.LearnerError` for classifiers' exceptions (adopted from 0.5)
      • Adjusted example data to live upto nibabel's warranty of NIfTI standard-compliance
      • More robust operation of MC iterations -- skip iterations where classifier experienced difficulties and raise an exception (e.g. due to degenerate data)
  • 0.4.5 (Fri, Oct 01 2010) (Total: 27 commits)

    A bugfix release

    • Fixed (13 BF commits):
      • Compatible with LIBSVM >= 2.91 (Closes: #583018)
      • No string exceptions raised (Python 2.6 compatibility)
      • Setting of shrinking parameter in :mod:`~mvpa.clfs.sg` interface
      • Deducing number of SVs for SVR (LIBSVM)
      • Correction of significance in the tails of non-parametric tests
    • Miscellaneous:
  • 0.4.4 (Mon, Feb 2 2010) (Total: 144 commits)

    Primarily a bugfix release, probably the last in 0.4 series since development for 0.5 release is leaping forward.

    • New functionality (19 NF commits):
    • Refactored (15 RF commits):
      • To get users prepared to 0.5 release, internally and in some examples/documentation, access to states and parameters is done via corresponding collections, not from the top level object (e.g. clf.states.predictions instead of soon-to-be-deprecated clf.predictions). That should lead also to improved performance.
      • Adopted copy.py from python2.6 (support Ellipsis as well).
    • Fixed (38 BF commits):
      • GLM output does not depend on the enabled states any more.
      • Variety of docstrings fixed and/or improved.
      • Do not derive NaN scaling for SVM's C whenever data is degenerate (lead to never finishing SVM training).
      • :mod:`~mvpa.clfs.sg` :
        • KRR is optional now -- avoids crashing if KRR is not available.
        • tolerance to absent set_precompute_matrix in svmlight in recent shogun versions.
        • support for recent (present in 0.9.1) API change in exposing debug levels.
      • Python 2.4 compatibility issues: :class:`~mvpa.clfs.knn.kNN` and :class:`~mvpa.featsel.ifs.IFS`
  • 0.4.3 (Sat, 5 Sep 2009) (Total: 165 commits)

  • 0.4.2 (Mon, 25 May 2009)

  • 0.4.1 (Sat, 24 Jan 2009)

  • 0.4.0 (Sat, 15 Nov 2008)

    • Add :class:`~mvpa.misc.io.hamster.Hamster`, as a simple facility to easily store any serializable objects in a compressed file and later on resurrect all of them with a single line of code.
    • SVM backend is now configurable via :envvar:`MVPA_SVM_BACKEND` (libsvm or shogun).
    • Non-deterministic tests in the unittest battery are now configurable via :envvar:`MVPA_TESTS_LABILE`.
    • New helper to determine and plot the best matching distribution(s) for the data (matchDistribution, plotDistributionMatches). It is WiP thus API can change in the upcoming release.
    • Simplifies API of mappers.
    • Splitters can now limit the number of splits automatically.
    • New :class:`~mvpa.mappers.base.CombinedMapper` to map between multiple, independent dataspace and a common feature space.
    • New :class:`~mvpa.mappers.base.ChainMapper` to create chains of mappers of abitrary lenght (e.g. to build preprocessing pipelines).
    • New :class:`~mvpa.datasets.event.EventDataset` to rapidly extract boxcar-shaped samples from data array using a simple list of :class:`~mvpa.misc.support.Event` definitions.
    • Removed obsolete MetricMapper class. :class:`~mvpa.mappers.base.Mapper` itself provides the facilities for dealing with metrics.
    • :class:`~mvpa.mappers.boxcar.BoxcarMapper` can now handle data with more than four dimensions/axis and also performs reverse mapping of single boxcar samples.
    • :class:`~mvpa.misc.fsl.base.FslEV3` can now convert EV3 files into a list of :class:`~mvpa.misc.support.Event` instances.
    • Results of tests for external dependencies are now stored in PyMVPA's config manager (mvpa.cfg) and can be stored to a file (not done automatically at the moment). This will significantly decrease the time needed to import the mvpa module, as it prevents the repeated and lengthy tests for working externals.
    • Initial support for ROC computing and AUC as an accuracy measure.
    • Weights of LARS are now available via :class:`~mvpa.clfs.lars.LARSWeights`.
    • Added an initial list of MVPA-related references to the manual, tagged with keywords and comments as well is DOI or similar URL reference to the original document.
    • Added initial glossary to the manual.
    • New 'Module reference', as a middle-ground between manual and API reference.
    • New manual section about meta-classifiers (contributed by James M. Hughes).
    • New minimal example for a 'getting started' section in the manual.
    • Former :envvar:`MVPA_QUICKTEST` was renamed to :envvar:`MVPA_TESTS_QUICK`.
    • Update installation instructions for RPM-based distributions to make use of the OpenSUSE Build Service.
    • Updated install instructions for several RPM-based GNU/Linux distributions.
    • Switch from distutils to numpy.distutils (no change in dependencies).
    • Depend on PyNIfTI >= 0.20081017.1 and gain a smaller memory footprint when accessing NIfTI files via all datasets with NIfTI support.
    • Added workaround to make PyMVPA work with older Shogun releases and those from 0.6.4 on, which introduced backward-incompatible API changes.
  • 0.3.1 (Sun, 14 Sep 2008)

  • 0.3.0 (Mon, 18 Aug 2008)

    • Import of binary EEP files (used by EEProbe) and EEPDataset class.
    • Initial version of a meta dataset class (MetaDataset). This is a container for multiple datasets, which behaves like a dataset itself.
    • Regression performance is summarized now within RegressionStatistics.
    • Error functions: CorrErrorPFx, RelativeRMSErrorFx.
    • Measures: CorrCoef.
    • Data generators: chirp, wr1996
    • Few more examples: curvefitting, kerneldemo, smellit, projections
    • Updated kNN classifier. kNN is now able to use custom distance function to determine that nearest neighbors. It also (re)gained the ability to do simple majority or weighted voting.
    • Some initial convenience functions for plotting typical results and data exploration.
    • Unified configuration handling with support for user-specific and analysis-specific config files, as well as the ability to override all config settings via environment variables. The configuration handling is used for PyMVPA internal settings, but can also be easily used for custom (user-)settings.
    • Improved modularity, e.g. SciPy is not required anymore, but still very useful.
    • Initial implementations of ICA and PCA mapper using functionality provided by MDP. These mappers are more or less untested and should be used with great care.
    • Further improved docstrings of some classes, but still a long way to go.
    • New 'boxcar' mapper, which is the similar to the already present transformWithBoxCar() function, but implemented as a mapper.
    • New SampleGroupMapper that can be used for e.g. block averaging of samples. See new FAQ item.
    • Stripped redundant suffixes from module names, e.g. mvpa.datasets.niftidataset -> mvpa.datasets.nifti
    • mvpa.misc.cmdline variables opt* and opts* were groupped within opt and optss class instances. Also names of the options were changed to match 'dest' of the options. Use tools/refactor.py to quickly fix your custom code.
    • Change all references to PyMVPA website to www.pymvpa.org.
    • Make website stylesheet compatible with sphinx 0.4.
    • Several minor improvements of the compatibility with MacOS.
    • Extended FAQ section of the manual.
    • Bugfix: double_gamma_hrf() ignoring K2 argument.
  • 0.2.2 (Tue, 17 Jun 2008)

    • Extended build instructions: Added section on OpenSUSE.
    • Replaced ugly PYMVPA_LIBSVM environment variable to trigger compiling the LIBSVM wrapper with a proper '--with-libsvm' switch in setup.py. Additionally, setup.py now detects if included LIBSVM has been built and enables LIBSVM wrapper automatically in this case.
    • Added proper Makefiles for LIBSVM copy, with configurable compiler flags.
    • Added 'setup.cfg' to remove the need to manually specify swig-opts (Windows specific configuration is in 'setup.cfg.win').
  • 0.2.1 (Sun, 15 Jun 2008)

    • Several improvements to make building PyMVPA on Windows systems easy (e.g. added dedicated Makefile.win to build a binary installer).
    • Improved and extended documentation for building and installing PyMVPA.
    • Include a minimal copy of the required (patched) LIBSVM library (currently version 2.85.0) for convenience. This copy is automatically compiled and used for the LIBSVM wrapper when PyMVPA built using the Make approach.
  • 0.2.0 (Wed, 29 May 2008)

    • New Splitter class (HalfSplitter) to split into first and second half.
    • New Splitter class (CustomSplitter) to allow for splits with an arbitrary number of datasets per split and the ability to specify the association of samples with any of those datasets (not just the validation set).
    • New sparse multinomial logistic regression (SMLR) classifier and associated sensitivity analyzer.
    • New least angle regression classifier (LARS).
    • New Gaussian process regression classifier (GPR).
    • Initial documentation on extending PyMVPA.
    • Switch to Sphinx for documentation handling.
    • New example comparing the performance of all classifiers on some artificial datasets.
    • New data mapper performing singular value decomposition (SVDMapper) and an example showing its usage.
    • More sophisticated data preprocessing: removal of non-linear trends and other arbitrary confounding regressors.
    • New Harvester class to feed data from arbitrary generators into multiple objects and store results of returned values and arbitrary properties.
    • Added documentation about how to build patched libsvm version with sane debug output.
    • libsvm bindings are not build by default anymore. Instructions on how to reenable them are available in the manual.
    • New wrapper from SVM implementation of the Shogun toolbox.
    • Important bugfix in RFE, which reported incorrect feature ids in some cases.
    • Added ability to compute stats/probabilities for all measures and transfer errors.
  • 0.1.0 (Wed, 20 Feb 2008)

    • First public release.