0
头像

从文档中获取选定的序列间隔

你好

我正在尝试获取文档所选序列的间隔。 

SequenceSelection.SequenceIndex selection_index = new SequenceSelection.SequenceIndex(0, SequenceType.NUCLEOTIDE, SequenceSelection.SequenceDocumentType.Sequence);


SequenceSelection.SelectionInterval selection_interval= new SequenceSelection.SelectionInterval(selection_index, start_residue, end_residue);

 

如何从文档中获取起始残基和结束残基?

 

我也在尝试向我的查看器添加工具栏。我已经添加了 JToolbar,它在 JPanel 的顶部占用了额外的空间,但如果可能的话,我想将它添加到 JPanel 和查看器选项卡名称之间的空白区域,其中存在通常的通用选项。 

 

有没有办法解决这个问题?

(一点示例代码会有所帮助)

 

 

问候,

阿肖克。

ashok 哑光

5 条评论

0
头像

1)这取决于此代码的位置。您有新的查看器并且想要从序列视图中获取选择吗?或者它是一个手术还是其他什么东西?

2) 要将按钮添加到内置工具栏,请覆盖DocumentViewer 中的getActionProvider()方法。有关其工作原理的详细信息,请参阅 com.biomatters.geneious.publicapi.plugin.ActionProvider上的 java 文档。您可能希望覆盖ActionProvider 中的 getOtherActions()方法。

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


1) 是的,我基于 ExampleDocumentViewer 创建了一个查看器。我想从序列视图中获取所选区域的间隔。我想知道如何获得开始和结束残差来提取间隔。

2) getOtherActions() 正是我正在寻找的方法,谢谢

3) 我的文档由几个不同的注释组成,如果我开始单击复选框以启用/禁用特定注释的可见性,则需要时间。我正在考虑对注释进行分组,单击即可使它们可见或不可见。我找到了序列轨道的 api 文档。我认为它可以提供对注释进行分组的可能性。

通常,我的代码是
列表<SequenceAnnotation>结果 = 新的 ArrayList<SequenceAnnotation> ();
最终的 SequenceAnnotationInterval 间隔 = 新的 SequenceAnnotationInterval(startPos, stopPos);
SequenceAnnotation gene_annotation = new SequenceAnnotation(label_anno,"基因簇",interval);

gene_annotation.addQualifier(new SequenceAnnotationQualifier("cluster1", ""));

结果。添加(基因注释);
返回 Arrays.asList(results);
这段代码对我来说非常好。我对 SequenceTrack 有点困惑,因为它没有创建 SequenceAnnotation 的功能。有没有更好的方法来对不同的注释类型进行分组?


SequenceTrack track = new SequenceTrack("序列注释");
track.addQualifier(new SequenceAnnotationQualifier("genes found", "");
// 没有指定间隔,这给出了一个空异常
SequenceTrack.Manager manager= new Manager(plugindocument); manager.addTrack(track);

annotatedPluginDocument = DocumentUtilities.createAnnotatedPluginDocument(plugindocument); annotatedPluginDocument.saveDocument();



问候,
阿肖克

ashok 哑光 0 票
评论动作 永久链接
0
头像

1) 在这种情况下,您将需要收听序列查看器在选择更改时发出的选择消息。在您的查看器中覆盖方法getIncomingMessageHandler()并返回一个实现方法setSequenceSelection()的新 DocumentViewerMessageHandler 。每当序列视图(或任何其他视图)更改选择时,就会调用此方法。有关更多详细信息,请阅读 DocumentViewerMessageHandler上的 javadoc。

2) 很棒:)

3)我认为轨道是正确的使用方法。您应该以正常方式创建注释,然后使用SequenceTrack.setAnnotations(List<SequenceAnnotation> )将您的注释放在轨道中。 

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

嗨,理查德,

谢谢,很有帮助。


我无法将我的注释添加到曲目中。它导致没有任何注释的简单序列。我想我在这里错过了一些小事。我的代码在调用模块时有问题吗?

我在 DocumentFileImporter 中使用它。





    SequenceTrack track = new SequenceTrack("杂项簇");
列表<SequenceAnnotation>结果 = 新的 ArrayList<SequenceAnnotation> ();
结果。添加(注释); // 添加注释到序列注释列表
track.setAnnotations(结果);
SequenceTrack.Manager manager = new SequenceTrack.Manager((DefaultSequenceDocument)plugindocument);
manager.addTrack(track);
annotatedPluginDocument = DocumentUtilities.createAnnotatedPluginDocument(plugindocument);
callback.addDocument(annotatedPluginDocument);



问候,

阿肖克马特。

ashok 哑光 0 票
评论动作 永久链接
0
头像

您需要从序列中获取一个,而不是构建一个新的轨道管理器:

((DefaultSequenceDocument)pluginDocument).getTrackManager(false).addTrack(track)

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