You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用R的ontologyIndex包导入.obo文件遇NULL属性设置错误

解决ontologyIndex导入自定义OBO文件的报错问题

问题分析

报错Error in names(object) <- nm : attempt to set an attribute on NULL说明get_OBO解析文件时未生成有效对象,核心原因是自定义转换的OBO文件不符合ontologyIndex的解析要求,或缺少必要字段。

排查与解决步骤

1. 检查OBO文件的核心字段

用文本编辑器打开目标OBO文件,确保每个术语包含以下必填字段:

  • id::唯一标识符(如P:001)
  • name::术语名称
  • is_a::层级关系(若存在子类结构)
    若缺失上述字段,需在转换时确保保留这些信息。

2. 调整get_OBO的解析参数

通过修改函数参数放宽解析限制,尝试以下命令:

  • 仅提取必要字段(若文件无namespace等标签):
library(ontologyIndex)
hp <- get_OBO("people.obo", extract_tags = c("id", "name", "is_a"))
  • 不忽略过时术语:
hp <- get_OBO("people.obo", ignore_obsolete = FALSE)
  • 手动指定本体ID(若文件无ontology:声明):
hp <- get_OBO("people.obo", ontology_id = "people")

3. 修正OBO文件的转换过程

  • 使用Robot工具转换时,添加校验参数确保文件符合OBO规范:
robot convert --input people.owl --output people.obo --check
  • 使用Protege导出时,选择标准OBO格式,勾选“导出所有实体”“保留is_a关系”等选项,避免遗漏关键信息。

4. 测试最小可用OBO文件

手动创建一个极简OBO文件(如下),验证get_OBO是否能正常导入:

format-version: 1.2
ontology: people
namespace: people

[Term]
id: P:001
name: Person
is_a: P:002 ! Human

[Term]
id: P:002
name: Human

若导入成功,说明原文件存在格式问题,可逐步对比添加内容定位具体错误。

内容的提问来源于stack exchange,提问作者Iztok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 10:57:26