JAMI库|Java数据交互框架

大数据
后台-插件-广告管理-内容页头部广告(手机)

JAMI库:Java数据交互框架,用于分子交互和数据互操作性的Java库

EMBL-EBI和剑桥大学之间的合作产生了JAMI,这是一个统一的标准分子相互作用数据格式(如PSI-MIXML和PSI-MITAB)的单一库。JAMI免费的开源库支持开发分子相互作用计算工具和管道,而无需生成不同版本的软件来读取不同版本的数据格式。

现在存在许多不同的分子相互作用数据下载格式,旨在允许不同的用户组访问这些有价值的数据。这些格式包括由HUPO-PSI的分子相互作用工作组开发的PSI-XML和MITAB标准交换格式,以及其他资源产生的其他特定用途的下载。

目前,用户有责任确保软件能够读取/写入每种格式的所有必要版本。随着数据提供者努力满足越来越复杂的用户需求和数据类型,这个问题可能会增加。

JAMI(Java分子交互框架)库是使用面向对象的方法开发的,以解决这些问题。JAMI 可以导入、相互转换和再导出各种格式和版本的分子相互作用数据。该软件旨在确保可以轻松编写用于读取/写入新格式类型的模块并将其添加到库中,从而提供单个变化弹性软件组件来处理所有分子相互作用数据。

通常,JAMI库将在Java应用程序中使用,而不是作为API提供,但如果需要,用户可以考虑使用JAMI框架开发编程接口。鉴于 JAMI 框架的变更弹性职权范围,有必要确保 JAMI 能够处理多个用例。

随着时间的推移,如有必要,可以添加、编辑或删除实现。数据模型中的主要实体包括复杂、交互、实体、参与者和发布 - 具有默认实现和特定于格式的重载行为的接口。例如,PSI-XML 2.5允许实验描述包含对出版物对象的交叉引用,或直接包含作者和期刊等属性列表,而在 XML 3.0 中,可以将这两个数据成员与实验相关联。由于出版物和 XML 导出类只是接口,因此导出两种不同类型的出版物可以由同一软件处理,实现类协调两个 XML 版本。

当作为生物信息学软件的库包含时,JAMI隐藏了支持多种数据格式的复杂性。它有助于数据导入、集成和分析,通过提供单一 API 简化软件开发。

JAMI 还简化了新交换格式的创建,如 JSON-LD 或 RDF。可以将其他格式添加到 JAMI 一次,然后毫不费力地在多个软件包中得到支持。类似地,JAMI 可以防止代码重复 - 从 JAMI 绘制的每个软件源现在共享代码,从而确保在开发多个 XML/MITAB 解析模块时投入更少的精力。

JAMI是用Java实现的,使用Maven进行分发和依赖,该代码在 Apache 2.0 许可证下可用,并在 GitHub上提供。该体系结构是高度模块化的,由将来修改或添加输入和输出类型的预期需求驱动,而不会影响框架的整体功能或能力。单元测试涵盖核心功能,确保代码更改不会导致回归(返回错误),并且即使更改代码,输入/输出格式和行为也保持一致。

AMI-Core 构成了 JAMI 的基础,由 JAMI 能够处理的每个数据输入/输出类型的独立模块组成,以及用于实例化 JAMI 类的适当侦听器和工厂。对于内部使用 JAMI 的软件,JAMI-Commons 充当默认入口点,充当精简代码加载助手来导入 XML 和 MITAB 输入/输出模块以及所有相关的代码依赖项。在可能的情况下,对依赖项进行限制,以防止来自第三方的潜在破坏性更新。

JAMI-Core 也是处理分支和矩阵扩展的代码之家。分支或矩阵扩展用于将与两个以上参与者的交互转换为多个二进制交互 - 这经常需要,因为许多工具仅对二进制交互进行操作。

除了读取和写入 MITAB2.5、2.6 和 2.7 以及 PSI-XML(2.5 和 3.0)之外,JAMI 还能够输出 HTML 和 MI-JSON。HTML格式旨在通过Web浏览器快速供人类使用,目前在JAMI中硬连线以产生一致的布局和外观,尽管如果有用户需求,将来计划进一步的CSS可扩展性。

MI-JSON 输出旨在便于与基于 JavaScript 的客户端应用程序一起使用,例如稍后在结果部分描述的 ComplexViewer。如上所述,JAMI 被设计为易于扩展。JAMI库的创建是为了解决分子相互作用领域的这个问题,并且已经被许多处理,导入,导出和/或可视化相互作用数据的资源所采用。

在JAMI框架之上开发的软件和工具能够集成和支持PSI-MIXML和PSI-MITAB。使用 JAMI 避免了在格式之间链接转换以达到所需输出格式的要求,并防止代码和单元测试重复,因为代码变得更加模块化。JAMI的模型接口是从底层格式中抽象出来的,对使用JAMI作为库的开发人员隐藏了每种数据格式的复杂性和要求。

                 
后台-插件-广告管理-内容页尾部广告(手机)
标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。