本项目是一个用于分析视觉刺激下神经元响应模式的工具集。它基于MICrONS(Machine Intelligence from Cortical Networks)项目的数据,使用FNN(Functional Neural Network)模型来预测和分析神经元对视觉刺激的响应。
.
├── Code/ # 源代码目录
│ ├── analyze_functional_connectivity.py # 功能连接分析
│ ├── analyze_neuron_responses.py # 神经元响应分析
│ ├── analyze_neuron_responses_combined.py # 统一训练模型分析
│ └── Extract_trace.py # 视频处理和神经元响应提取
├── Input/ # 输入数据目录(不包含在版本控制中)
├── outputs/ # 输出结果目录(不包含在版本控制中)
├── analysis_results/ # 分析结果目录(不包含在版本控制中)
├── analysis_results_combined/ # 统一训练模型分析结果(不包含在版本控制中)
├── functional_connectivity/ # 功能连接分析结果(不包含在版本控制中)
└── fnn/ # FNN模型相关代码(子模块)
# 克隆主仓库
git clone https://github.com/Gui-Yun/MyCNSProject.git
# 进入项目目录
cd MyCNSProject
# 初始化并更新子模块
git submodule update --init --recursive# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate# 安装基本依赖
pip install -r requirements.txt
# 安装FNN模型
pip install -e fnn/-
视频处理和神经元响应提取
- 支持视频文件的读取和处理
- 使用FNN模型预测神经元响应
- 生成神经元响应波形图
- 支持批处理以提高性能
-
神经元响应分析
- 分析不同刺激类型和强度下的神经元响应
- 支持单次分析和统一训练模型分析
- 生成详细的响应统计和可视化结果
- 提供神经元分类和聚类分析
-
功能连接分析
- 计算神经元间的功能连接
- 构建和分析神经元网络
- 提供网络指标和可视化
- 支持社区检测和枢纽神经元分析
- Python 3.7+
- CUDA支持(推荐,用于加速FNN模型)
- 依赖包:
- numpy
- pandas
- matplotlib
- seaborn
- scikit-learn
- networkx
- opencv-python
- tqdm
- torch (通过FNN子模块提供)
python Code/Extract_trace.py <video_path> [--output_dir OUTPUT_DIR] [--session SESSION] [--scan_idx SCAN_IDX]参数说明:
video_path: 输入视频文件路径--output_dir: 输出目录路径(默认:outputs)--session: 模型会话ID(默认:8)--scan_idx: 模型扫描索引(默认:5)
python Code/analyze_neuron_responses.py <input_dir> [--stimulus STIMULUS_PATH]参数说明:
input_dir: 包含神经元响应数据的目录路径--stimulus: 刺激数据文件路径(可选)
python Code/analyze_functional_connectivity.py <input_dir> [--stimulus STIMULUS_PATH]参数说明:
input_dir: 包含神经元响应数据的目录路径--stimulus: 刺激数据文件路径(可选)
- 确保输入视频文件格式正确且可读
- 刺激数据文件(CSV)应包含刺激类型和强度信息
- 建议使用GPU进行视频处理以提高性能
- 输出目录会自动创建,无需手动创建
- 临时文件会保存在输出目录的 temp_frames 子目录中
-
Q: 如何处理内存不足的问题? A: 程序已经实现了批处理机制,可以通过调整批处理大小来控制内存使用。
-
Q: 如何更新FNN模型? A: 在项目根目录执行:
git submodule update --remote fnn
-
Q: 如何清理临时文件? A: 临时文件存储在输出目录的 temp_frames 子目录中,可以安全删除。
本项目基于MIT许可证开源。
欢迎提交Issue和Pull Request来帮助改进项目。在提交代码前,请确保:
- 代码符合项目的编码规范
- 添加了必要的测试
- 更新了相关文档
- 遵循现有的代码风格
如有问题或建议,请通过以下方式联系:
- 提交Issue
- 发送邮件至项目维护者
- MICrONS项目团队
- FNN模型开发者
- 所有项目贡献者