New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bioviewer

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bioviewer

This library is designed to build visualization tools for biosignals such as EEG or ECG.

  • 0.2.5
  • PyPI
  • Socket score

Maintainers
1

Overview

This library simplifies the process of managing and visualizing multi-channel signal data. It provides a high-level API to encapsulate signal data handling and visualization through flexible and intuitive classes.

The library is designed for data scientists, engineers, and researchers working with signal data, enabling them to focus on analysis and visualization without worrying about low-level implementation details.

Features

  • Streamlined Signal Management: Encapsulate multi-channel signal data with metadata such as sampling frequency and scale factors.
  • Dynamic Viscd ualization: Customize signal plots with channel-specific settings (e.g., colors, labels, and scales).
  • Interactive Viewer: Navigate through signals with keyboard controls and timestamps for quick analysis.

Installation

pip install bioviewer

Usage

1. Signal Creation

Create a Signal instance to encapsulate your data and its display settings:

import numpy as np
from bioviewer import Signal

# Generate example data (6 channels, 1000 time steps)
data = np.random.randn(6, 10000)

# Initialize the signal with custom settings
signal = Signal(
    data=data,
    fs=128,
    scale_factor='auto',
    y_ticks=['Ch1', 'Ch2', 'Ch3', 'Ch4', 'Ch5', 'Ch6'],
    unit='mV',
    colors='rgbcmy',
    linewidth=1,
    show_scale=True
)

2. Visualize with the Viewer

Combine multiple signals and visualize them interactively:

from bioviewer import Viewer

# Create signals
signal1 = Signal(data=data, fs=128)
signal2 = Signal(data=data, fs=128, colors='bbbkbr')

# Initialize the viewer
viewer = Viewer(
    signals=[signal1, signal2],
    figsize=(14, 4),
    t_start=0,
    windowsize=15,
    stepsize=13,
    timestamps=[10, 50, 100]
)

3. Keyboard Controls

  • Right Arrow: Move forward in time.
  • Left Arrow: Move backward in time.
  • n / b: Navigate to the next/previous timestamp.
  • z: Save the current view as an image.

Example

from bioviewer import Signal, Viewer
import numpy as np

# Load example signal data
data = np.random.randn(6, 100000)
timestamps = [3, 7, 12, 21]

# Create a signal
signal = Signal(data=data, fs=128, scale_factor='auto', unit='mV')

# Visualize using Viewer
viewer = Viewer(
    signals=[signal],
    timestamps=timestamps,
    windowsize=10
)

Jupyter notebooks

To enable interactive backends for Matplotlib plots in Jupyter Notebooks, use the following magic command:

%matplotlib widget

This command activates an interactive plot viewer, allowing you to interact with your visualizations directly within the notebook.

Contributing

Contributions are welcome! Feel free to submit a pull request or file an issue.

Support

For questions or issues, open a GitHub issue or contact me at [moritz.alkofer@protonmail.com].

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc