Skip to main content

A Python Socket.IO server that allows any Socket.IO-compliant application to communicate with manipulators used in electrophysiology experiments.

Project description

Electrophysiology Manipulator Link

PyPI version Build CodeQL Dependency Review Hatch project Ruff

Manipulator and probe in pinpoint moving in sync

The Electrophysiology Manipulator Link (or Ephys Link for short) is a Python Socket.IO server that allows any Socket.IO-compliant application (such as Pinpoint) to communicate with manipulators used in electrophysiology experiments.

Supported Manipulators:

Manufacturer Model
Sensapex
  • uMp-4
  • uMp-3
New Scale
  • Pathfinder MPM Control v2.8.8+
  • M3-USB-3:1-EP

Ephys Link is an open and extensible platform. It is designed to easily support integration with other manipulators.

For more information regarding the server's implementation and how the code is organized, see the package's development documentation.

For detailed descriptions of the server's API, see the API reference.

Installation

Prerequisites

  1. An x86 Windows PC is required to run the server.
  2. For Sensapex devices, the controller unit must be connected via an ethernet cable and powered. A USB-to-ethernet adapter is acceptable. For New Scale manipulators, the controller unit must be connected via USB and be powered by a 6V power supply.
  3. To use the emergency stop feature, ensure an Arduino with the StopSignal sketch is connected to the computer. Follow the instructions on that repo for how to set up the Arduino.

NOTE: Ephys Link is an HTTP server without cross-origin support. The server is currently designed to interface with local/desktop instances of Pinpoint. It will not work with the web browser versions of Pinpoint at this time.

Install as Standalone Executable

  1. Download the latest executable from the releases page.
  2. Double-click the executable file to launch the configuration window.
    1. Take note of the IP address and port. Copy this information into Pinpoint to connect.
  3. Select the desired configuration and click "Launch Server".

The configuration window will close and the server will launch. Your configurations will be saved for future use.

To connect to the server from Pinpoint, provide the IP address and port. For example, if the server is running on the same computer that Pinpoint is, use

  • Server: localhost
  • Port: 8081

If the server is running on a different (local) computer, use the IP address of that computer as shown in the startup window instead of localhost.

Install for Development

  1. Clone the repository.

  2. Install Hatch

  3. Install the latest Microsoft Visual C++ (MSVC v143+ x86/64) and the Windows SDK (10/11) via Visual Studio Build Tools Installer.

  4. In a terminal, navigate to the repository's root directory and run

    hatch shell
    

This will create a virtual environment, install Python 12 (if not found), and install the package in editable mode.

Install as a Python package

pip install ephys-link

Import the modules you need and launch the server.

from ephys_link.server import Server

server = Server()
server.launch("sensapex", 8081)

CLI Usage

Ephys Link can be launched from the command line directly without the configuration window. This is useful for computers or servers without graphical user interfaces.

With the standalone executable downloaded, invoking the executable from the command line:

ephys_link-vX.X.X-Windows-x86_64.exe -b

Use the actual name of the executable you downloaded. The -b or --background flag will launch the server without the configuration window and read configuration from CLI arguments.

Run the following commands in a terminal to start the server for the desired manipulator platform without the startup window (replace ephys_link.exe with the actual name of the executable you downloaded):

Manipulator Platform Command
Sensapex uMp-4 ephys_link.exe -b
Sensapex uMp-3 ephys_link.exe -b -t ump3
New Scale Pathfinder MPM Control v2.8.8+ ephys_link.exe -b -t new_scale_pathfinder
New Scale M3-USB-3:1-EP ephys_link.exe -b -t new_scale

More options can be viewed by running ephys_link.exe -h.

Documentation and More Information

Complete documentation including API usage and development installation can be found on the Virtual Brain Lab Documentation page for Ephys Link.

Citing

If this project is used as part of a research project you should cite the Pinpoint repository. Please email Dan (dbirman@uw.edu) if you have questions.

Please reach out to Kenneth (kjy5@uw.edu) for questions about the Electrophysiology Manipulator Link server. Bugs may be reported through the issues tab.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ephys_link-1.2.1.tar.gz (627.0 kB view hashes)

Uploaded Source

Built Distribution

ephys_link-1.2.1-py3-none-any.whl (621.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page