Recent Releases of nltools

nltools - 0.5.1

Dependency Updates

  • Update scipy.binom_test -> scipy.binomtest in code-base for compatibility with current scipy versions

Testing Updates

  • Fixed a testing issue on filepath checking on windows
  • Forced numpy random seed to 0 for all pytest fixtures that use numpy.random to generate test data (avoids random test failures due to random data)
  • Updated stock GA for setting up conda to v3
  • Added m1 macOS runners to grid as experimental (not currently working due to missing hdf5 install on OS)
  • Set python 3.11 on macOS runner as experimental due to upstream joblib and 3.11 issue
  • Set docs building to experimental until upstream issues are resolved (docs are outdated with respect to this release!)

- Python
Published by ejolly almost 2 years ago

nltools - 0.5.0

Changes

  • Drop support for python 3.7 and add support up to 3.11
  • Switch from deepdish to h5py for loading and saving hdf5 Brain_Data and Adjacency files, with backwards compatible support for hdf5 files created on older versions of nltools

- Python
Published by ejolly over 2 years ago

nltools - 0.4.7

Changes

Fixes

  • nltools.stats.regression now returns the standard errors of beta estimates
    • The canonical output order is: b, se, t, p, df, res
    • Brain_Data and Adjacency will now correctly store the standard error estimates in stats['sigma']

- Python
Published by ejolly over 3 years ago

nltools - 0.4.6

Changes

Fixes

  • Fixed warnings from onsets_to_dm as error-checking wasn't quite right
  • Fixed deprecated nilearn warnings
  • Fixed deprecated nibabel .get_affine() -> .affine

New

  • Brain_Data.similarity should be dramatically faster and now supports rank correlation: https://github.com/cosanlab/nltools/issues/308 https://github.com/cosanlab/nltools/issues/316 https://github.com/cosanlab/nltools/issues/404
  • Design_Matrix.clean will raise an error if there are duplicate column name
  • Loading .h5 objects in Brain_Data now respects the mask argument: ``` # User loads h5 that contains mask so that mask is used instead of the default MNI mask

Brain_Data('brain.h5')

User loads h5 that contains mask but also sets mask argument.

Now mask value takes precedence over whatever mask is in h5

so we issue a warning to the user letting them know on load

Brain_Data('brain.h5', mask='path/to/nifti/mask.nii.gz')

UserWarning(...)

User loads h5 that does NOT contain a mask and doesnt set the mask

argument so the default MNI mask is used, similar to nifti files

This is an implicit fallback just like with niftis

BrainData('brainnomask.h5')

User loads h5 that does NOT contain mask but also sets mask argument

Mask value is used to learn transformation like niftis

No need to warn them about anything

BrainData('brainnomask.h5', mask='path/to/nifti/mask.nii.gz') ```

- Python
Published by ejolly over 3 years ago

nltools - 0.4.5

General

  • No longer pin pandas and deepdish versions
  • Works with the latest version of sklearn
  • Remove documentation build artifacts from version control

- Python
Published by ejolly over 4 years ago

nltools - 0.4.4

General

  • Removed mne as a dependency
  • Clarify doctstring for Adjacency.distance_to_similarity to note we currently only support euclidean and correlation distance

Bug Fixes

  • Path objects now reliably work for Brain_Data and Adjacency classes with passing tests
  • Fixed major bug in isps where hilbert trasform was being applied to the wrong axises

New Features

Adjacency

  • new generate_permutations method which acts as python generator that can be used for iteration
  • new .cluster_summary method to summarize with and between cluster distances
  • new .sum method to add adjacency matrices
  • new .fisher_z_r method to invert .fisher_r_z

Stats

  • new align_states function that implements the Hungarian Algorithm
  • isps gains a new pairwise argument

- Python
Published by ejolly almost 5 years ago

nltools - 0.4.3

This releases drops Python 3.6 Support!

This is primarily a maintenance release that move ours testing, documentation, and deployment infrastructure to github actions and github-pages from travis CI and readthedocs. Our entire code base is now formatted using black and will enforce checks for all new commits and PRs. Documentation and PyPi uploading have also been configured to deploy on new releases (starting from this one).

Our documentation site has now moved to: https://nltools.org.

Bug Fixes

  • stats.fdr now checks that the inputted array is within the range 0-1
  • fix int64 out-of-bounds test errors on Windows

Enchancements

  • Brain_Data classes now support Path objects in addition to string path names
  • Simulator classes now accept a random_seed for reproducibility

Deprecations

  • Python 3.6 is no longer officially supported. Python 3.7, 3.8 are the current supported versions. Once our dependencies support 3.9 we will too.
  • remove all traces of Python 2 and six

- Python
Published by ejolly almost 5 years ago

nltools - 0.4.2

Bug Fixes

  • can now load data from https addresses in addition to http
  • Adjacency.isc method is now set to only work with single matrices
  • Refactored roi_plot_brain to speed up image generation when using scalar values.

- Python
Published by ljchang over 5 years ago

nltools - 0.4.1

Bug Fixes

  • Minor bug fix with Brain_Data.align method, in which the transformation_matrix.data needed to be transposed.

- Python
Published by ljchang over 5 years ago

nltools - 0.4.0

New Functionality

  • Added new intersubject correlation (ISC) functionality. ISC function in stats module can compute different types of resampling tests (i.e., circular shifting, phase randomization, subject-wise bootstrapping. ISC method on Adjacency Class can perform subject-wise bootstrapping.
  • Added new intersubject functional connectivity (ISFC) functionality. Uses leave-one-subject out averaging method.
  • Added new dynamic intersubject phase synchrony (ISPS) functionality. Calculate length of average resultant vector, significance computed with parametric Rayleigh test.
  • roitobrain is now much faster when using arrays.
  • Added new timeseries permutation methods to correlation_permutation function (circle shifting and phase randomization)
  • BrainData has a new `temporalresample` method to up and downsample timeseries

Bug Fixes

  • fixed smoothing bug
  • temporary fix to plotting bug. due to change to matlotlib api, colorbars on brain_data plots are not working correctly. Turned them off by default for now.
  • no longer pinning joblib to old version

Refactoring

  • updated and refactored align code.

Deprecated/Removed

  • Removed jackknife permutation method as we decided it wasn't working as we intended.

- Python
Published by ljchang over 5 years ago

nltools - 0.3.20

BUG FIXES

  • fixed bug with importing optional libraries for interactive component viewer.

- Python
Published by ljchang almost 6 years ago

nltools - 0.3.19

This release is mostly bug fixes with Design_Matrix class fixed by @ejolly

Bug Fixes

  • Numerous bug fixes with Design_Matrix class
  • updated issues with deprecated pandas .ix index methods
  • fixed issues with onsetstodm
  • fixed issues with appending multiple design matrix instances

- Python
Published by ljchang almost 6 years ago

nltools - 0.13.18

New Functionality

  • added divide dunder method to Brain_Data and Adjaceny
  • added right dunder methods to Adjacency
  • added axis argument to Brain_Data.std()

- Python
Published by ljchang almost 6 years ago

nltools - 0.3.17

New Functionality

  • new interactive plot to view components from decomposition analysis
  • new median method
  • can now extract median and PCA components from a masked Brain_Data instance
  • can now perform KernelPCA and DictionaryLearning with Decompose method.

Changed API

  • many method keywords have been changed to metric for consistency (e.g., distance methods)
  • extractroi BrainData method now has option to resample target mask to source data

Bug Fixes

  • fixed the double plot in jupyter notebooks
  • removed nans from regression standard error
  • fixed issues with labels in several Adjacency plots (mds, silhouette)
  • fixed issue with float and integer types in all dunder methods in Brain_Data & Adjacency
  • fixed roitobrain function, which can now accommodate most input data types
  • changed how empty labels are stored in Adjacency
  • added mask argument to checkbraindata
  • refactored and updated apply_mask, new flag to resample mask to

- Python
Published by ljchang almost 6 years ago

nltools - 0.3.16

Problems uploading to pypi - see version 0.3.15 for full release notes.

- Python
Published by ljchang almost 6 years ago

nltools - 0.3.15

New Functionality - added plot saving functionality for full, glass, and min views - predict now uses balanced_accuracy as default for classification accuracy

Bug Fixes - fixed bug with gloverhrf function which will impact convolution with designmatrix - fixed numerous bugs with adjacency class - fixed multiple mugs in permutation tests - fixed bug with 3mm brain mask - fixed bug checking for isometric voxels which was causing plotting errors - fixed bug in plotting save - updated sklearn requirements which was causing bug with backwards compatibility for balanced_accuracy - fixed bugs with hdf5 with adjacency instances

- Python
Published by ljchang almost 6 years ago

nltools - 0.3.14

New Functionality

  • Added ability to read and write Brain_Data objects to hdf5. This is WAY faster than nifti and is the recommended method for large datasets.
  • Randomise - can now run fast permutation testing similar to FSL.
  • Add options for holm-bonf to ttest and randomise
  • Added ability to estimate Social Relations Model using Adjacency Class.
  • Added new SimulateGrid class for generating random data for simulations in 2D

Bug Fixes - fixed fetchlocalizer - fixed bug in BrainData.smooth where original class instance attributes weren't being propagated. - cleaned up code for distance_correlations - fixed bug with Adjacency when NaNs were present on diagonal. - fixed travis bug. - fixed plotting bug

- Python
Published by ljchang over 6 years ago

nltools - 0.3.13

New Functionality - Can now multiply vectors to brain data instances. useful for making contrasts

*Bug Fixes - Updated documentation - Fixed readthedocs conda environment

- Python
Published by ljchang almost 7 years ago

nltools - 0.3.12

New Functionality - added ISC output to align output. - added new function to fetch pinel localizer dataset - added smooth method to BrainData Class - added findspikes method to Brain_Data Class

Bug Fixes - updated align tests

Notes - dropped support for Python 2.7. Will no longer be running test suite.

- Python
Published by ljchang almost 7 years ago

nltools - 0.3.11

New Functionality

  • Can now perform multi-region and/or searchlight based prediction using Brain_Data.predict_multi
  • Brain_Data.predict now support multi-class classification
  • New interactive plotting based on nilearn using Brain_Data.iplot()
  • plotting functions have been renamed to remove camel case (e.g. plotBrain -> plot_brain)
  • Brain_Data.plot now integrates old plotting functions in method call using argument view. Still defaults to axial slices but can optionally display, glass, mni (for ortho slices) or both
  • new distance_correlation, procrustes_distance, jackknife_permutation functions in nltools.stats
  • expand_mask, collapse_mask, create_sphere can now take custom masks
  • Brain_Data.standarize gains new axis argument

Bug Fixes - Fixed issue in boolean indexing with ROC forced choice computation - Fixed edge case bug in fdr - holm_bonf behaves like fdr now and fixes incorrect pvalue bug - check_numpy_square_matrix validates properly now - fixed issue in failed arma regression if statsmodels was not installed - fixed issue in failed interactive plotting if ipywidgets was not installed

- Python
Published by ejolly about 7 years ago

nltools - 0.3.10

New Functionality - Added new 2-D matrix permutation to correlation_permutation()

Bug Fixes - Updated MANIFEST to include resources with pypi - fixed compatibility issues with python 2.7 and joblib. Using older version for now. - refactored tests to be cleaner with fixtures.

- Python
Published by ljchang over 7 years ago

nltools - 0.3.9

New Functionality - New regression method for Adjacency objects (univariate and Adjacency decomposition) - faster t-tests (permutation and standard) - within cluster mean method for Adjacency objects - similarity to distance conversion for Adacency objects - new function to convert ROI values back into brain_data instances

- Python
Published by ljchang over 7 years ago

nltools - 0.3.8

New Functionality - Brain_Data now has scale method to be consistent with spm and fsl

Bug Fixes - Big refactor to design_matrix class.
- Updated documentation.

- Python
Published by ljchang almost 8 years ago

nltools - 0.3.7

New Functionality - added labels to Adjacency Class - refactored regression module (includes robust and AR models) - updated threshold methds - refactored design_matrix class. Lots of new functionality - refactored trim and winsorize into single function - permutation tests now default to two tailed

Bug Fixes - plotmds - upsample - importing lists of 4d data. - transformpairwise - Design_matrix many bug fixes - conflict with matplotlib and nilearn versions

- Python
Published by ljchang almost 8 years ago

nltools - 0.3.6

New Functionality - Added ability to perform hyperalignment using procrustes transform and shared response model. - Added ability to decompose across space and time - Added cosine similarity to Brain_Data.similarity

Bug Fixes - fixed bug with thresholding - fixed bug with random seed and parallel processing bootstrap and permutations - fixed bug with naming in designmatrix - fixed bug with filereader - fixed bug with plotting (updated matplotlib and nilearn version) - moved external code to /external folder

- Python
Published by ljchang about 8 years ago

nltools - 0.3.5

New Functionality Added ability to decompose Brain_Data objects using PCA, ICA, NNMF.

Bug Fixes Fixed bug with pypi with requirements file.

- Python
Published by ljchang about 8 years ago

nltools - 0.3.4

This release was lead by @ejolly and added a bunch of new things.

New Functionality - Added a new Preference class to specify preferences for nltools. The most notable one is which brain mask to implicitly use. For large datasets, 3 x 3 x 3 will dramatically reduce RAM costs and speed up computations. These masks are packaged in resources folder as well as versions that don't include the ventricles. - ARMA estimator for regress methods - robust regression for regress methods

API Changes - Brain_Data.threshold has a new api. Can now accommodate bidirectional thresholding, but must specify an upper and lower bound thresholds

Bug Fixes - small bug in bootstrap function - requirements file now synced with setuptools - rolled back matplotlib to avoid a new plotting bug. - fixed data type output for Brain_Data.ttest() - fixed an indexing bug with stats.downsample function

- Python
Published by ljchang over 8 years ago

nltools - 0.3.2

Bugs Fixed - Brain_Data slicing - optional imports - refactored data module

New Functionality - permutation and bootstraps now run in parallel - can now concatenate Brain_Data and Adjacency objects

- Python
Published by ljchang over 8 years ago

nltools - 0.3.1

Fixed bugs with: -ROC (forced choice and balanced accuracy, store gaussian weights) -createsphere -BrainData logical indexing -compatible with scipy 1.0.0 -winsorize

Added new functionality: -transform_pairwise()

- Python
Published by ljchang over 8 years ago

nltools - 0.3.0

Now compatible with Python3

- Python
Published by ljchang over 8 years ago

nltools -

-Several bug fixes to braindata and designmatrix -new silhouette plot

- Python
Published by ljchang over 8 years ago

nltools -

This release fixes numerous bugs and adds a new Design_Matrix class.

- Python
Published by ljchang almost 9 years ago

nltools -

- Python
Published by ljchang about 11 years ago