Synaptipy Logo

User Documentation

  • Synaptipy User Tutorial and Documentation
    • Table of Contents
    • 1. The Explorer Tab
      • 1.1 File Sidebar
      • 1.2 Plot Canvas
      • 1.3 Display Configuration Panel
      • 1.4 Toolbar
      • 1.5 Y-Axis Controls
      • 1.6 Adding Data to the Analyser
    • 2. Signal Preprocessing
      • 2.1 Digital Filters
      • 2.2 Baseline Subtraction Methods
      • 2.3 Artifact Blanking
      • 2.4 Trace Quality Assessment
    • 3. The Analyser Tab
      • 3.1 File and Data Source Selection
      • 3.2 Analysis Sub-Tab Features
      • 3.3 Shared Controls
      • 3.4 Popup Windows
      • 3.5 Session Summary
      • 3.6 Adding Your Own Analysis Tab
        • Bundled Example Plugins
        • Step 1 - Create the plugin file
        • Step 2 - Write your analysis function
        • Step 3 - Define parameter widgets (ui_params)
        • Step 4 - Define plot overlays (plots)
        • Step 5 - Control what shows in the results table
        • Step 6 - Restart and use
        • Tips
    • 4. Analysis Modules - Detailed Reference
      • 4.1 Baseline / RMP Analysis
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.2 Spike Detection
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.3 Event Detection - Threshold Based
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.4 Event Detection - Template Match / Deconvolution
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.5 Event Detection - Baseline Peak / Kinetics
        • Parameters
        • Methods
        • Results
      • 4.6 Input Resistance (Rin)
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.7 Tau (Membrane Time Constant)
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.8 I-V Curve
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.9 Burst Analysis
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.10 Capacitance
        • Parameters
        • Methods
        • Results
      • 4.11 Excitability (F-I Curve)
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.12 Optogenetic Synchronization
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.13 Paired-Pulse Ratio (PPR)
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.14 Stimulus Train (STP)
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.15 Phase Plane Analysis
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.16 Spike Train Dynamics
        • Parameters
        • Methods
        • Results
        • Visualization
      • 4.17 Sag Ratio (I_h)
        • Parameters
        • Methods
        • Results
        • Visualization
    • 5. Batch Processing
      • 5.1 Overview
      • 5.2 Opening the Batch Dialog
      • 5.3 Building a Pipeline
      • 5.4 Running and Cancellation
      • 5.5 Output Columns
        • Metadata columns (always present, appear first)
        • Analysis result columns (middle, alphabetically sorted)
        • Array-valued results
        • Trailing / debug columns
      • 5.6 Export Formats
      • 5.7 Programmatic / Headless Batch Usage
      • 5.8 Pipeline Context and Preprocessing
      • 5.9 Troubleshooting
    • 6. The Exporter Tab
      • 6.1 NWB Export
      • 6.2 Analysis Results Export
      • 6.3 Plot Export
    • 7. Preferences and Customization
      • 7.1 Preferences Dialog (Edit → Preferences)
      • 7.2 Plot Customization Dialog (View → Plot Customization)
      • 7.3 Analysis Defaults (Edit → Configure Analysis Defaults)
    • Appendix A: Supported File Formats
    • Appendix B: Architecture
      • Adding Your Own Analysis (Plugin Interface)
  • Synaptipy User Guide
    • Table of Contents
    • Installation
      • Requirements
      • Standard Installation
        • Standalone Application (Recommended)
        • Python Package Installation
      • Developer Installation
    • Getting Started
      • Running the Application
      • User Interface Overview
      • Quick Start with Demo Data
    • Loading Data
      • Supported File Formats
      • Opening Files
    • Using the Explorer Tab
      • Navigation Controls
      • Plot Options
    • Using the Analyser Tab
      • Input Resistance/Conductance Analysis
      • Baseline/RMP Analysis
      • Evoked Responses
        • Evoked Sync
        • Paired-Pulse Ratio
        • Stimulus Train (STP)
      • Sag Ratio (Ih) Analysis
      • Additional Analysis Modules
      • Visual Validation Overlays
    • Using the Exporter Tab
      • Exporting to NWB
      • Exporting Analysis Results
    • Advanced Options
      • Reproducibility: How GUI Adjustments Serialize to the Batch Engine
        • Parameter capture
        • Interactive region handles
        • SessionManager serialization
        • Batch engine replay
        • Preprocessing pipeline
      • Preferences
      • Checking for Updates
        • Enable Custom Plugins - Hot-Reload Mechanism
        • Included Example Plugins
      • Command Line Arguments
      • Logging and Debugging
    • Licensing
    • Troubleshooting
      • Common Issues
      • Biological Troubleshooting
    • Analysis Parameter Reference
      • Getting Help
  • Algorithmic Definitions
    • 1. Baseline / Resting Membrane Potential (RMP)
    • 2. Input Resistance (\(R_{\text{in}}\))
      • 2.1 Series-Resistance Artifact Blanking
      • 2.2 Peak \(R_{\text{in}}\) and Steady-State \(R_{\text{in}}\) (\(I_h\) correction)
    • 3. Membrane Time Constant (\(\tau\))
      • 3.1 Mono-exponential model
      • 3.2 Bi-exponential model
    • 4. Sag Ratio
      • 4.1 Ratio form (default)
      • 4.2 Percentage form
      • 4.3 Rebound depolarisation
    • 5. Capacitance (\(C_m\))
      • 5.1 Current-clamp mode
      • 5.2 Voltage-clamp mode
      • 5.3 Current-clamp series resistance (\(R_s^{\text{CC}}\))
    • 6. Spike Detection and Action Potential Features
      • 6.1 Threshold crossing
      • 6.2 Onset detection (dV/dt-based)
      • 6.3 Amplitude
      • 6.4 Half-width
      • 6.5 Rise time (10-90%)
      • 6.6 Decay time (90-10%)
      • 6.7 Afterhyperpolarisation (AHP)
      • 6.8 Afterdepolarisation (ADP)
      • 6.9 Maximum and minimum dV/dt
      • 6.10 Absolute Peak Voltage and Overshoot
    • 7. Event Detection
      • 7.1 Threshold-based detection
      • 7.2 Template-match / matched-filter cross-correlation
      • 7.3 Baseline-peak detection
      • 7.4 Local Pre-Event Baseline (Dynamic Amplitude for Summating Events)
    • 8. I-V Curve
    • 9. Burst Analysis
    • 10. Excitability (F-I Curve)
    • 11. Phase Plane Analysis
    • 12. Spike Train Dynamics
    • 13. Optogenetic Synchronisation
    • 14. Signal Preprocessing
      • 14.1 Digital filters
      • 14.2 Baseline subtraction
      • 14.3 Artifact blanking
      • 14.4 Trace quality assessment
    • References
      • Spike detection and AP threshold
      • Patch-clamp methodology
      • Signal processing
      • Spike-train statistics
      • NWB / FAIR data
    • 15. Advanced Biophysics (Publication Audit)
      • 15.1 Voltage-Clamp Series Resistance and True Membrane Capacitance
      • 15.2 Dynamic AP Threshold via Maximum Curvature (\(d^2V/dt^2\))
      • 15.3 Separation of Fast AHP and Medium AHP
      • 15.4 Multi-Kernel Dendritic Tolerance in Template Matching
      • 15.5 PPR Residual Fitting - Bi-Exponential Upgrade
      • 15.6 Noise Floor Detrending in Quiescent Baseline RMS
        • Sliding-window algorithm and event exclusion
    • 16. Immutable Trace Correction Pipeline
      • Step A - Liquid Junction Potential (LJP) Subtraction
      • Step B - P/N Leak Subtraction
      • Step C - Pre-Event Noise Floor Zeroing
      • Step D - Signal Filtering
    • 17. 5-Pillar Analyser Architecture
  • NWB Export Mapping
    • Container Mapping
    • Series Class Selection
    • SI Unit Conversion
    • Electrode Metadata
    • Session Metadata
    • Subject Metadata
    • Sweep Organisation
    • Limitations and Future Work
    • Per-Analysis-Module PyNWB Class Mapping
      • Notes on icephys best-practice containers
    • Programmatic Usage
  • Writing Custom Analysis Plugins for Synaptipy
    • Table of Contents
    • 1. Overview - How the Plugin System Works
    • 2. Quick Start - Your First Plugin in 5 Minutes
    • 3. The Plugin File - Anatomy of a Custom Analysis
      • 3.1 Part 1: Pure Analysis Logic
      • 3.2 Part 2: Registry Wrapper
      • 3.3 Return Dict Conventions
    • 4. Defining GUI Parameters (ui_params)
      • 4.1 float Parameter
      • 4.2 int Parameter
      • 4.3 choice / combo Parameter
      • 4.4 bool Parameter
      • 4.5 Common Optional Fields
      • 4.6 Conditional Visibility (visible_when)
    • 5. Defining Plot Overlays (plots)
      • 5.1 hlines - Horizontal Lines
      • 5.2 vlines - Vertical Lines
      • 5.3 markers - Scatter Points
      • 5.4 interactive_region - Draggable Region
      • 5.5 threshold_line - Draggable Threshold
      • 5.6 overlay_fit - Curve Overlay
      • 5.7 popup_xy - Popup Scatter/Line Plot
      • 5.8 brackets - Burst/Event Brackets
      • 5.9 event_markers - Interactive Event Points
      • 5.10 trace - Base Trace with Overlay
      • 5.11 fill_between - Shaded Region Between Two Curves
      • 5.12 trace_overlay - Highlight a Region on the Raw Trace
      • 5.13 event_fit_overlay - Overlay Fitted Event Decay Curves
    • 6. Where to Put Your Plugin File
      • Option A: Built-in Examples Directory
        • Included Example Plugins
      • Option B: User Plugin Directory (recommended for personal additions)
      • Option C: Built-in Module (for core contributors)
    • 7. For Core Contributors - Adding a Built-in Analysis
    • 8. Testing Your Plugin
      • Unit-testing the logic function
      • Integration-testing the registry wrapper
      • Testing the template shipped with Synaptipy
    • 9. Full Annotated Example - Synaptic Charge Transfer
    • 10. Applying Global Themes to Plugins
      • How the theme reaches your plugin
      • Returning styled plot data
      • Listening to live theme changes in a popup window
    • 11. Troubleshooting
  • Synaptipy API Reference
    • Table of Contents
    • Core Components
      • Data Model
        • UndoStack
        • Channel
        • Recording
        • Experiment
        • Usage Example
      • File Readers
        • NeoAdapter
        • Usage Example
      • Analysis Modules
        • Module 1 - Passive Membrane Properties
        • Module 2 - Single Spike Analysis
        • Module 3 - Firing Dynamics
        • Module 4 - Synaptic Events
        • Module 5 - Evoked Responses
        • Analysis Registry
        • Usage Example - Registry
      • Batch Processing
        • Output Design Principles
        • BatchAnalysisEngine
        • Usage Example
        • Epoch Manager
      • Signal Processing
        • validate_sampling_rate()
        • check_trace_quality()
        • bandpass_filter()
        • lowpass_filter()
        • highpass_filter()
        • notch_filter()
        • comb_filter()
        • subtract_baseline_mode()
        • subtract_baseline_mean()
        • subtract_baseline_median()
        • subtract_baseline_linear()
        • subtract_baseline_region()
        • blank_artifact()
        • find_artifact_windows()
        • compute_psd()
        • multi_harmonic_notch()
        • Processing Pipeline
      • Plugin System
        • PluginManager
        • Usage Example
      • Exporters
        • NWB Exporter
        • Usage Example
    • Licensing

Developer Documentation

  • Synaptipy Developer Guide
    • Table of Contents
    • Development Environment Setup
      • Prerequisites
      • Setting Up Your Development Environment
    • Project Structure
    • 5-Pillar Analyser Architecture
      • Immutable Trace Correction Pipeline
    • Writing Custom Analysis Plugins
    • Development Workflow
      • Feature Development
      • Code Review Process
    • Testing
      • Running Tests
      • CI Test Matrix
      • Golden Master Tests
      • Writing Tests
    • CI Behaviour and Platform-Specific Test Rules
      • Analysis Registry import rule - DO NOT import only registry.py
      • Editable install must point to the active workspace
      • Why local macOS tests always exit non-zero
      • GC must be disabled in offscreen mode
      • processEvents() before addPlot() in offscreen mode
      • removePostedEvents() must skip macOS
      • enableMenu=False in offscreen mode
      • Plot teardown order
    • Coding Standards
      • Formatting your code
    • License Compliance
      • License Requirements
      • Adding New Files
      • Third-Party Dependencies
  • Development Guides
    • Overview
    • Code Quality
    • Key Design Rules
    • Contributing
      • Synaptipy Styling Guide
        • Overview
        • Key Components
        • How to Use
        • Best Practices
        • Architecture Benefits
        • Migration from Previous System
  • Architecture & Design Decisions
    • Log Error Analysis - All Errors from File Addition Onwards
      • Summary
      • Error 1: Method Name Mismatch in _gather_analysis_parameters
        • Error Type
        • Location
        • Problem Description
        • Root Cause
        • Impact
        • Fix Applied
        • Verification
      • Error 2: Method Name Mismatch in _execute_core_analysis
        • Error Type
        • Location
        • Problem Description
        • Root Cause
        • Impact
        • Fix Applied
        • Verification
      • Error 3: NumPy Array Boolean Ambiguity in RMP Tab
        • Error Type
        • Location
        • Problem Description
        • Root Cause
        • Impact
        • Stack Trace (Expected)
        • Fix Applied
        • Verification
      • Error 6: Uninitialized plot_widgets Attribute
        • Error Type
        • Location
        • Problem Description
        • Root Cause
        • Impact
        • Fix Applied
        • Verification
      • Pattern Analysis
        • Common Themes
        • Prevention Strategies
      • Testing Results
      • Error 4: Non-Existent Attributes in Parameter Gathering
        • Error Type
        • Location
        • Problem Description
        • Root Cause
        • Impact
        • Fix Applied
        • Verification
      • Error 5: Incorrect Function Name in Analysis Execution
        • Error Type
        • Location
        • Problem Description
        • Root Cause
        • Impact
        • Fix Applied
        • Verification
      • Summary of All Fixes
      • Recommendations
      • Conclusion
    • Plot Customization Performance Optimizations
      • Overview
      • Key Performance Issues Identified
        • 1. Data Reloading Problem
        • 2. Inefficient Plot Updates
        • 3. Excessive Signal Emissions
      • Implemented Optimizations
        • 1. Pen-Only Updates
        • 2. Smart Update Detection
        • 3. Data Caching System
        • 4. Pen Caching in Customization Manager
        • 5. Debounced Signal Emissions
        • 6. Batch Preference Updates
        • 7. Change Detection in UI Dialog
      • Performance Impact
        • Before Optimizations
        • After Optimizations
      • Resource Usage Optimization
        • Thicker Plots
        • Memory Management
      • Implementation Details
        • Explorer Tab Optimizations
        • Analysis Tab Optimizations
        • Main Window Optimizations
        • Customization Manager Optimizations
      • Testing and Validation
        • Unit Tests
        • Integration Tests
      • Future Enhancements
        • Potential Additional Optimizations
        • Monitoring and Metrics
      • Conclusion
    • Rendering Performance Optimizations
      • Overview
      • Part 1: Optimized PyQtGraph Downsampling and Clipping
        • Problem
        • Solution
        • Code Changes
        • Impact
      • Part 2: Force Opaque Trials Option (Performance Mode)
        • Problem
        • Solution
        • Code Changes
        • Impact
      • Part 3: Debounced Zoom/Pan Slider/Scrollbar Interactions
        • Problem
        • Solution
        • Code Changes
        • Impact
      • Performance Benchmarks
        • For a file with 50 trials, 2 channels, 10s duration:
      • Test Results
      • Files Modified
      • User Guide
        • How to Use Force Opaque Trials
        • Verifying Optimizations
      • Technical Details
        • Downsampling Mode: ‘peak’
        • ClipToView
        • Debounce Timer Interval: 50ms
        • Alpha Blending Cost
      • Future Enhancements (Optional)
      • Part 4: ViewBox Signal Management for File Cycling (March 2026)
        • Problem
        • Root Causes
        • Solutions
        • Impact
      • Debugging
      • Conclusion
  • Manuals
    • Cross-Platform Setup for Synaptipy
      • Problem Statement
      • New Solution: Single Environment Approach
        • What Changed:
        • How It Works:
      • Implementation Details
        • 1. Single Environment File (environment.yml)
        • 2. Clean Setup.py
        • 3. Clean PyProject.toml
      • Cross-Platform Compatibility
        • Windows
        • macOS
        • Linux
        • Standalone Installers (Recommended)
      • Installation Commands
        • One-Command Installation (Recommended)
        • Manual Installation
        • Custom Environment Name
      • Benefits
      • Testing
      • How Conda Handles OS-Specific Packages
      • Repository Structure
      • Result
    • Manual Testing Guide for Performance Fixes
      • Prerequisites
      • Test 1: Verify Fast File Loading (Fix 4)
      • Test 2: Verify Multi-Channel Data Loading (Fix 3)
      • Test 3: Verify Plot Customization Performance (Fixes 1 & 2)
      • Test 4: Verify Fast Plotting for Large Files (Fix 5)
      • Test 5: Verify Linked X-Axis Zooming (Fix 6)
      • Test 6: Verify Overlay Mode Still Works (Fix 5 Regression Check)
      • Performance Benchmarks
      • Troubleshooting
        • If plots are empty:
        • If file loading is still slow:
        • If plot updates lag:
        • If trial navigation is slow:
        • If zoom isn’t linked:
      • Success Criteria
      • Reporting Issues

Development Logs

  • Development Logs
    • Bug 13: AttributeError - Recording Object Has No ‘protocol’ Attribute
      • Problem Description
      • Root Cause
      • Impact on User
      • Fix Applied
      • Verification
      • Notes
        • Why This Bug Occurred
        • Proper Solution
      • Total Bugs Fixed
    • Bug 14: Automatic Analysis Triggering Before User Input
      • Problem Description
        • User Experience Before Refactoring
        • User Experience After Refactoring (Broken)
      • Root Cause
        • Location 1: _on_data_plotted() (line 516)
        • Location 2: _on_mode_changed() (line 800)
      • The Fix
        • Change 1: Remove Auto-Trigger on Data Plot (line 516)
        • Change 2: Remove Auto-Trigger on Mode Change (line 800)
      • How Analysis Triggers Now (Correct Behavior)
        • Interactive Mode
        • Manual Mode
      • Verification
      • Testing Instructions
      • Lessons Learned
        • Don’t Assume User is Ready
        • Refactoring Template Methods Carefully
        • Test the User Experience
    • Bug 15: _current_plot_data Cleared After Being Set
      • Problem Description
        • Root Cause
      • The Fix
        • Files Fixed
        • Code Changes
      • Why This Happened
      • Verification
      • Lessons Learned
        • 1. Ownership of Data Structures
        • 2. Call Order Matters
        • 3. Cleanup During Refactoring
      • Testing Instructions
    • Critical Performance and Data-Loading Bug Fixes
      • Overview
        • Phase 1 Fixes (Initial)
        • Phase 2 Fixes (Performance Overhaul)
      • Fix 1: Resolve Critical UI Lag in plot_customization.py
        • Problem
        • Solution
        • Code Change
        • Impact
      • Fix 2: Optimize Pen Update Loop in explorer_tab.py
        • Problem
        • Solution
        • Code Change
        • Impact
      • Fix 3: Correct Multi-Channel Data Loading in neo_adapter.py
        • Problem
        • Root Cause
        • Solution
        • Code Change
        • Impact
      • Validation
        • Syntax Check
        • Test Suite
      • Performance Improvements
      • Files Modified
      • Testing Recommendations
        • Manual Testing Checklist
        • Expected Behavior
      • Notes
      • Fix 4: Eliminate Double-Loading Architectural Flaw
        • Problem
        • Solution
        • Code Changes
        • Impact
      • Fix 5: Optimize Plotting for Large Files
        • Problem
        • Solution
        • Code Change
        • Impact
      • Fix 6: Enable Linked X-Axis Zooming
        • Problem
        • Solution
        • Code Change
        • Impact
      • Updated Performance Improvements
      • Updated Files Modified
        • Phase 1:
        • Phase 2:
      • Git Commit Message Template
    • Bug Fix Verification Report
      • Summary
      • Bug 1: Missing Null Check in _trigger_analysis
        • Description
        • Location
        • Fix Applied
        • Verification
      • Bug 2: Duplicate and Conflicting Method Definitions
        • Description
        • Location
        • Fix Applied
        • Verification
      • Bug 3: Incorrect Attribute Names in Signal Connections
        • Description
        • Location
        • Fix Applied
        • Verification
      • Bug 4: Incorrect Channel API Method Calls in _plot_selected_data
        • Description
        • Location
        • Fix Applied
        • Verification
      • Bug 5: Incorrect Attribute Reference in event_detection_tab.py
        • Description
        • Location
        • Fix Applied
        • Verification
      • Bug 6: Incorrect Attribute Reference in spike_tab.py
        • Description
        • Location
        • Fix Applied
        • Verification
      • Additional Fixes
        • Indentation Error in rmp_tab.py
      • Implementation of Phase 1-3 Infrastructure
        • Phase 1: Data Selection and Plotting (Lines 597-833)
        • Phase 2: Template Method Pattern (Lines 835-913, 607-651)
        • Phase 3: Real-Time Parameter Tuning (Lines 915-924)
      • Test Results
      • Files Modified
      • Bug 7: Incorrect Method Name Check in _gather_analysis_parameters
        • Description
        • Location
        • Fix Applied
        • Verification
      • Bug 8: Incorrect Method Name Check in _execute_core_analysis
        • Description
        • Location
        • Fix Applied
        • Verification
      • Bug 9: Ambiguous NumPy Array Boolean in rmp_tab.py
        • Description
        • Location
        • Fix Applied
        • Verification
      • Bug 10: Non-Existent Attributes in “Baseline + Peak + Kinetics” Parameter Gathering
        • Description
        • Location
        • Fix Applied
        • Verification
      • Bug 11: Incorrect Function Name and Signature in “Baseline + Peak + Kinetics” Execution
        • Description
        • Location
        • Fix Applied
        • Function Signature
        • Verification
      • Bug 12: Uninitialized plot_widgets Attribute
      • Conclusion
    • Synaptipy Code Review - Error Report
      • Summary
      • 1. Syntax Errors
      • 2. Logical Errors
        • 2.1 Spike Analysis Tab
        • 2.2 Resistance/Intrinsic Properties Tab
        • 2.3 Data Loader
        • 2.4 Explorer Tab
      • 3. UI Errors
        • 3.1 Analysis Tabs
        • 3.2 Button Enable States
        • 3.3 Plot Widget Initialization
      • 4. Error Handling
        • 4.1 Exception Handling Coverage
        • 4.2 Logging
      • 5. Summary of Issues Found
        • Critical Issues: 0
        • High Priority Issues: 2
        • Medium Priority Issues: 1
        • Low Priority Issues: 2
      • 6. Recommended Fixes
        • Fix 1: Add region checks in _calculate_tau()
        • Fix 2: Add region checks in _calculate_sag_ratio()
        • Fix 3: Add button existence checks
      • 7. Testing Recommendations
      • Fixes Applied
        • Fix 1: Added region check in _calculate_tau() (Line 1286-1288)
        • Fix 2: Added region checks in _calculate_sag_ratio() (Line 1306-1308)
      • Conclusion
    • User Experience Fix: Better Error Messages
      • Problem Description
        • Why This Happened
      • The Fix
        • Code Changes
      • User Experience Comparison
        • Before Fix
        • After Fix
      • How to Use Rin Analysis
        • Voltage Clamp Mode
        • Current Clamp Mode
      • Technical Notes
        • Design Pattern
        • Why Not Remove the Generic Error?
      • Verification
      • Recommendations for Future Tabs
    • Explorer X-Axis Shift Fix
      • Overview
      • Symptoms
      • Root Causes
        • 1. Stale ViewBox signals from deleteLater()’d widgets
        • 2. X-link range recalculation from screen geometry
        • 3. Y range computed from trial 0 only
      • Deferred Initial Reset
      • Files Modified
      • Verification
    • AnalyserTab Layout Refactoring
      • Overview
      • Changes Implemented
        • 1. src/Synaptipy/application/gui/analyser_tab.py
        • 2. src/Synaptipy/application/gui/analysis_tabs/base.py
        • 3. src/Synaptipy/application/__main__.py
      • Architecture Benefits
        • Before
        • After
      • Benefits
      • Testing
        • Import Test
        • Unit Tests
      • Migration Notes for Subclasses
        • What Changed for Analysis Tab Developers
        • Example Migration
      • Future Enhancements
      • Files Modified
      • Verification
      • Conclusion
    • Phase 2 & 3 Refactoring - FINAL SUMMARY
      • Issue Found and Fixed
        • Problem
        • Solution
        • Files Fixed
      • Test Results (After Fix)
        • Individual Test Files (No Qt Cleanup Issues)
        • Note on Segmentation Fault
      • Complete Implementation Summary
        • Phase 2: Template Method Pattern
        • Phase 3: Real-Time Parameter Tuning
      • Code Quality Verification
      • Benefits Delivered
        • 1. Code Quality
        • 2. User Experience
        • 3. Maintainability
      • Files Modified (Final List)
      • Technical Highlights
        • Metaclass Solution
        • Template Method Pattern
        • Debouncing Pattern
      • Completion Checklist
      • Next Steps (Optional)
      • Conclusion
    • Synaptipy Analysis Module Refactoring - Implementation Summary
      • Overview
      • Phases Completed
        • Phase 1: Unify Data Selection and Plotting (Previously Completed)
        • Phase 2: Template Method Pattern for Analysis Execution (NEW)
        • Phase 3: Real-Time Parameter Tuning with Debounce (NEW)
      • Implementation Statistics
        • Files Modified
        • Code Metrics
        • Key Architectural Improvements
      • Technical Highlights
        • 1. Template Method Implementation
        • 2. Debounce Timer Usage
        • 3. Metaclass Conflict Resolution
      • Benefits Achieved
        • 1. Code Quality
        • 2. Developer Experience
        • 3. User Experience
      • Backward Compatibility
      • Testing Status
        • Compilation Tests
        • Recommended GUI Testing
      • Phase 4: Future Work (Optional)
      • Files Changed Summary
        • Modified Files (5)
        • Documentation Files Created (6)
      • Conclusion
      • Next Steps
    • REFACTORING PHASE 1 - COMPLETE SUCCESS
      • Achievement Unlocked: 100% Test Pass Rate
      • What Was Accomplished
        • Files Modified: 5
        • Net Impact
      • Design Patterns Implemented
        • 1. Template Method Pattern
        • 2. Hook Method Pattern
        • 3. Don’t Repeat Yourself (DRY)
      • Test Coverage
        • RMP Tab (Baseline Analysis)
        • Rin Tab (Resistance/Conductance)
        • Other GUI Tests
      • Key Improvements
        • Before Refactoring
        • After Refactoring
      • Code Quality Metrics
      • Developer Experience
        • Old Way (Before)
        • New Way (After)
      • Backward Compatibility
      • Future Benefits
      • Lessons Learned
      • Credits
      • Phase 2 & 3 - Optional
    • Refactoring Test Plan
      • Objective
      • Test Strategy
        • Phase 1: Pre-Refactoring Tests
        • Phase 2: Incremental Refactoring with Testing
        • Phase 3: Expand to Other Tabs
      • Test Execution Plan
        • 1. Run Existing Tests
        • 2. Check Linting
        • 3. Manual Testing Checklist for RMP Tab
        • 4. Regression Testing
      • Risk Mitigation
        • Low Risk Changes:
        • Medium Risk Changes:
        • High Risk Changes:
        • Mitigation Strategy:
      • Success Metrics
        • Quantitative:
        • Qualitative:
      • Rollback Plan
      • Timeline
      • Decision Point
    • Refactoring Test Results
      • Pre-Refactoring Baseline (Current State)
        • Test Execution Date: 2025-01-06
        • RMP Tab Tests - BASELINE
        • Rin Tab Tests - BASELINE
      • Refactoring Implementation Plan
        • Step 1: Modify BaseAnalysisTab
        • Step 2: Refactor RMP Tab
        • Step 3: Validation
      • Success Criteria
        • Automated Tests
        • Code Quality
        • Functionality
      • Post-Refactoring Results
        • After BaseAnalysisTab Changes
        • After RMP Tab Refactoring
        • After Rin Tab Refactoring
      • Summary: Phase 1 Complete
    • Analysis Functions, UI Elements, and Failure Points
      • Overview
      • 1. Basic Features Analysis
        • 1.1 Resting Membrane Potential (RMP) / Baseline Analysis
      • 2. Intrinsic Properties Analysis
        • 2.1 Input Resistance (Rin) / Conductance
        • 2.2 Membrane Time Constant (Tau)
        • 2.3 Sag Ratio
      • 3. Spike Analysis
        • 3.1 Threshold-Based Spike Detection
      • 4. Event Detection Analysis
        • 4.1 Threshold-Based Event Detection
        • 4.2 Deconvolution-Based Event Detection
        • 4.3 Baseline + Peak + Kinetics Detection
      • 5. Common Failure Points Across All Analysis Functions
        • 5.1 Data Loading Failures
        • 5.2 UI State Management Failures
        • 5.3 Plotting Failures
        • 5.4 Save Functionality Failures
        • 5.5 Threading/Concurrency Issues
        • 5.6 Memory Issues
        • 5.7 Error Handling Gaps
      • 6. Recommendations for Improvement
      • 7. Summary Statistics
    • Explorer Tab Right Panel Layout Update
      • Overview
      • Changes Made
        • 1. Analysis Selection Group - Moved to Right Panel
        • 2. File Explorer Group - Size Adjustment
        • 3. File Cycling Buttons - Confirmed Present
      • Layout Structure
        • Before
        • After
      • Benefits
      • Technical Details
        • File Modified
        • Key Changes
        • UI References Preserved
      • File Cycling Buttons Behavior
        • Visibility Logic (from _update_ui_state())
        • When Buttons Appear
      • Testing
        • Structural Verification
        • Visual Testing Steps
      • Compatibility
      • Related Files
      • Future Enhancements
      • Conclusion
    • Interaction Debouncing Implementation
      • Overview
      • Changes Made
        • 1. Timer Initialization in __init__ (Lines 135-164)
        • 2. Signal Handler Updates
        • 3. Debounced Apply Methods
        • 4. Key Implementation Details
      • Performance Benefits
      • Verification
      • Usage
      • Future Enhancements
    • Debouncing Implementation Verification
      • Summary
      • What Was Changed
        • Files Modified
        • Implementation Details
      • Testing
        • Automated Tests
        • Manual Verification Steps
      • Performance Improvements
        • Before Debouncing
        • After Debouncing
        • Measured Impact
      • Technical Notes
        • Why 50ms?
        • Why Inline Logic?
        • Per-Channel Timers
        • Update Guards
      • Troubleshooting
        • If Lag Persists
        • If Tests Fail
      • Future Enhancements
      • Conclusion
    • Interaction Debouncing Implementation - Complete
      • Executive Summary
      • Problem Statement
      • Solution Implemented
        • 1. Debouncing Pattern
        • 2. Controls Debounced
        • 3. Implementation Details
      • Files Modified
        • 1. src/Synaptipy/application/gui/explorer_tab.py
        • 2. README.md
        • 3. Documentation Files Created
      • Performance Improvements
        • Quantitative
        • Qualitative
      • Testing Results
        • Automated Tests
        • Linter Status
      • Technical Design Decisions
        • 1. Why 50ms Debounce Interval?
        • 2. Why Inline Logic Instead of Helper Delegation?
        • 3. Why Lazy Per-Channel Timers?
        • 4. Why Update Guards?
      • Code Quality
        • Logging
        • Documentation
        • Testing
      • Future Enhancements
        • 1. Adaptive Debouncing
        • 2. Progressive Rendering
        • 3. OpenGL Acceleration
        • 4. Smart Downsampling
      • Maintenance Notes
        • To Adjust Debounce Interval
        • To Add New Debounced Control
        • To Troubleshoot Lag
      • Commit Information
        • Branch
        • Files Changed
        • Commit Message
      • Conclusion
    • Performance Optimizations - Implementation Summary
      • All Implementations Complete
        • Part 1: Force Opaque Trials Feature
        • Part 2: Interaction Debouncing
        • Critical Bug Fix: PyQtGraph Downsampling API
      • Test Results
      • Files Modified Summary
        • Implementation Files (5 files)
        • Test Files (2 files)
      • Performance Improvements
        • Force Opaque Trials
        • Interaction Debouncing
      • User Instructions
        • Testing the Force Opaque Feature
        • Testing Debouncing
        • Verifying the Downsampling Fix
      • Logging Output Examples
        • Force Opaque Mode
        • Debouncing
        • Successful File Loading (After Downsampling Fix)
      • Technical Notes
        • Core Functionality Preserved
        • API Compatibility
      • Ready for Production
    • Final Performance Optimizations Implementation Report
      • ALL SPECIFICATIONS FULLY IMPLEMENTED
      • Part 1: Force Opaque Trials Performance Feature
        • File 1: src/Synaptipy/shared/plot_customization.py
        • File 2: src/Synaptipy/application/gui/plot_customization_dialog.py
        • File 3: src/Synaptipy/application/gui/main_window.py
      • Part 2: Interaction Debouncing
        • File: src/Synaptipy/application/gui/explorer_tab.py
      • Part 3: Testing and Verification
        • Test Results
        • Manual Verification Checklist
      • Additional Bug Fix
      • Files Modified Summary
        • Implementation Files (4 files)
        • Test Files (2 files)
      • Performance Improvements
        • Force Opaque Trials
        • Interaction Debouncing
      • Verification Status
      • Ready for Production
    • Final Verification Guide - Performance Optimizations
      • Quick Verification Checklist
        • Automated Tests Passed
        • Code Verification Complete
      • Manual Testing Instructions
        • Test 1: Force Opaque Trials Feature
        • Test 2: Interaction Debouncing
        • Test 3: Core Features Still Working
      • Performance Benchmarks
        • For a 2-channel file with 50 trials:
      • Log File Locations
      • Troubleshooting
        • If Force Opaque doesn’t work:
        • If debouncing doesn’t work:
        • If core features broken:
      • Summary of All Optimizations
        • Phase 1: Initial Performance Fixes
        • Phase 2: Architectural Improvements
        • Phase 3: Rendering Optimizations
      • Final Performance Gains
      • Conclusion
    • Phase 1 Refactoring COMPLETE
      • Summary
      • Files Refactored
      • Test Results
      • Code Reduction
      • Key Achievements
        • 1. BaseAnalysisTab Enhancements
        • 2. Unified Pattern Across All Tabs
        • 3. Benefits Realized
      • Architecture Improvements
        • Before Refactoring
        • After Refactoring
      • Next Steps
    • PHASE 1 REFACTORING - COMPLETE & TESTED
      • Executive Summary
      • Final Test Results
        • Complete Test Suite: 28/28
      • Issues Fixed
        • Issue: Rin Tab Display Name Mismatch
      • Code Changes Summary
        • Files Modified: 5
        • Lines of Code
      • Architecture Before vs After
        • Before: Massive Duplication
        • After: Clean, Centralized
      • Quality Metrics
      • Validation Checklist
      • Benefits Achieved
        • For Developers
        • For Users
        • For Maintainers
      • Phase 2 & 3 Status
        • Phase 2: Template Method for Analysis Execution
        • Phase 3: Real-Time Parameter Tuning
      • Recommendation
      • Git Commit Message
    • Phase 2 & 3 Refactoring Complete
      • Summary
      • Phase 2: Template Method Pattern for Analysis Execution
        • BaseAnalysisTab Changes
        • Analysis Tab Implementations
      • Phase 3: Real-Time Parameter Tuning
        • BaseAnalysisTab Changes
        • Signal Connections
        • Behavior
      • Benefits Achieved
        • Code Quality
        • User Experience
        • Maintainability
      • Technical Details
        • Metaclass Resolution
        • Template Method Pattern
        • Debouncing Pattern
      • Testing
        • Test Results
        • Test Coverage
      • Files Modified
      • Next Steps (Optional - Phase 4)
        • Phase 4: Unify Results Management (Future Direction)
      • Conclusion
    • Phases 2 & 3 Refactoring Complete
      • Summary
      • Phase 2: Template Method Pattern
        • Objectives
        • Implementation
        • Benefits
      • Phase 3: Debounce Timer for Real-Time Parameter Tuning
        • Objectives
        • Implementation
        • Usage Pattern
        • Benefits
      • Technical Details
        • Metaclass Conflict Resolution
        • Code Quality
        • Files Modified
        • Lines of Code
      • Testing Recommendations
      • Future Enhancements (Phase 4)
        • Phase 4: Unified Results Management (Future)
      • Conclusion
    • ALL TESTS PASSING - ZERO ERRORS
      • Comprehensive Verification Report
      • Error That Was Fixed
        • The “Pre-Existing Error”: Rin Tab Display Name Mismatch
      • Complete Test Results
        • Analysis Tab Tests: 12/12
        • Other GUI Tests: 16/16
      • Verification Checklist
      • Error Summary
        • Error Details:
      • Current Status
      • Conclusion
Synaptipy
  • Development Logs
  • Edit on GitHub

Development Logs

Session-by-session development history: bug reports, verification guides, refactoring summaries, and implementation records produced during active development sprints.

Bug Fixes

  • Bug 13: AttributeError - Recording Object Has No ‘protocol’ Attribute
  • Bug 14: Automatic Analysis Triggering Before User Input
  • Bug 15: _current_plot_data Cleared After Being Set
  • Critical Performance and Data-Loading Bug Fixes
  • Bug Fix Verification Report
  • Synaptipy Code Review - Error Report
  • User Experience Fix: Better Error Messages
  • Explorer X-Axis Shift Fix

Refactoring

  • AnalyserTab Layout Refactoring
  • Phase 2 & 3 Refactoring - FINAL SUMMARY
  • Synaptipy Analysis Module Refactoring - Implementation Summary
  • REFACTORING PHASE 1 - COMPLETE SUCCESS
  • Refactoring Test Plan
  • Refactoring Test Results
  • Analysis Functions, UI Elements, and Failure Points
  • Explorer Tab Right Panel Layout Update

Feature Implementation

  • Interaction Debouncing Implementation
  • Debouncing Implementation Verification
  • Interaction Debouncing Implementation - Complete
  • Performance Optimizations - Implementation Summary
  • Final Performance Optimizations Implementation Report
  • Final Verification Guide - Performance Optimizations

Phase Summaries

  • Phase 1 Refactoring COMPLETE
  • PHASE 1 REFACTORING - COMPLETE & TESTED
  • Phase 2 & 3 Refactoring Complete
  • Phases 2 & 3 Refactoring Complete
  • ALL TESTS PASSING - ZERO ERRORS
Previous Next

© Copyright 2024-2026, Anzal K Shahul. Last updated on May 05, 2026.

Built with Sphinx using a theme provided by Read the Docs.