diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..f9f9006 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/source/ephys_link/installation_and_use.md b/source/ephys_link/installation_and_use.md index b45f5ec..c7d7961 100644 --- a/source/ephys_link/installation_and_use.md +++ b/source/ephys_link/installation_and_use.md @@ -3,7 +3,10 @@ [![PyPI version](https://badge.fury.io/py/ephys-link.svg)](https://badge.fury.io/py/ephys-link) [![CodeQL](https://github.com/VirtualBrainLab/ephys-link/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/VirtualBrainLab/ephys-link/actions/workflows/codeql-analysis.yml) [![Dependency Review](https://github.com/VirtualBrainLab/ephys-link/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/VirtualBrainLab/ephys-link/actions/workflows/dependency-review.yml) -[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch) +[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) + +Manipulator and probe in pinpoint moving in sync The [Electrophysiology Manipulator Link](https://github.com/VirtualBrainLab/ephys-link) (or Ephys Link for short) is a Python [Socket.IO](https://socket.io/docs/v4/#what-socketio-is) server that allows any @@ -11,7 +14,7 @@ Socket.IO-compliant application (such as [Pinpoint](https://github.com/VirtualBrainLab/Pinpoint)) to communicate with manipulators used in electrophysiology experiments. -Currently, Ephys Link only supports Sensapex uMp-4 Micromanipulators and New Scale 3-axis +Currently, Ephys Link only supports Sensapex uMp-4 and uMp-3 Micromanipulators and New Scale 3-axis manipulators. However, this platform is designed to be extensible to other manipulators and more may be added in the future. @@ -25,7 +28,10 @@ the [API reference](https://virtualbrainlab.org/api_reference_ephys_link.html). ### Prerequisites -1. [Python > 3.8, < 3.12](https://www.python.org/downloads/release/python-3116/) and pip. +1. [Python ≥ 3.8, < 3.13](https://www.python.org/downloads/release/python-3116/) + 1. Python 3.12+ requires the latest version + of Microsoft Visual C++ (MSVC v143+ x86/64) and the Windows SDK (10/11) to + be installed. They can be acquired through the [Visual Studio Build Tools Installer](https://visualstudio.microsoft.com/visual-cpp-build-tools/). 2. An **x86 Windows PC is required** to run the server. 3. 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, @@ -36,19 +42,17 @@ the [API reference](https://virtualbrainlab.org/api_reference_ephys_link.html). connected to the computer. Follow the instructions on that repo for how to set up the Arduino. -> #### Using a Python virtual environment is encouraged. -> -> Create a virtual environment by running `python -m venv ephys_link` -> -> Activate the environment by running `.\ephys_link\scripts\activate` -> -> A virtual environment helps to isolate installed packages from other packages on your computer and ensures a clean -> installation of Ephys Link - **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. +
+

Using a Python virtual environment is encouraged.

+

Create a virtual environment by running python -m venv ephys_link

+

Activate the environment by running .\ephys_link\scripts\activate

+

A virtual environment helps to isolate installed packages from other packages on your computer and ensures a clean installation of Ephys Link

+
+ ### Install for use Run the following command to install the server: @@ -63,13 +67,26 @@ Update the server like any other Python package: pip install --upgrade ephys-link ``` +### Install for development + +1. Clone the repository. +2. Install [Hatch](https://hatch.pypa.io/latest/install/) +3. In a terminal, navigate to the repository's root directory and run + + ```bash + hatch shell + ``` + +This will create a virtual environment and install the package in editable mode. + ## Usage Run the following commands in a terminal to start the server for the desired manipulator platform: | Manipulator Platform | Command | |--------------------------------------|--------------------------------------| -| Sensapex | `ephys-link` | +| Sensapex uMp-4 | `ephys-link` | +| Sensapex uMp-3 | `ephys-link -t ump3` | | New Scale | `ephys-link -t new_scale` | | New Scale via Pathfinder HTTP server | `ephys-link -t new_scale_pathfinder` | @@ -96,7 +113,7 @@ connected to New Scale via Pathfinder HTTP server Pinpoint is not supported. Onl ### Options -All options can be viewed with `python -m ephys_link --help`. +All options can be viewed with `ephys_link --help`. | Option | Input | Default | Description | |----------------------------------|-----------------------------------------------------|-------------|----------------------------------------------------------------|