Skip to main content

Python package for building Aligned Hierarchies for sequential data streams

Project description

repytah

A Python package that builds aligned hierarchies for sequential data streams.

PyPI Anaconda-Server Badge

License CI

codecov

Documentation

See our website for a complete reference manual and introductory tutorials.

This example tutorial will show you a usage of the package from start to finish.

Statement of Need

Problems Addressed

Sequential data streams often have repeated elements that build on each other, creating hierarchies. Therefore, the goal of repytah is to extract these repetitions and their relationships to each other in order to form aligned hierarchies.

To learn more about aligned hierarchies, see this paper by Kinnaird (ISMIR 2016) which introduces aligned hierarchies in the context of music-based data streams.

Audience

People working with sequential data where repetitions have meaning will find repytah useful including computational scientists, advanced undergraduate students, younger industry experts, and many others.

An example application of repytah is in Music Information Retrieval (MIR), i.e., in the intersection of music and computer science.

Installation

The latest stable release is available on PyPI, and you can install it by running:

pip install repytah

If you use Anaconda, you can install the package using conda-forge:

conda install -c conda-forge repytah

To build repytah from source, say python setup.py build. Then, to install repytah, say python setup.py install.

Alternatively, you can download or clone the repository and use pip to handle dependencies:

unzip repytah.zip
pip install -e repytah

or

git clone https://github.com/smith-tinkerlab/repytah.git
pip install -e repytah

By calling pip list you should see repytah now as an installed package:

repytah (0.x.x, /path/to/repytah)

Current and Future Work - Elements of the Package

  • Aligned Hierarchies - This is the fundamental output of the package, of which derivatives can be built. The aligned hierarchies for a given sequential data stream is the collection of all possible hierarchical structure decompositions, aligned on a common time axis. To this end, we offer all possible structure decompositions in one cohesive object.
    • Includes walk through file example.py using supplied input.csv
  • Forthcoming Aligned sub-Hierarchies - (AsH) - These are derivatives of the aligned hierarchies and are described in Aligned sub-Hierarchies: a structure-based approach to the cover song task
  • Forthcoming Start-End and S_NL diagrams
  • Forthcoming SuPP and MaPP representations

MATLAB code

The original code to this project was written in MATLAB by Katherine M. Kinnaird. It can be found here.

Acknowledgements

This code was developed as part of Smith College's Summer Undergraduate Research Fellowship (SURF) from 2019 to 2022, and has been partially funded by Smith College's CFCD funding mechanism. Additionally, as Kinnaird is the Clare Boothe Luce Assistant Professor of Computer Science and Statistical & Data Sciences at Smith College, this work has also been partially supported by Henry Luce Foundation's Clare Boothe Luce Program.

Additionally, we would like to acknowledge and give thanks to Brian McFee and the librosa team. We significantly referenced the Python package librosa in our development process.

Citing

Please cite repytah using the following:

C. Jia et al., repytah: A Python package that builds aligned hierarchies for sequential data streams. Python package version 0.1.0, 2023. [Online]. Available: https://github.com/smith-tinkerlab/repytah.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repytah-0.1.0.tar.gz (3.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repytah-0.1.0-py3-none-any.whl (38.0 kB view details)

Uploaded Python 3

File details

Details for the file repytah-0.1.0.tar.gz.

File metadata

  • Download URL: repytah-0.1.0.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for repytah-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a4b7e1c1634d007572e4af036fde67cf6f098839664f79bbfebded2f9b2993be
MD5 30fe4e5d14f90f4a63206efb0532f545
BLAKE2b-256 1e8c470696ff3a58157a87e8dbf425903dc0c7ae6685a04dcd2f38b27bed887f

See more details on using hashes here.

File details

Details for the file repytah-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: repytah-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 38.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for repytah-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d02ee7ef4dce67b2599f7773b7da65244f6a45aad05d597f60afc0e09e1dde56
MD5 e59d89f0765ce792008fc52e5f5f4569
BLAKE2b-256 e66a8b890e524f63987c46eb3fbfdf5afcbc841f09a13c7b518a98067a216105

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page