-
Notifications
You must be signed in to change notification settings - Fork 0
Software Structure
RAYANA Server is consisted from several modules:
It is meant to both process recording files and perform closed-loop experiment.
Raw voltage stream is read from either MEA amplifier or a recording file in the disk. The voltage stream is sent over the local network and is received by the Storing module. This module is hardware-dependent (which MEA amplifier is being used).
For now, it is assumed that this stream is free of stimulation artifacts and event/trigger streams.
Raw voltage is received over the local network and is put on the shared memory. In this way other modules can access the raw data simultaneously and with the least overhead.
Preprocessing and denoising the voltage stream and then performing spike detection. The extracted spike train is then put on a piece of shared memory. This data will be accessed by Environment Simulation.
Also there will be an option to extract the spike waveforms for spike sorting task. This option will be turned off during closed-loop experiment to reduce overhead, as spike sorting is done offline anyways.
Spike trains are obtained from the shared memory and are fed to the environment (such as Pong game) as the neural culture's response. Environment response is coded into stimulation sequences and is transferred to the computer connected to MEA hardware via a socket.
Stimulation sequence is read from the socket and then uploaded into the MEA stimulator.
This module is hardware-dependent (which MEA stimulator is being used).
- Except for hardware-dependent modules (acq & stim), other modules will be implemented to work with MEA systems from any vendor without need for serious modification.
- Of course, all modules should follow a standard format when storing data in shared memory or sending them over sockets, as other modules should be able to interpret them properly. This format should be documented.