The ACTEV was built on top of the Ultra96 Platform.
Please refer to Xilinx Support Archive (XSA) files under ./FPGA/Vivado/. The precompiled FPGA image is under ./FPGA/SD/. You could simply rely on the image to boot the FPGA and run ACTEV under the SD mode. This directory contains two separate image files, located in ./Linear_Classifier and ./Tree-Based_Classifier sub folders.
Source code for the embedded software is under ./FPGA/Vitis/. Embedded software with linear classifier and tree-based classifier functions are arranged in separate projects.
If you would like to rebuild the embedded software in Vitis, please remember to include the ./FPGA/Vitis/EmbeddedSw/ in your project local directory.
The interface PCB sits on top of the Ultra96 board. It provides Ethernet connection to a host PC and a 14-pin flywire connection to the Data Acquisition Box (DAQ). Fabrication files are under ./PCB/.
Matlab and C programs can simulate ACTEV behaviors at high level accurately.
We provide 3 sets of Matlab scripts for analyzing calcium image data offline:
- Motion Correction: Frame-based rigid motion correction.
- Trace Extraction: Separate files supporting cell and tile based trace extraction.
- Linear Classifier Training: Provide training and inference code for the linear classifier.
We also provide following C programs as a behavioral simulation model for ACTEV:
- Extract Classifier Parameter: Convert Matlab generated linear classifier parameters into loadable binary file for ACTEV.
- Extract Template: Extract mean of recorded images as a template for the motion correction C simulation.
- Linear Classifier Inference: Perform simulation of the position decoding based on linear classifier parameters.
- Motion Correction: Frame-based rigid motion correction.
- Trace Extraction: Support cell and tile based trace extraction, with provided example contour files.
We developed real-time interface (RTI) in C# to support user interaction with ACTEV. Source code of the RTI development is under ./Software/. Example loadable files for the RTI are collected under ./Software/file/:
- Cell Contour: cell/tile contour in text/binary and other parameter files in text format.
- Filter Kernel: Constant 17x17 Gaussian contrast filter kernel in binary format.
- Template: Example 128x128 template image for motion correction in text format.
[1] Z. Chen, G. J. Blair, C. Guo, J. Zhou, J.-L. Romero-Sosa, A. Izquierdo, P. Golshani, J. Cong, D. Aharoni, and H. T. Blair, "A Hardware System for Real Time Decoding of In Vivo Calcium Imaging Data". eLife, 12:e78344, 2023.
[2] Z. Chen, G. J. Blair, C. Cao, J. Zhou, D. Aharoni, P. Golshani, H. T. Blair, and J. Cong. "FPGA-Based In-Vivo Calcium Image Decoding for Closed-Loop Feedback Applications". IEEE Transactions on Biomedical Circuits and Systems. Volume 17, Issue 2, pp. 169-179, 2023.