项目结构¶
HemiSpec 由可安装的 Python 软件包和经过明确批准的运行时资产组成。公开仓库应完整说明软件与文件契约,但不能公开私有 MRI 数据、研究生成结果,或尚未获准再分发的资产。
.
|-- src/hemispec/ # Python API、CLI、GUI 与工作流
| `-- resources/preprocess/ # 包内预处理辅助脚本
|-- tests/ # 合成/单元回归测试
|-- examples/
| |-- synthetic_quickstart/ # 可公开再分发的合成 NIfTI 示例
| `-- input_sample/ # 本地且被 Git 忽略的 MRI 输入目录;仅 README 公开
|-- docs/ # 用户、方法、参考与开发者文档
|-- scripts/ # 发布和本地启动辅助脚本
| `-- research/ # 本地研究工具,不属于公开运行时 API
|-- assets/
| |-- atlases/glasser/ # 公开 README/清单;atlas 载荷获批前仅保留本地
| `-- models/ # 通过 Git LFS 跟踪的已批准 DGN/分类器包
|-- data/ # 本地验证数据,不跟踪
|-- outputs/ # 生成结果,不跟踪
|-- reference/ # 本地论文/训练参考资料,不跟踪
|-- pyproject.toml # 软件包元数据与工具配置
|-- MANIFEST.in # 源码发行包包含/排除策略
|-- CONTRIBUTING.md # 工程与验证规则
`-- CHANGELOG.md # 发布历史
公开源码与仅限本地的材料¶
公开跟踪的内容可以包括:
src/hemispec/下的软件包代码和小型包内资源;- 基于合成或小型生成固件的测试与示例;
- README、文档、发布脚本和清单模板;
- 说明本地放置方式与出处字段的资产 README;
- 通过 Git LFS 放在
assets/models/下的已批准 DGN 与分类器包。
以下材料必须保持本地且被忽略,除非已经记录明确的发布批准和再分发权利:
- 真实受试者级 MRI/NIfTI,包括放入
examples/input_sample/的文件; - 生成的重建图、ANS/RNS 图、ROI 表和验证结果;
- 未批准的模型检查点或分类器包;
- atlas NIfTI 和标签表;
- 私有路径、受试者标识、凭据和未发表结果摘要。
公开可运行示例是 examples/synthetic_quickstart/;examples/input_sample/ 仅是本地输入位置,不能当作可公开再分发的示例数据。
运行时资产发现¶
模型与 atlas 的发现由 hemispec.paths 集中管理,顺序如下:
- 显式 CLI/API/GUI 路径;
HEMISPEC_DGN_MODEL_ROOT等环境变量;- 存在时使用项目本地
assets/; - 模型下载写入的用户缓存;
- 仅为兼容保留的
outputs_bi_stable_L/R等旧目录。
发布 wheel 保持轻量:只包含软件包代码和小型资源,不嵌入大型模型检查点、atlas 载荷或受试者级示例。启用模型的运行从 Git-LFS 源码检出、用户缓存或显式配置的离线资产包获取已批准的 DGN/分类器资产。