生物医学研究本体 (OBI) 通过定义 2500 多个检测、设备、目标等术语,帮助您清晰地传达科学研究的信息。
这是 OBI 的开发人员存储库。您可以在此处下载最新的 OBI 产品,并通过我们的文档了解有关 OBI 的更多信息。
我们的本体术语分为三组。根据您要编辑或添加的术语类型,您必须通过不同的途径:
外部术语(来自其他本体):我们使用 OntoFox 进行导入。编辑相应的src/ontology/OntoFox_inputs/
文件。
模板术语:我们使用 ROBOT 模板将电子表格转换为 OWL。编辑相关的src/ontology/templates/
文件:
obsolete.tsv
用于过时术语assays.tsv
epitope-assays.tsv
专门用于免疫表位测定value-specifications.tsv
specimens.tsv
medical-history.tsv
用于病史分类和相关选择标准study-designs.tsv
用于研究设计data-sets.tsv
用于数据集其他术语:在Protege中编辑src/ontology/obi-edit.owl
。
有关文件、构建说明以及使用 Git 和 GitHub for OBI 的说明的完整列表,请参阅下文。
如果您希望从 OBI 当前没有 OntoFox 导入文件 ( src/ontology/OntoFox_inputs/
) 的本体中导入术语,请按照以下步骤操作:
catalog-v001.xml
以列出新的导入文件,就像列出现有导入文件一样。obi-edit.owl
。src/ontology/OntoFox_outputs/
中为输出模块创建一个空白文件,例如,为 foo.owl 导入制作虚假输出: touch src/ontology/OntoFox_outputs/foo_imports.owl
make imports
make obi.owl
如果您希望在 Excel 中编辑一个或多个模板,而不是复制和粘贴模板,我们要求您按照此工作流程来保留引用。来回使用 Excel 可能会导致模板中的双引号发生一些无意的更改。
首先,安装 python 要求:
python3 -m pip install -r requirements.txt
然后,制作Excel表格。在本地 OBI git 目录中,运行以下命令创建一个名为obi.xlsx
的文件:
make obi.xlsx
接下来,在 Excel(或您喜欢的任何编辑器)中打开obi.xlsx
。该电子表格包含每个 OBI 模板的选项卡(例如“研究设计”、“测定”等)。找到与您需要编辑的模板相对应的选项卡,进行更改,然后将 Excel 电子表格保存到同一位置 ( obi.xlsx
)。最后,运行以下命令来更新模板的 TSV 版本:
make update-tsv
这会将obi.xlsx
中的选项卡转换回 TSV,并使用您的更改覆盖src/ontology/templates/
目录中的现有 TSV。检查您的更改 ( git diff
) 并提出拉取请求。
要查找术语所在的位置,可以使用src/scripts/locate.py
。
然后,您可以运行脚本以按 ID 或标签查找术语,方法是将它们作为空格分隔的列表传递,例如:
src/scripts/locate.py OBI:0000070 CHMO:0000087 GO:0000785
标签应该用双引号引起来:
src/scripts/locate.py "assay" "fluorescence microscopy" "chromatin"
OBI 存储库包含一些 Python 脚本,可帮助开发人员高效编辑obi-edit.owl
和 OBI 模板。这些脚本需要 Python 3。
这些脚本还要求您首先构建两个数据库(一个来自 OBI 编辑,一个来自 OBI 合并版本):
make obi-dbs
由于模板中使用了标签,因此手动查找和替换术语的所有用法可能会很困难且乏味。相反,您可以使用src/scripts/relabel.py
自动更新术语的标签及其用法。
您可以通过传递要更新的术语和新标签来运行它:
src/scripts/relabel.py CHMO:0000087 "microscopy with fluorescence"
您还可以将旧标签作为第一个参数传递,只要将其括在双引号中即可:
src/scripts/relabel.py "fluorescence microscopy" "microscopy with fluorescence"
确保提交所有更改的文件以确保更新所有用法。
README.md
这个概述文档obi.owl
OBI 最新版本Makefile
脚本views/
各种专业观点obi.obo
.obo
文件格式的 OBI 最新版本obi_core.owl
OBI Core 的最新版本:约 100 个关键术语src/
ontology/
源文件obi-edit.owl
主 OBI OWL 文件core.txt
OBI 核心术语列表external-byhand.owl
一些来自其他本体的自定义导入catalog-v001.xml
OWL 导入覆盖的手工列表templates/
OBI 各个分支的 ROBOT 模板文件modules/
机器人模板的结果OntoFox_inputs/
用于从其他本体导入的 OntoFox 配置文件OntoFox_outputs/
OntoFox 结果文件sparql/
SPARQL 查询scripts/
实用程序脚本views/
视图配置Makefile
包含用于构建 OBI 的脚本。在 macOS 或 Linux 上,您应该只能运行make
或以下特定任务之一。在 Windows 上,请考虑使用某种 Linux 虚拟机,例如 Docker 或 Vagrant。大多数结果将位于build/
目录中。如果您遇到问题,请联系詹姆斯。
make test
并运行 SPARQL 测试(每次推送到 GitHub 时都会运行)make sort
模板,并修复引用和行结尾make imports
更新 OntoFox 导入make modules
更新机器人模板make obi.owl
构建发布文件;推理可能需要大约 10 分钟make views
更新机器人模板make all
准备好发布,运行imports
、 modules
、 test
、 obi.owl
和views
make build/obi_merged.owl
将obi-edit.owl
合并到单个文件中,不要推理make clean
删除临时文件我们使用 git 和 GitHub 来开发 OBI。关于两者都有很多很好的文档:
在开始使用 OBI 进行开发之前,您需要进行一些初始设置:
注册 GitHub 帐户
安装 Git 命令行工具、GitHub Desktop 应用程序或您选择的其他 Git 客户端
使用您的姓名和电子邮件配置 Git
克隆 OBI 存储库
如果您使用的是 macOS 和 Excel,请设置预提交挂钩(有关详细信息,请参阅下文):
ln -s ../../src/scripts/check-line-endings.sh .git/hooks/pre-commit
更改应在可管理的部分进行,例如添加一个术语或编辑一些相关术语。大多数更改应对应于跟踪器上的单个问题。
从 OBI 存储库master
分支的本地副本开始。确保您的本地副本是最新的。在新分支上进行更改。请使用 OBI 学期 ID 预订表来管理新 ID。
准备好后,将您的分支推送到 OBI 存储库,并在 GitHub 网站上发出拉取请求 (PR)。您的 PR 是请求将您的分支合并回master
。您的 PR 将被测试、讨论、必要时调整,然后合并。然后,您或其他开发人员将进行下一次更改时,可以重复该循环。
这些是其 CLI 命令的步骤。使用 GUI 应用程序时,步骤是相同的。
git fetch
确保您的本地副本是最新的git checkout master
在master
分支上启动git checkout -b your-branch-name
创建一个新分支,以您所做的更改命名make sort
排序和规范化,以获得更清晰的差异git status
和git diff
检查您的更改git add --update src/
将src/
目录中的所有更新文件添加到暂存区git commit --message "Description, issue #123"
提交带有消息的暂存更改;最好包含问题编号git push --set-upstream origin your-branch-name
将您的提交推送到 GitHub您的 Pull 请求将被自动测试。如果有问题,我们将更新您的分支机构。当所有测试都通过后,您的 PR 将由 OBI 开发人员审核。审核完成后,高级 OBI 开发人员将合并 PR。冲洗并重复!
编辑src/ontology/template/
文件的最简单方法是使用 Excel。不幸的是,Excel 对于引用单元格值有一些特殊的规则,并且在 macOS 上使用旧的行结尾。这两件事都让我们的差异变得混乱和混乱。
对于干净的差异,我们还希望保留按 ID 排序的模板。 make sort
命令将通过 Python 脚本运行所有模板来修复行结尾和排序。