Skip to content

symseqbench/SymSeq

Repository files navigation

symseq

Python License Tests Documentation Preprint

! Development Status: 3 – Alpha: The codebase is still under active development, with several features missing features and potential API modifications. Use at your own risk. !

SymSeq is a Python library for defining, generating, and analyzing symbolic sequences. It contains core data structures for grammar and sequence generation, a diverse library of artificial language generators, interfaces for parsing user-supplied data, and a comprehensive suite of analysis metrics spanning multiple structural and linguistic scales.

Together with SeqBench, SymSeq forms a unified framework for symbolic sequence processing and benchmarking. A high-level overview of the combined framework and its capabilities can be found in the accompanying SymSeqBench paper.


Features

  • Symbolic Sequence Generation: Core algorithms for creating rule-based symbolic sequences.
  • Configurable Parameters: Flexible options to control sequence properties.
  • Metrics & Analysis: Tools to analyze generated sequences (e.g., complexity, statistical properties).
  • Extensible Task Framework: Define custom tasks or experiments.
  • Command-Line Interface: Utilities for generating and managing sequences from the terminal.

Installation

Using uv (recommended)

uv is an extremely fast Python package installer and resolver that greatly simplifies installation and dependency management.

  1. Install uv:
pip install uv
# or
pipx install uv
  1. Install symseq:
uv pip install symseq

Development installation

  1. Clone the repository:
git clone https://github.com/symseqbench/symseq.git
cd symseq
  1. Create and activate a virtual environment:
uv venv
source .venv/bin/activate  # Unix/macOS
# or
.venv\\Scripts\\activate     # Windows
  1. Install development dependencies:
uv pip install -e ".[dev]"

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please ensure your code follows appropriate coding standards and includes appropriate tests.

Citation


If you use the SymSeq library, please cite our paper.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

About

Python library for defining, generating, and analyzing symbolic sequences

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages