0
头像

如何查找包含具有特定值的注释的所有文档?

亲爱的支持,

我是 Naturalis 的一名 Java 开发人员,并从 Reinier Kartowikromo 手中接过了 Geneious 插件的开发。

我正在尝试使用 Geneious API 来查找已使用具有特定值的(自定义)注释注释的所有文档。

最初我们试图通过直接针对数据库的硬核 SQL 查询来做到这一点,绕过 Geneious API。但我无法想象这就是你打算这样做的方式。然而,我在 Geneious Javadocs 中找不到任何似乎提供解决方案的内容。理想情况下,我正在寻找类似这样的 API:

列表<AnnotatedPluginDocument>getDocumentsWithNote(DocumentNoteField 字段,对象值)

你能告诉我怎么做吗?注意我们仍在使用 Geneious 8。

 

信息管理

6 条评论

0
头像

嗨,爱丽丝,

你想要类似的东西 

service.retrieve(Query.Factory.createFieldQuery(field, Condition.EQUAL, "valueToSearchFor"))

请参阅https://assets.geneious.com/developer/geneious/javadoc/latest/com/biomatters/geneious/publicapi/databaseservice/DatabaseService.html#retrieve-com.biomatters.geneious.publicapi.databaseservice.Query-jebl.util .ProgressListener-和 DatabaseService 类中的其他变体。

您将能够通过调用获得对根数据库服务的引用 

PluginUtilities.getWritableDatabaseServiceRoots()

以及通过调用可能的搜索字段列表

db.getSearchFields()

干杯,
马修

马修·张 0 票
评论动作 永久链接
0
头像

你好,马修,

我已经尝试过类似的方法,但是我想查询的搜索字段不存在于 db.getSearchFields() 返回的列表中 __ 尽管 __ 它在 GUI 中明确存在。请参阅随附的屏幕截图。那里有一些字段,如我们已添加为自定义文档注释字段的“提取板 ID”和“样品板 ID”。我 __can__ 在 GUI 中查询它们。但是这段代码没有产生我想以编程方式搜索的字段:

    列表<WritableDatabaseService>svcs = PluginUtilities.getWritableDatabaseServiceRoots();
for(WritableDatabaseService svc:svcs) {
System.out.println("文件夹:" + svc.getFolderName());
System.out.println("名称:" + svc.getName());
System.out.println("类:" + svc.getClass());
for(QueryField qf : svc.getSearchFields()) {
System.out.println("\tField : " + qf.field.getName() + "(" + qf.field.getCode() + ")");
}
System.out.println();
}

 

 

 

输出:

文件夹:当地的
名称 :文件夹:当地的
类:类 com.biomatters.plugins.local.LocalDatabaseService
场地 :任何领域(ALL)
场地 :通用名称(commonName)
场地 :%GC 引物结合 (percentGc)
场地 :斌(bin)
场地 :序列长度(sequence_length)
场地 :PDB 名称(PDBname)
场地 :最小序列长度(minimumSequenceLength)
场地 :分类学(taxonomy)
场地 :文档类型(文档类)
场地 :创建(cache_created)
场地 :大约共识长度(consensusSequenceLength)
场地 :是前读(isForwardRead)
场地 :名称(缓存名称)
场地 :MQ%(中等质量百分比)
场地 :% 相同站点 (percentage_identical)
场地 :Ref Seq Name(referenceSequenceName)
场地 :# 具有质量的核苷酸序列(核苷酸序列与质量计数)
场地 :歧义(歧义)
场地 :高度(高度)
场地 :对齐分数(alignment_score)
场地 :最大序列长度(maximumSequenceLength)
字段:应变(应变)
字段:db_xref(db_xref)
场地 :复制子类型(vNTREPLTYPE)
场地 :引物二聚体(primerDimer)
场地 :有机体(有机体)
场地 :尺寸(文档尺寸)
场地 :# 序列(number_of_sequences)
场地 :拓扑(拓扑)
场地 :# 核苷酸序列与伴侣(核苷酸序列WithMatesCount)
场地 :遗传密码(geneticCode)
场地 :#核苷酸(核苷酸计数)
场地 :其他别名(OtherAliases)
场地 :分类 ID(TaxID)
场地 :LQ%(lowQualityPercent)
场地 :修改(修改日期)
场地 :% Pairwise Identity(percentage_similarity)
场地 :对齐选项(alignment_options)
场地 :平均覆盖率(meanCoverage)
场地 :遗传源(GeneticSource)
场地 :第一个残基(sequence_residues)
场地 :对齐方式(Alignment_method)
场地 :GID(gid)
场地 :后修剪(postTrimLength)
场地 :# Indel Disagreements(indelDisagreements)
场地 :URN(display_urn)
场地 :说明(说明)
场地 :加入(加入)
场地 :内容(内容)
场地 :寡核苷酸类型(oligoType)
场地 :序列注释(sequenceAnnotations)
场地 :染色体外复制(vNTEXTCHREPL)
场地 :失败的分箱字段(BinFailReason)
场地 :自由端间隙(freeEndGaps)
场地 :编号提示(ntips)
场地 :Ref Seq Length(referenceSequenceLength)
场地 :HQ%(highQualityPercent)
字段:sub_strain(sub_strain)
场地 :Tm(熔点)
场地 :分子类型(molType)
场地 :树生成器(Tree_builder)
场地 :节点数(nnodes)
场地 :修剪参数(trimParams.trimParams)
场地 :发夹(发夹)
场地 :# 分歧(分歧)

文件夹:搜索
名称 :搜索
类:类 com.biomatters.plugins.local.LocalDatabaseService
场地 :任何领域(ALL)
场地 :通用名称(commonName)
场地 :%GC 引物结合 (percentGc)
场地 :斌(bin)
场地 :序列长度(sequence_length)
场地 :PDB 名称(PDBname)
场地 :最小序列长度(minimumSequenceLength)
场地 :分类学(taxonomy)
场地 :文档类型(文档类)
场地 :创建(cache_created)
场地 :大约共识长度(consensusSequenceLength)
场地 :是前读(isForwardRead)
场地 :名称(缓存名称)
场地 :MQ%(中等质量百分比)
场地 :% 相同站点 (percentage_identical)
场地 :Ref Seq Name(referenceSequenceName)
场地 :# 具有质量的核苷酸序列(核苷酸序列与质量计数)
场地 :歧义(歧义)
场地 :高度(高度)
场地 :对齐分数(alignment_score)
场地 :最大序列长度(maximumSequenceLength)
字段:应变(应变)
字段:db_xref(db_xref)
场地 :复制子类型(vNTREPLTYPE)
场地 :引物二聚体(primerDimer)
场地 :有机体(有机体)
场地 :尺寸(文档尺寸)
场地 :# 序列(number_of_sequences)
场地 :拓扑(拓扑)
场地 :# 核苷酸序列与伴侣(核苷酸序列WithMatesCount)
场地 :遗传密码(geneticCode)
场地 :#核苷酸(核苷酸计数)
场地 :其他别名(OtherAliases)
场地 :分类 ID(TaxID)
场地 :LQ%(lowQualityPercent)
场地 :修改(修改日期)
场地 :% Pairwise Identity(percentage_similarity)
场地 :对齐选项(alignment_options)
场地 :平均覆盖率(meanCoverage)
场地 :遗传源(GeneticSource)
场地 :第一个残基(sequence_residues)
场地 :对齐方式(Alignment_method)
场地 :GID(gid)
场地 :后修剪(postTrimLength)
场地 :# Indel Disagreements(indelDisagreements)
场地 :URN(display_urn)
场地 :说明(说明)
场地 :加入(加入)
场地 :内容(内容)
场地 :寡核苷酸类型(oligoType)
场地 :序列注释(sequenceAnnotations)
场地 :染色体外复制(vNTEXTCHREPL)
场地 :失败的分箱字段(BinFailReason)
场地 :自由端间隙(freeEndGaps)
场地 :编号提示(ntips)
场地 :Ref Seq Length(referenceSequenceLength)
场地 :HQ%(highQualityPercent)
字段:sub_strain(sub_strain)
场地 :Tm(熔点)
场地 :分子类型(molType)
场地 :树生成器(Tree_builder)
场地 :节点数(nnodes)
场地 :修剪参数(trimParams.trimParams)
场地 :发夹(发夹)
场地 :# 分歧(分歧)

文件夹:慷慨
名称 :文件夹:慷慨
类:类 com.biomatters.plugins.serverDatabase.ServerDatabaseService


信息管理 0 票
评论动作 永久链接
0
头像

换句话说 - 再次查看屏幕截图 - 我将如何以编程方式找到(例如)“提取板 ID”等于 16027-05 的所有文档?

信息管理 0 票
评论动作 永久链接
0
头像

嗨,爱丽丝,

那很奇怪。  它应该出现在文件夹下:genious。  更奇怪的是,根本没有田地。

输出是否被截断?

另一种可能性是索引不适用于共享数据库。  您可以通过以下方式进行测试:

  1. 将其中一个文档拖到本地文件夹中
  2. 等待索引器完成它的事情
  3. 重新启动 Geneious(以确保字段列表是新鲜的)
  4. 检查该字段是否由您的代码在 Folder:Local 下列出

让我知道情况如何。

干杯,
马修

马修·张 0 票
评论动作 永久链接
0
头像

嗨,爱丽丝,

我刚刚意识到您收到了一份关于索引在您的共享数据库中不起作用的公开支持票。  这很可能是您所看到的原因。 

一旦该问题得到解决,您就可以使用我之前提到的方法以编程方式进行搜索。  

现在,您可以尝试在新的共享数据库或本地数据库上测试您的代码。

干杯,
马修

马修·张 0 票
评论动作 永久链接
0
头像

你好马修

我想出了如何停用我想在查询中使用的搜索字段,尽管我不太明白它的原因

(再次查看屏幕截图)_ 这会生成搜索字段:

    DatabaseService ds = (DatabaseService) PluginUtilities
.getGeneiousService("geneious@jdbc:mysql:__ 145.136.241.66:3306_geneious/Ayco ");

 

这不会:

    DatabaseService ds = (DatabaseService) PluginUtilities
.getGeneiousService("geneious@jdbc:mysql:__145.136.241.66:3306_geneious");

 

顺便说一下,我是 Ayco :-) 不是 Iris。我在 Naturalis 从事 Java 开发。

信息管理 0 票
评论动作 永久链接