0
头像

无法通过 API 中提供的 getNumberOfReferenceSequences() 列出所有引用

要进行大会,我如何获得所有参考资料?

 

我有一个从 Assembler 扩展的类,一些代码如下所示:

公共类测试扩展汇编器{
@覆盖
公共字符串 getUniqueId() {
返回“测试”;
}

// 'Map to Reference' 中显示的插件名称
@覆盖
公共字符串 getName() {
返回“测试”;
}

@覆盖
公共 ReferenceSequenceSupport getReferenceSequenceSupport() {
//返回 ReferenceSequenceSupport.SingleReferenceSequence;
返回 ReferenceSequenceSupport。多个参考序列
}

@覆盖
公共 ContigOutputSupport getContigOutputSupport() {
返回 ContigOutputSupport.ContigsOnly;
}

@覆盖
公共布尔提供UnusedReads(){
返回真;
}

// 本:这将在“映射到参考”窗口中添加一个选项。
@覆盖
公共选项 getOptions(OperationLocationOptions locationOptions,
AssemblerInput.Properties inputProperties) {
返回新的 test_testOptions();
}

// 在汇编之前,先拆分引用。
//


// 这是启用“映射到引用”的实际功能
@覆盖
public void assemble(Options _options, AssemblerInput assemblyInput,
ProgressListener 进度监听器,
回调回调)抛出 DocumentOperationException {

test_options = (test_testOptions) _options;
boolean onlyAssembleHalf = options.isOnlyAssembleHalfOfTheReads();

CompositeProgressListener CompositeProgressListener = new CompositeProgressListener(progressListener, 3);

CompositeProgressListener.beginSubtask();

// 这里,0 表示我们的数据集中只有一个 ref
最终 SequenceDocument 参考序列 = assemblyInput.getReferenceSequence(0,compositeProgressListener);

// 我们怎么能得到
System.out.println("获取多少个引用:"+assemblyInput.toString());


// 本调试
System.out.println("引用序列数:"+ assemblyInput.getNumberOfReferenceSequences() );
System.out.println("参考序列:"+ assemblyInput.getReferenceSequence(0, progressListener).getSequenceString());

 

...

 

输出总是“参考序列的数量:1”,但实际上我肯定有多个参考。所以任何人都可以帮助我知道为什么这样的功能不起作用。 

 

Thanks!

阿基利斯

7 条评论

0
头像

你在做什么看起来是正确的,它应该返回正确数量的参考序列 - 至少在我现在尝试的时候是这样。您确定您在运行它时实际上在程序集选项中选择了多个参考序列。例如,您在选项中选择的参考序列应显示类似于参考序列的内容:“来自文档名称的所有 5 个序列”。

作为测试,您可以将您的 getReferenceSequenceSupport 改回 ReferenceSequenceSupport.SingleReferenceSequence 并且当您在选项中选择多个参考序列时,Geneious 应该弹出一条警告消息说“选定的汇编程序仅支持单个参考序列”并且不会让您继续。

希拉里·米勒(Hilary Miller) 0 票
评论动作 永久链接
0
头像

是的,根据您的帮助,我发现“映射到参考”中有“附加”选项。首先,您需要将所有参考序列分组到一个列表中。然后功能开始工作。

阿基利斯 0 票
评论动作 永久链接
0
头像

只是另一个相关的问题。

 

我怎样才能找到“大会报告”类型?它是一个 TextDocument 对象吗?谢谢

阿基利斯 0 票
评论动作 永久链接
0
头像

它是 API 中不可用的自定义 PluginDocument 类型。您可以通过转到工具->首选项->插件和功能->自定义功能集并打开2个“文档源...”查看器来找出任何文档的类别。任何文档的“摘要 XML”视图都会在开头列出文档的类名。

你为什么想知道“大会报告”?你想用它做什么?

希拉里·米勒(Hilary Miller) 0 票
评论动作 永久链接
0
头像

感谢您的快速回复。 

 

我正在考虑编写一个插件,可以将组装报告保存为文本文件。我尝试了 csv 和 tsv。它看起来像:

创建日期 描述 修改名称 大小
2013 年 9 月 11 日星期三 10:33:30 EST 2013 年 9 月 11 日星期三 10:33:30 EST 2013 大会报告 42 KB

 

所以如果有什么方法可以让我们保存整个Assembly Report的内容,那就太棒了!你有什么想法要这样做吗?

 

再次感谢!

 

 

阿基利斯 0 票
评论动作 永久链接
0
头像

不幸的是,像这样的自定义查看器并非如此。您可以编写一些代码来获取组装报告的 DocumentViewerFactory 并要求它生成用于查看的 JComponent。但是您最好只从查看器中选择所有文本并使用复制和粘贴将其从 Geneious 中删除。

希拉里·米勒(Hilary Miller) 0 票
评论动作 永久链接
0
头像

我可能会尝试。

感谢您的善意建议。这是非常有帮助的!

阿基利斯 0 票
评论动作 永久链接