0
头像

PluginUtilities 使用流导入文档

Hello,

我正在创建一个 DatabaseService 插件来从 oracle 数据库中搜索和返回 genbank 记录。

我能够搜索数据库并以通用方式返回记录,但是数据库中的基因库信息存储为字符串。

我可以通过使用 FileUtilities.createTempFile 创建一个临时文件并使用 FileUtilities.writeTextToFile 将每个 genbank 字符串写入临时文件来读取记录。

这可行,但正如您想象的那样,这不是一个可扩展的解决方案。

是否可以使用流而不是文件创建带有 PluginUtilities.importDocuments 的 AnnotatedPluginDocument?

谢谢,

詹姆士

 

 

 

 

 

詹姆斯·莫里斯

5 条评论

0
头像

嗨,詹姆斯,

目前没有一种方法可以从流而不是文件中导入文档。

如果您可以从 GenBank 格式字符串中解析您需要的数据,您可以创建一个 SequenceDocument 并使用 WritableDatabaseService.addDocumentCopy() 将其添加到您的 Geneious 文件夹中,但我猜是将例如 BioJava RichSequence 转换为 SequenceDocument比它的价值更麻烦。

您是否真的发现将 Genbank 记录写入临时文件是一个巨大的瓶颈?你一次移动多少个序列?在实践中,我们发现磁盘 IO 并没有那么受限制,只要它在后台线程中完成即可。

杰西卡 0 票
评论动作 永久链接
0
头像

嗨,杰西卡,

非常感谢您的回答。

我尝试返回一个 DefaultNucleotideSequence 对象,该对象由通过解析 genbank 文件创建的 SequenceAnnotation 对象列表构造而成。这适用于提取基本信息,例如特征开始、结束和名称,但提取 genbank 文件中可用的所有复杂信息就像您所说的那样需要大量工作。

 

我使用临时文件和 importDocuments 方法的测试设置运行良好,并且对于返回约 100 个 genbank 序列的查询来说足够快。我只是想知道如果用户想要浏览更大的结果集,其中序列的数量可能达到数千,这个设置将如何在生产中扩展。

 

使用数据库服务插件是否可以只返回一个占位符序列列表,其中用户只能看到名称和描述,并且仅当用户单击序列时才加载序列和功能?

 

谢谢,

詹姆士

 

 

 

 

 

詹姆斯·莫里斯 0 票
评论动作 永久链接
0
头像

嗨,詹姆斯,

您是否知道我们支持用于 Geneious 数据存储的各种数据库系统(包括 Oracle)?将整个内容一次性导入 Geneious 格式的 Oracle(或其他 SQL)数据库可能更有意义。然而...

我们有一个 SummaryDocument 接口,您可以将其实现为您正在谈论的那种占位符。如果您在 Geneious 中打开来自 Genbank 的大序列,您通常会得到一个 SummaryDocument 实例。在 Genomes/Bacteria 下的 Sample Documents 中查看大肠杆菌基因组(在您下载之前,大多数样本基因组序列都是摘要文档)。

但是,您需要自己实现该行为。您甚至可能需要实现自己的 DocumentViewer,具体取决于您希望它的外观。摘要文档通常不会在用户单击它们时下载序列,它们需要用户的某些明确操作(例如,单击“下载序列”按钮)。我相信这个想法是使用 SummaryDocuments 的主要思想是在您下载完整文档时自动替换原始摘要文档。但是我从来没有必要编写自己的 SummaryDocument 实现,所以我不确定这一点,而且我没有太多建议! 

也就是说,我认为编写一个 SummaryDocument 实现可能是我在不导入整个内容的情况下浏览数据库内容的方式。但这比将整个数据库导入一个 Geneious 格式的 SQL 数据库要多得多。

杰西卡

杰西卡 0 票
评论动作 永久链接
0
头像

Hello,

作为对您的初始响应的跟进,是否可以将从流而不是文件中导入文档的功能添加到您的公共 API 的下一个版本中?

关于这个主题,您多久发布一次公共 API 的新版本?下一个什么时候到期?

谢谢,

詹姆士

 

詹姆斯·莫里斯 0 票
评论动作 永久链接
0
头像

嗨,詹姆斯,

虽然这是我们希望对 API 进行的改进,但对我们来说,实现起来比看起来要困难得多。我将记录添加流支持的功能请求,但恐怕我们不太可能很快添加它。

每个新版本的 Geneious Prime 都会发布一个新版本的 API。我们没有公开的发布时间表,但您可以从Geneious Prime 发布说明 中很好地了解我们的发布频率。

问候,

理查德

理查德·摩尔 0 票
评论动作 永久链接