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_run
和moderr
来自json报告 -> 输出并排的diffgout
-> 输出类似git的diff;注意:这遍历json报告中的gout路径run_info
,确保它们存在。
注意,生成的HTML文件是自包含的。
-
modeldb-config
-> 列出nrn-modeldb-ci
的配置modeldb-config
配置 详细信息 ROOT_DIR nrn-modeldb-ci
安装的位置MODELDB_ROOT_DIR nrn-modeldb-ci
中modeldb
包的路径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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0cb9b7a07bb99d2304f755d52812f74d4d4c1e9b16f41193f31b28b722ca99da |
|
MD5 | 014f3bfc473d6715c26f5f2ac3ab0ec8 |
|
BLAKE2b-256 | 1f618a1da243db7bfada8330d2786566a72597b8d1d49cb603ab1cfa0d7171cc |
nrn_modeldb_ci-0.3.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f4f6eabb38bd4146cfecf501ee754f83c85d71ff83d54ffe339cc4b77f0e2b82 |
|
MD5 | bb6a0c7b6468bbf38690b269e5193f37 |
|
BLAKE2b-256 | 82585f84e4aca3f81c433845f0ff551b9871958c3b59c72717c34a6648d8be6a |