{
 "cells": [
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "# 补充说明\n",
    "\n",
    "在了解完 `braincell` 中基本的三个层级 `Cell` 、 `Channel` 、 `Ion` 后，你可能会有疑问：\n",
    "- 为什么要开发 `braincell` 呢？\n",
    "- 为什么能开发 `braincell` 呢？\n",
    "- `braincell` 有什么优势呢？\n",
    "\n",
    "本节将回答你的这些疑问。\n",
    "\n",
    "## 开发背景\n",
    "\n",
    "目前主流的神经建模工具普遍存在一定的局限性，无法满足生物真实性、计算效率、灵活性的多重需求：\n",
    "- 传统脑仿真工具：主流的脑仿真工具有NEURON、NEST、Brian2等，其中NEURON虽能精确模拟生物物理细节，但依赖静态代码生成，灵活性差，大规模网络模拟效率低下；NEST侧重群体网络动态，却简化了单细胞电生理机制，难以捕捉离子通道级别的精细动力学；Brian2则在处理复杂模型时存在一定的迭代速度受限问题。\n",
    "- 深度学习框架：目前的主流深度学习框架有[PyTorch](https://pytorch.org/)、[TensorFlow](https://tensorflow.google)等，它们擅长大规模并行计算，但缺乏对神经动力学的原生支持；同时其核心设计针对反向传播优化，难以直接建模微分方程，且电生理学上的部分约束需手动实现，复用性低。\n",
    "\n",
    "为此，我们构建了[BrainPy](https://github.com/brainpy/BrainPy)生态系统，旨在统一神经建模的生物精确性与计算高效性。而 `braincell` 作为该生态的核心组件，专注解决神经细节建模的痛点，填补现有工具在从离子到网络跨尺度模拟中的空白。\n",
    "\n",
    "\n",
    "## 可行性\n",
    "\n",
    "`braincell` 的开发基于电生理学的理论基础与技术支撑，具有明确的可行性：\n",
    "- 电生理学原理：\n",
    "  以神经科学经典理论为基石，直接映射可验证的电生理学机制：从离子通道的门控动力学、多房室神经元的空间电流传导，到突触传递的化学信号与电信号转换，均严格遵循实验观测规律，确保模型可与电生理数据直接对标。\n",
    "- 动力学原理：\n",
    "  神经动态本质是刚性微分方程系统， `braincell` 基于[JAX](https://github.com/jax-ml/jax) 框架实现自动微分与硬件加速，可高效求解此类系统.同时，通过模块化设计将动力学过程拆解为可复用的状态与规则组合，既符合动力学系统的数学逻辑，又支持灵活扩展。\n",
    "\n",
    "\n",
    "## 必要性\n",
    "\n",
    "`braincell` 的开发是解决当前神经建模瓶颈的关键，其核心价值体现在：\n",
    "- 填补技术空白：\n",
    "  实现细节建模与大规模并行计算的紧密融合。既拥有单细胞建模精度，又具备深度学习框架的硬件适配能力，支持从离子通道到大尺度神经元网络的全尺度模拟。\n",
    "- 模块化与可复用性：\n",
    "  实现简单易学的模块化建模框架。将离子通道、房室结构等拆分为独立组件，用户可像搭积木一样组合模型，大幅降低自定义建模的门槛。\n",
    "- 即时连接：\n",
    "  作为 `brainpy` 生态的基础层，`braincell` 可与上层工具无缝对接，实现从离子通道到网络的跨尺度建模闭环，支持快速迭代验证。\n",
    "\n",
    "\n",
    "## 生态系统\n",
    "\n",
    "`braincell` 是 [大脑建模生态系统](https://ecosystem-for-brain-dynamics.readthedocs.io/) 的核心基石，该生态系统以多尺度神经动态统一建模为目标，形成层级化架构。\n"
   ],
   "id": "fa005ed971b1f74d"
  },
  {
   "metadata": {},
   "cell_type": "code",
   "outputs": [],
   "execution_count": null,
   "source": "",
   "id": "37e97748c5833181"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
