跳转到主要内容

NEURON ModelDB CI工具

项目描述

nrn-modeldb-ci

安装

在您的虚拟环境中,以可编辑模式安装

pip install -e .

注意:您需要自行安装NEURON(wheel,CMake安装)。

使用方法

以下命令现在可用

  • getmodels -> 从ModelDB检索所有或指定的模型。

    getmodels -h
    
  • runmodels -> 对所有或指定的模型运行nrn-modeldb-ci

    runmodels -h
    

    注意,必须先使用getmodels下载模型。您可以使用--virtual指定,以便在无头模式下运行NEURON GUI。它需要一个后端(例如Xvfb)。在相同的--workdir中重新运行可能会损坏结果。如果您希望在相同的--workdir中重新运行,请使用--clean

  • report2html -> 为给定的json报告(通过runmodels获得)创建交互式HTML报告

    report2html -h
    

    注意,生成的HTML文件是自包含的。

  • diffgout -> 启动nrngui并在不同颜色下显示两个gout文件。

    diffgout -h
    

    这在比较/调查不兼容的神经元版本的结果时非常有用。

  • diffreports2html -> 创建交互式的NEURONv1-vs-NEURONv2 HTML报告

    diffreports2html -h
    

    考虑到的差异

    • nrn_runmoderr来自json报告 -> 输出并排的diff
    • gout -> 输出类似git的diff;注意:这遍历json报告中的gout路径run_info,确保它们存在。

    注意,生成的HTML文件是自包含的。

  • modeldb-config -> 列出nrn-modeldb-ci的配置

      modeldb-config
    
    配置 详细信息
    ROOT_DIR nrn-modeldb-ci安装的位置
    MODELDB_ROOT_DIR nrn-modeldb-cimodeldb包的路径
    MODELDB_RUN_FILE 包含模型运行指令的yaml文件(对于runmodels是必需的)
    MODELDB_METADATA_FILE 包含使用getmodels下载的模型信息的yaml文件
    MODELS_ZIP_DIR 通过getmodels填充的模型的缓存文件夹的位置
    MDB_NEURON_MODELS_URL 用于获取NEURON模型ID和最后更新时间戳的url模板(对于getmodels是必需的)
    MDB_MODEL_METADATA_URL 用于获取单个NEURON模型元数据的url模板(对于getmodels是必需的)
    MDB_MODEL_DOWNLOAD_URL 用于模型下载的url模板(cf {model_id}

模型运行

MODELDB_RUN_FILE

这是“黑魔法”所在之处,如何从ModelDB运行模型的说明。如果没有给定模型ID的条目,则默认处理可用。

所有条目都是可选的

yaml条目 特殊值 详细信息 默认处理
run 用于有效运行模型的自定义指令 verify_graph_() *
run null DoNotRun模式 -> 模型被构建但未运行
model_dir 编译mod子目录的自定义位置 *.mod @ 根级别
model_dir dir;dir 多个自定义mod子目录用于编译 *.mod @ 根级别
skip 模型将从整体运行中跳过
comment 跳过或run: null时包含在报告中的注释
script 在运行模型之前调整模型的bash脚本条目

(*) verify_graph_()将所有图形的所有行保存到模型工作目录中的gout文件。

待办事项:模型运行活动图

报告

runmodels后生成的报告包含以下信息

  • gout - (可选)神经元执行的图形数据(必须使用runmodels --gout运行)
  • logs - 模型设置、nrnivmodl、...的日志
  • nrn_run - 运行模型的命令及其输出
  • run_info - 模型运行信息
  • run_time - 模型运行时间

例如,通过运行

runmodels --gout --workdir=test3682 3682

我们将生成报告test3782.json

{
    "0": {...} # runmodels stats, see next section
    "3682": {
        "gout": [
            "Graphs 1\n",
            "Graph[0]\n",
            "lines 1\n",
            "points 10001\n",
            "xvec1\n",
            "0\n",
            "0.025\n",
            ".....",            # truncated (can be HUGE)
            "-57.9912\n",
            "\n"
        ],
        "logs": [
            "",
            "",
            "/usr/bin/xcrun",
            "%model_dir%",
            "Mod files: \"%model_dir%/hh3.mod\" \"%model_dir%/rglu_score.mod\"",
            "",
            "Creating x86_64 directory for .o files.",
            "",
            "COBJS=''",
            " -> \u001b[32mNMODL\u001b[0m %model_dir%/hh3.mod",
            " -> \u001b[32mCompiling\u001b[0m mod_func.cpp",
            " -> \u001b[32mNMODL\u001b[0m %model_dir%/rglu_score.mod",
            "Translating hh3.mod into %model_dir%/x86_64/hh3.c",
            "Notice: VERBATIM blocks are not thread safe",
            "Translating rglu_score.mod into %model_dir%/x86_64/rglu_score.c",
            "Notice: This mechanism cannot be used with CVODE",
            "Notice: VERBATIM blocks are not thread safe",
            "Notice: Assignment to the GLOBAL variable, \"inf\", is not thread safe",
            "Notice: This mechanism cannot be used with CVODE",
            "Notice: Assignment to the GLOBAL variable, \"Rtau_AMPA\", is not thread safe",
            "Notice: Assignment to the GLOBAL variable, \"Rinf_AMPA\", is not thread safe",
            "Notice: Assignment to the GLOBAL variable, \"Rtau_NMDA\", is not thread safe",
            "Notice: Assignment to the GLOBAL variable, \"Rinf_NMDA\", is not thread safe",
            "Warning: Default 37 of PARAMETER celsius will be ignored and set by NEURON.",
            "Warning: Default -100 of PARAMETER ek will be ignored and set by NEURON.",
            "Warning: Default 40 of PARAMETER ena will be ignored and set by NEURON.",
            " -> \u001b[32mCompiling\u001b[0m hh3.c",
            " -> \u001b[32mCompiling\u001b[0m rglu_score.c",
            " => \u001b[32mLINKING\u001b[0m shared library ./libnrnmech.dylib",
            " => \u001b[32mLINKING\u001b[0m executable ./special LDFLAGS are:   ",
            "Successfully created x86_64/special",
            "INFO : Using neuron-nightly Package (Developer Version)",
            ""
        ],
        "nrn_run": [
            "RUNNING -> ./x86_64/special -nobanner %model_dir%/mosinit.hoc %model_dir%/driver.hoc",
            "\t0 ",
            "\t1 ",
            "\t1 ",
            "\t1 ",
            "\t1 ",
            "\t1 ",
            "\t1 ",
            "\t1 ",
            "\t1 ",
            "\t1 ",
            "\t1 ",
            "Spike at 40.5 ",
            "Spike at 81.15 ",
            "Spike at 108 ",
            "Spike at 133.65 ",
            "Spike at 180.775 ",
            "Spike at 201.3 ",
            "Total spikes: 6 ",
            "\t1 ",
            "\t1 ",
            ""
        ],
        "run_info": {
            "driver": "/Users/savulesc/Workspace/nrn-modeldb-ci/test3682/synmap/driver.hoc",
            "init": "/Users/savulesc/Workspace/nrn-modeldb-ci/test3682/synmap/mosinit.hoc",
            "model_dir": "/Users/savulesc/Workspace/nrn-modeldb-ci/test3682/synmap",
            "script": [
                "echo 'use_mcell_ran4(1)' > temp",
                "cat mosinit.hoc >> temp",
                "mv temp  mosinit.hoc"
            ],
            "start_dir": "/Users/savulesc/Workspace/nrn-modeldb-ci/test3682/synmap"
        },
        "run_time": "7.595794515"
    }
}

每个runmodels报告都会在"0"键中保存运行统计信息。

    "0": {
        "NEURON version": "8.0a-743-g3871f82a",
        "Stats": {
            "Failed models": {
                "Accession numbers": [
                    20212,
                    97868,
                    144549,
                    186768,
                    244262
                ],
                "Count": 5
            },
            "Failed runs": {
                "Accession numbers": [
                    194897
                ],
                "Count": 1
            },
            "No. of models run": 659
        }
    },

对于每个模型,都会在模型运行目录中生成一个 <model.id>.yaml 文件。当模型以 --inplace 模式重新运行时(也适用于调试)会用到这个文件。

(venv) nrn-modeldb-ci$ cat test3682/synmap/3682.yaml
driver: /home/savulesc/Workspace/nrn-modeldb-ci/test3682/synmap/driver.hoc
init: /home/savulesc/Workspace/nrn-modeldb-ci/test3682/synmap/mosinit.hoc
model_dir: /home/savulesc/Workspace/nrn-modeldb-ci/test3682/synmap
script:
- echo 'use_mcell_ran4(1)' > temp
- cat mosinit.hoc >> temp
- mv temp  mosinit.hoc
start_dir: /home/savulesc/Workspace/nrn-modeldb-ci/test3682/synmap
(venv) savulesc@bbd-cjngk03:~/Workspace/nrn-modeldb-ci$ 

资金来源

nrn-modeldb-ci 是由 Blue Brain Project 和耶鲁大学共同开发的项目。该项目得到了以下资助:来自瑞士联邦理工学院(EPFL)蓝脑项目的资金,瑞士政府联邦理工学院董事会,NIH 奖号 R01NS11613(耶鲁大学),欧盟第七框架计划(FP7/20072013)下的协议号 n◦ 604102(HBP),以及欧盟 horizon 2020 研究和创新框架计划下的特定协议号 n◦ 720270(人类大脑项目 SGA1)、n◦ 785907(人类大脑项目 SGA2)和 n◦ 945539(人类大脑项目 SGA3)。

版权(c)2022 耶鲁大学 & Blue Brain Project/EPFL

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码发行版

nrn-modeldb-ci-0.3.0.tar.gz (40.7 kB 查看哈希值

上传时间 源代码

构建发行版

nrn_modeldb_ci-0.3.0-py3-none-any.whl (40.7 kB 查看哈希值

上传时间 Python 3

由以下机构支持