Giter Club home page Giter Club logo

gspx's Introduction

gspx: Graph Signal Processing on eXtension algebras

coverage

Python package for implementing graph signal processing on extension (higher dimensional) algebras (currently, only quaternions).

Higher-dimensional algebras over the real numbers, beyond the complex numbers, present the benefit of encoding many features (dimensions, channels, you name it) within a single element. As such, differently from vector spaces, algebraic operations deal with all these features holistically, at once.

This package aims to implement an extension of graph signal processing (GSP) to higher-dimensional algebras, starting with quaternions, aiming towards dealing with signals having elements in a Clifford algebra.

This is part of my doctorate research at the Federal University of Pernambuco (UFPE), concluded in December 23th 2022, after the Thesis Defense and subsequent declaration of approval with no conditions. See the Thesis here.

Getting started

Check the links in the gspx-streamlit-apps repository, to see an online showcase of the gspx tools. Feel free to check also the source code in the repository, to verify how each app calls the gspx methods. The apps cover practical examples on Quaternion Graph Signal Processing, regarding

  • Graph and signal visualization,
  • QGFT and spectral analysis,
  • approximation of ideal filters with FIR LSI filters designed via QLMS.

For a robust example on QGFT and compression of a quaternion graph signal in a 1000-nodes graph using gspx, check this Google Colab notebook.

For a quick and simpler introduction on how to use gspx classes for quaternion matrices, check this tutorial.

Instalation

It is recommended to create a separated python environment to run gspx. If one chooses to install Miniconda (my personal favorite), an appropriate environment is created and open through the lines

conda create --name gspx_env python=3.7
conda activate gspx_env

Then, the packages can be pip-installed from Github,

python -m pip install git+https://github.com/gboaviagem/gspx@main

or one may choose to simply install its dependencies:

git clone https://github.com/gboaviagem/gspx
cd gspx
bash install.sh

Running unit tests locally

One may run the unit tests by using pytest:

python -m pytest --cov=gspx .

To update the coverage badge, run

rm coverage.svg && coverage-badge -o coverage.svg

Update version in production

Update setup.py version and packages and generate package by running:

python setup.py sdist bdist_wheel

Acknowledgements

The pre-commit hook used to verify codestyle was copied from https://github.com/cbrueffer/pep8-git-hook.

gspx's People

Contributors

gboaviagem avatar guilhermeboaviagem-neuro avatar

Stargazers

 avatar  avatar

Watchers

 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.