The Synapse Protocol defines a standard interface for interacting with a wide range of possible neural interface devices, and includes Synapse Apps, a powerful tool for implementing custom neural processing applications on device. Synapse protocol includes a gRPC-based control plane API and a UDP-based streaming API. However, we provide client libraries in Python, C++, and Node Typescript to allow you to conveniently configure and interface with the device without needing to interface with gRPC or UDP directly.
Synapse includes a range of standard nodes, which execute within the device (i.e., on the headstage, or soft device) to facilitate communication with peripherals as well as some processing capabilities. Relaying nodes together to connect outputs to inputs creates a signal chain to process your data.
A toy soft device implementation for development is available in the python Synapse GitHub repo: sciencecorp/synapse-python
Getting Started
Python
Before installing the Synapse Python client library, you will need:
- Python version 3.9 or later.
- pip version version 23 or later.
- Docker*
*Docker is required for packaging and deploying Synapse Apps, but is no required for initial installation.
You can install the official Synapse Python client library using:
pip install science-synapse
which includes the synapsectl
utility:
$ synapsectl --help
usage: synapsectl [-h] [--uri URI] [--version] [--verbose]
{discover,info,query,start,stop,configure,logs,read,plot,file,taps,deploy,build} ...
Synapse Device Manager
options:
-h, --help show this help message and exit
--uri URI, -u URI The device identifier to connect to. Can either be the IP address or name
--version show program's version number and exit
--verbose, -v Enable verbose output
Commands:
{discover,info,query,start,stop,configure,logs,read,plot,file,taps,deploy,build}
discover Discover Synapse devices on the network
info Get device information
query Execute a query on the device
start Start the device or an application
stop Stop the device or an application
configure Write a configuration to the device
logs Get logs from the device
read Read from a device's StreamOut node
plot Plot recorded synapse data
file File commands
taps Interact with taps on the network
deploy Deploy an application to a Synapse device
build Cross-compile and package an application into a .deb without deploying
C++
Before installing the Synapse C++ client library, you will need:
- CMake version 3.23.5 or later
- Make
You can install the official C++ client library by building from source:
Typescript
Before installing the Synapse Node/Typescript client library, you will need:
- Node
- Npm
You can install the official Synapse Node/Typescript client library using:
npm install @science-corporation/synapse