GithubHelp home page GithubHelp logo

nikitas-k / eigenstrapping Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sng-newy/eigenstrapping

0.0 0.0 0.0 10.79 MB

A toolbox for generating spatial null maps using geometric eigenmodes

License: GNU General Public License v3.0

Python 100.00%

eigenstrapping's Introduction


Zenodo DOI run-tests status deploy-docs status

The eigenstrapping toolbox is designed to help researchers generate statistically-rigorous models for null hypothesis testing between brain maps using non-local spectral shape descriptors - or geometric eigenmodes. Documentation can be found here. Read our preprint here!

./docs/_static/main_figure.jpg

Features

  • A growing library of eigenmodes of standard surfaces and surface densities (fsaverage, fsLR)
  • Cortical and subcortical null models for assessing statistical correspondence between brain maps
  • Generation of geometric eigenmodes on user-derived surfaces

Installation Guide

Eigenstrapping is available in Python 3.7+. MATLAB version coming soon!

Installation

eigenstrapping can be installed by downloading the package from the Github repository:

git clone https://github.com/SNG-newy/eigenstrapping.git
cd eigenstrapping
python3 -m pip install .

Dependencies

To run eigenstrapping, the following Python packages are required (these should be automatically installed with the above command(s), as listed in the requirements.txt file):

nibabel and nilearn are required for surfaces and volumes. matplotlib is only required for fitting plots in :mod:`eigenstrapping.fit` and some of the surface plotting functions. Future improvements will reduce the number of dependencies needed.

Important additional dependencies

In order to avail the user of the volumetric pipeline, the following packages must be installed and sourced correctly:

Optional dependencies

In order to speed up calculation of eigenmodes, you can utilize scikit-sparse libraries to use Cholesky decomposition rather than LU decomposition. If these libraries are already installed, the functions in eigenstrapping will automagically recognize this and use these libraries, without the user specifying (as default behavior, this can be turned off. Refer to :ref:`Deriving eigenmodes <usage_geometry_eigenmodes>`).

You can install these libraries by following the instructions here.

Citing

When using eigenstrapping, please cite the following manuscript:

  • Generation of surrogate brain maps preserving spatial autocorrelation through random rotation of geometric eigenmodes. Koussis, N.C., Pang, J.C., Jeganathan, J., Paton, B., Fornito, A., Robinson, P.A., Misic, B., Breakspear, M. (2024). bioRxiv 2024.02.07.579070 [Preprint]. https://dx.doi.org/10.1101/2024.02.07.579070

The core functions expand on code from BrainEigenmodes, please cite their work if you use our code:

  • Geometric constraints on human brain function. Pang, J. C., Aquino, K. M., Oldehinkel, M., Robinson, P. A., Fulcher, B. D., Breakspear, M., & Fornito, A. (2023). Nature, 1-9. https://doi.org/10.1038/s41586-023-06098-1

Please also cite the papers for the method that we use to calculate eigenmodes on the surface:

And if you use the Heat Kernel for Geodesics method in :func:`eigenstrapping.geometry.geodesic_distmat`:

  • Crane, K., Weischedel, C., & Wardetzky, M. (2013). Geodesics in heat: A new approach to computing distance based on heat flow. ACM Transactions on Graphics (TOG), 32(5), 1-11. https://arxiv.org/pdf/1204.6216

License information

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License cc-by-nc-sa. The full license can be found in the LICENSE file in the eigenstrapping distribution.

eigenstrapping's People

Contributors

nikitas-k avatar sng-newy avatar vincebaz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.