Electrophysiology Visualization & Analysis Suite
Synaptipy is a high-performance graphical user interface (GUI) designed for the visualization and analysis of electrophysiological data, specifically focusing on Patch Clamp and intracellular recordings. Built on Python and the Qt6 framework, it provides a robust, cross-platform solution for managing complex datasets and executing batch analysis pipelines.
The application leverages hardware-accelerated plotting to handle high-frequency sampling data with minimal latency.
- High-Performance Rendering: Capable of displaying traces with millions of data points at 60 fps using OpenGL-based rendering.
- Interactive Navigation: Seamless zooming, panning, and scaling of waveforms.
- Multi-File Explorer: A tree-based file management system that synchronizes with the analysis view, allowing for rapid dataset traversal.
Synaptipy includes a comprehensive suite of analysis tools designed for neuronal characterization.
Automated detection and parameterization of Action Potentials (APs).
- Detection Logic: Configurable threshold-based detection with refractory period filtering.
- Metrics: Calculates AP amplitude, half-width, rise time, decay time, and after-hyperpolarization (AHP).
Identification of firing bursts based on inter-spike intervals (ISI).
- Algorithms: Implements standard burst detection algorithms (e.g., Poisson Surprise or max interval methods).
- Metrics: Burst duration, spike count per burst, intra-burst frequency.
Automated extraction of sub-threshold membrane properties.
- Resting Membrane Potential (RMP): Statistical calculation of baseline voltage.
- Input Resistance (Rin): Derived from voltage responses to hyperpolarizing current steps.
- Membrane Time Constant (Tau): Exponential fitting of the voltage decay.
Detection of spontaneous synaptic events in voltage or current clamp.
- Methods: Template matching and threshold-crossing detection algorithms.
- Filtering: Integrated digital filters (Low-pass, High-pass, Notch) for signal conditioning prior to detection.
Visualization of Action Potential dynamics in phase space.
- Plotting: Generates dV/dt versus Voltage plots for analyzing initiation dynamics and threshold voltages.
A dedicated engine for processing large datasets without manual intervention.
- Pipeline Architecture: Users can define sequential analysis steps (e.g., Filter -> Spike Detect -> Burst Analysis).
- Background Execution: Analysis tasks run in separate threads to maintain GUI responsiveness.
- Metadata Handling: Automatic extraction of recording metadata (Gain, Sampling Rate, DateTime) for structured results.
- Data Export: Aggregated results are exported to CSV formats compatible with statistical software (Python/Pandas, R, MATLAB).
Synaptipy adheres to a strict "Separation of Concerns" architecture for maintainability and scientific accuracy.
- Core Layer: Contains pure Python logic for signal processing and analysis. It is strictly decoupled from the GUI, ensuring that analysis algorithms can be tested and verified independently.
- Application Layer: Manages the PySide6 (Qt6) based user interface, handling user interactions and visualization state.
- Infrastructure Layer: Handles file I/O operations using the Neo and PyNWB libraries, ensuring broad compatibility with electrophysiology file formats (ABF, NWB, etc.).
| Component | Technology | Version Requirement |
|---|---|---|
| Language | Python | 3.11+ |
| GUI Framework | PySide6 | >= 6.7.0 |
| Plotting Engine | PyQtGraph | >= 0.13.0 |
| Data Standard | Neo / PyNWB | >= 0.14.0 / >= 3.1.0 |
| Computation | SciPy / NumPy | >= 1.13.0 / >= 2.0.0 |
Synaptipy is compatible with Windows, macOS, and Linux. The implementation relies on conda for environment management to handle system-level dependencies efficiently.
-
Clone the Repository
git clone https://github.com/anzalks/synaptipy.git cd synaptipy -
Create the Environment This step installs Python and all required system dependencies defined in
environment.yml.conda env create -f environment.yml
-
Activate the Environment
conda activate synaptipy
-
Install the Application Install the package in editable mode to allow for local development.
pip install -e ".[dev]"
To verify the installation, execute the comprehensive test suite:
python -m pytestLaunch the main application window:
synaptipy-guiAlternatively, run the module directly:
python -m Synaptipy.applicationThe core analysis engine can be utilized in scripts for headless processing:
from Synaptipy.core.analysis.batch_engine import BatchAnalysisEngine
from pathlib import Path
# Initialize the Analysis Engine
engine = BatchAnalysisEngine()
# Define an Analysis Pipeline
pipeline = [
{
'analysis': 'spike_detection',
'scope': 'all_trials',
'params': {'threshold': -20.0, 'refractory_ms': 2.0}
}
]
# Execute on Data Files
file_path = Path("data/example_recording.abf")
results = engine.run_batch([file_path], pipeline)
print(results)Contributions are welcome. Please refer to the documentation in the docs/ directory for development standards. Use the rules.md file as the authoritative source for architectural compliance and code style.
This project is licensed under the GNU Affero General Public License v3 (AGPLv3). See the LICENSE file for complete details.
Synaptipy Development Team