Skip to content

childmindresearch/MoBI-Markers

MoBI Markers

Build codecov Ruff stability-experimental LGPL--2.1 License pages

A Python GUI application for sending LSL (Lab Streaming Layer) markers used in neuroscience research.

Features

  • Simple GUI Interface: Clean and intuitive interface built with PyQt6
  • LSL Stream Integration: Creates and manages an LSL marker stream
  • Real-time Marker Sending: Send custom string markers with a single click or Enter key
  • Status Logging: Real-time status updates and error reporting
  • Cross-platform: Works on Windows, macOS, and Linux

Installation

Prerequisites

  • Python 3.12 or higher
  • uv package manager

Install with uv

# Clone the repository
git clone <repository-url>
cd mobi-marker

# Install with uv (recommended)
uv sync

# Or install in development mode
uv sync --group dev

Install with pip

pip install -e .

Usage

Running the GUI Application

After installation, you can run the application in several ways:

# Using the installed script
mobi-marker

# Or directly with Python
python -m mobi_marker.main

# Or if installed in development mode
uv run mobi-marker

Using the Application

  1. Start the Application: The LSL stream starts automatically when the application launches
  2. Send Markers:
    • Type your marker text in the input field
    • Click "Send Marker" or press Enter
    • The marker will be sent through the LSL stream
  3. Monitor Status: View real-time status updates in the log area
  4. Clear Log: Use the "Clear Log" button to clear the status display

LSL Stream Details

  • Stream Name: MobiMarkerStream
  • Stream Type: Markers
  • Channel Count: 1
  • Data Format: String
  • Source ID: mobi_marker_gui_v1

Development

Setting up Development Environment

# Install with development dependencies
uv sync --group dev

# Install pre-commit hooks
uv run pre-commit install

Running Tests

# Run tests
uv run pytest

# Run tests with coverage
uv run pytest --cov=mobi_marker

Code Quality

# Run linting
uv run ruff check

# Run type checking
uv run mypy src

# Format code
uv run ruff format

Project Structure

mobi-marker/
├── src/
│   └── mobi_marker/
│       ├── __init__.py
│       ├── main.py
│       └── gui.py
├── tests/
├── pyproject.toml
└── README.md

Dependencies

  • PyQt6: GUI framework
  • pylsl: Lab Streaming Layer interface

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and linting
  5. Submit a pull request

License

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

Troubleshooting

Common Issues

  1. LSL Stream Not Starting:

    • Ensure pylsl is properly installed
    • Check that no other application is using the same stream name
  2. GUI Not Displaying:

    • Verify PyQt6 installation
    • Check system GUI framework compatibility
  3. Import Errors:

    • Ensure all dependencies are installed
    • Try running uv sync to reinstall dependencies

Support

For issues and questions, please open an issue on the GitHub repository.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages