https://github.com/dynamicsandneuralsystems/pyspi

Comparative analysis of pairwise interactions in multivariate time series.

https://github.com/dynamicsandneuralsystems/pyspi

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, nature.com, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.4%) to scientific vocabulary

Keywords

complex-networks complex-systems multivariate-analysis multivariate-timeseries pairwise-interactions time-series time-series-analysis
Last synced: 5 months ago · JSON representation

Repository

Comparative analysis of pairwise interactions in multivariate time series.

Basic Info
Statistics
  • Stars: 241
  • Watchers: 8
  • Forks: 30
  • Open Issues: 10
  • Releases: 14
Topics
complex-networks complex-systems multivariate-analysis multivariate-timeseries pairwise-interactions time-series time-series-analysis
Created over 5 years ago · Last pushed 6 months ago
Metadata Files
Readme License Code of conduct Security

README.md

pyspi logo

pyspi: Python Toolkit of Statistics for Pairwise Interactions


Python 3.8 | 3.9 | 3.10 | 3.11 | 3.12

pyspi is a comprehensive python library for computing statistics of pairwise interactions (SPIs) from multivariate time-series (MTS) data. The toolbox provides easy access to hundreds of methods for evaluating the relationship between pairs of time series, from simple statistics (like correlation) to advanced multi-step algorithms (like Granger causality). The code is licensed under the GNU GPL v3 license (or later).

Feel free to reach out for help with real-world applications. Feedback is much appreciated through issues, or pull requests.

| Section | Description | |:--------------|:----------------------| | Installation | Installing pyspi and its dependencies | | Getting Started | A quick introduction on how to get started with pyspi | | SPI Descriptions | A link to the full table of SPIs and detailed descriptions | | Documentation | A link to our API reference and full documentation on GitBooks | | Contributing to pyspi | A guide for community members willing to contribute to pyspi | | Acknowledgement | A citation for pyspi for scholarly articles | | Our Contributors | A summary of our primary contributors |


Installation 📥

The simplest way to get the pyspi package up and running is to install the package using pip install. For access to the full library of SPIs, the code requires GNU's Octave to be installed on your system.

1. Pre-Install Octave (Optional)

While you can safely install pyspi without first installing Octave, you will not have access to the full library of SPIs

2. Create a conda environment (Optional, Recommended)

While you can also install pyspi outside of a conda environment, it depends on a lot of user packages that may make managing dependencies quite difficult. So, we would also recommend installing pyspi in a conda environment. Firstly, create a fresh conda environment: conda create -n pyspi python=3.9.0 Once you have created the environment, activate it using conda activate pyspi.

3. Install with pip

Using pip for pyspi: pip install pyspi

For a more detailed guide on how to install pyspi, as well as how you can use pyspi without first installing Octave, please see the full documentation. Additionally, we provide a comprehensive troubleshooting guide for users who encounter issues installing pyspi on their system, as well as alternative installation options.

Getting Started 🚀

Once you have installed pyspi, you can learn how to apply the package by checking out the walkthrough tutorials in our documentation. Click any of the examples below to access the tutorials in our full documentation:

Advanced Usage

For advanced users, we offer several additional guides in the full documentation on how you can distribute your pyspi jobs across PBS clusters, as well as how you can construct your own subsets of SPIs.

SPI Descriptions 📋

To access a table with a high-level overview of the pyspi library of SPIs, including their associated identifiers, see the table of SPIs in the full documentation. For detailed descriptions of each SPI, as well as its associated estimators, we provide a full breakdown in the SPI descriptions page of our documentation.

Documentation

The full documentation is hosted on GitBooks. Use the following links to quickly access some of the key sections:

Contributing to pyspi 👨‍👨‍👦‍👦

Contributions play a vital role in the continual development and enhancement of pyspi, a project built and enriched through community collaboration. If you would like to contribute to pyspi, or explore the many ways in which you can participate in the project, please have a look at our detailed contribution guidelines about how to proceed. In contributing to pyspi, all participants are expected to adhere to our code of conduct.

SPI Wishlist

We strive to provide the most comprehensive toolkit of SPIs. If you have ideas for new SPIs or suggestions for improvements to existing ones, we are eager to hear from and collaborate with you! Any pairwise dependence measure, provided it is accompanied by a published research paper, typically falls within the scope for consideration in the pyspi library. You can access our SPI wishlist via the projects tab in this repo to open a request.

Acknowledgement 👍

If you use this software, please read and cite this article:

Note that preprint and free-to-read versions of this article are available.

Click here for a BibTex reference: ``` @article{Cliff2023:UnifyingPairwiseInteractions, title = {Unifying pairwise interactions in complex dynamics}, volume = {3}, issn = {2662-8457}, url = {https://www.nature.com/articles/s43588-023-00519-x}, doi = {10.1038/s43588-023-00519-x}, number = {10}, journal = {Nature Computational Science}, author = {Cliff, Oliver M. and Bryant, Annie G. and Lizier, Joseph T. and Tsuchiya, Naotsugu and Fulcher, Ben D.}, month = oct, year = {2023}, pages = {883--893}, } ```

Other highly comparative toolboxes 🧰

If you are interested in trying other highly comparative toolboxes like pyspi, see the below list:

  • hctsa, the highly comparative time-series analysis toolkit, computes over 7000 time-series features from univariate time series.
  • hcga, a highly comparative graph analysis toolkit, computes several thousands of graph features directly from any given network.

Our Contributors 🌟

We are thankful for the contributions of each and everyone who has helped make this project better. Whether you've added a line of code, improved our documentation, or reported an issue, your contributions are greatly appreciated! Below are some of the leading contributors to pyspi:

License 🧾

pyspi is released under the GNU General Public License.

Owner

  • Name: The Dynamics and Neural Systems Group, The University of Sydney
  • Login: DynamicsAndNeuralSystems
  • Kind: organization
  • Location: Sydney, Australia

We are a group of scientists working in The School of Physics at The University of Sydney, interested in understanding neural systems and their dynamics

GitHub Events

Total
  • Create event: 5
  • Issues event: 3
  • Release event: 1
  • Watch event: 27
  • Delete event: 2
  • Issue comment event: 21
  • Push event: 34
  • Pull request review comment event: 1
  • Pull request review event: 7
  • Pull request event: 11
  • Fork event: 4
Last Year
  • Create event: 5
  • Issues event: 3
  • Release event: 1
  • Watch event: 27
  • Delete event: 2
  • Issue comment event: 21
  • Push event: 34
  • Pull request review comment event: 1
  • Pull request review event: 7
  • Pull request event: 11
  • Fork event: 4

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 2
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 1 minute
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 minute
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Lucew (1)
  • jvdd (1)
  • rnartallo (1)
  • arnomesse (1)
  • MarziyehPourmousavi (1)
  • firmai (1)
  • fkiraly (1)
  • htapia (1)
  • ChenK19 (1)
  • mesner (1)
  • atlaie (1)
  • olivercliff (1)
  • ErronLLP (1)
Pull Request Authors
  • jmoo2880 (20)
  • joshuabmoore (5)
  • anniegbryant (3)
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels
enhancement (2) bug (1) documentation (1) dependencies (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 323 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 10
  • Total maintainers: 1
pypi.org: pyspi

Library for pairwise analysis of time series data.

  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 134 Last month
Rankings
Dependent packages count: 10.0%
Dependent repos count: 11.6%
Average: 31.4%
Downloads: 72.6%
Maintainers (1)
Last synced: 6 months ago
pypi.org: pyspi-lib

Library for pairwise analysis of time series data.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 189 Last month
Rankings
Dependent packages count: 9.9%
Average: 37.4%
Dependent repos count: 65.0%
Maintainers (1)
Last synced: about 1 year ago

Dependencies

requirements.txt pypi
  • cdt ==0.5.23
  • dill ==0.3.2
  • hyppo ==0.2.1
  • jpype1 ==1.2.0
  • mne ==0.23.0
  • nitime ==0.9
  • numpy >=1.21.1
  • oct2py ==5.2.0
  • pandas >=1.3.3
  • pyEDM ==1.9.3
  • pytest *
  • pyyaml ==5.4
  • scikit-learn ==0.24.1
  • scipy ==1.7.3
  • seaborn ==0.11.0
  • sktime ==0.8.0
  • spectral-connectivity ==0.2.4.dev0
  • statsmodels ==0.12.1
  • torch ==1.10.0
  • tqdm ==4.50.2
  • tslearn ==0.5.2
setup.py pypi
  • cdt ==0.5.23
  • dill ==0.3.2
  • hyppo ==0.2.1
  • jpype1 ==1.2.0
  • mne ==0.23.0
  • nitime ==0.9
  • numpy >=1.21.1
  • oct2py ==5.2.0
  • pandas >=1.3.3
  • pyEDM ==1.9.3
  • pyyaml ==5.4
  • scikit-learn ==0.24.1
  • scipy ==1.7.3
  • seaborn ==0.11.0
  • sktime ==0.8.0
  • spectral-connectivity ==0.2.4.dev0
  • statsmodels ==0.12.1
  • torch ==1.10.0
  • tqdm ==4.50.2
  • tslearn ==0.5.2
Dockerfile docker
  • python 3.9-slim-buster build
docs/requirements.txt pypi