...
Code Block | ||||
---|---|---|---|---|
| ||||
public class MyPlugin extends AbstractAnnotationOperator implements Operator { // Constructor MyPlugin(FileTypeCategory category){ super(category); } // Method to determine the internal plugin name @Override public String getName() { return this.category.toString().toLowerCase() +"_my_plugin"; } // Method to determine the display name for the operation @Override public String getDisplay() { return "My Operation"; } // Private method to check if two symmetries are overlapped used by the operate() private boolean overlap(BioSeq aseq, SeqSymmetry s0, SeqSymmetry s1) { return s0.getSpan(aseq) != null && s1.getSpan(aseq) != null && s0.getSpan(aseq).getMax() > s1.getSpan(aseq).getMin() && s0.getSpan(aseq).getMin() < s1.getSpan(aseq).getMax(); } // Core code for the operation which loops over input symmetries and return the overlapped ones @Override public SeqSymmetry operate(BioSeq aseq, List<SeqSymmetry> symList) { SimpleSymWithProps result = new SimpleSymWithProps(); result.setProperties(new HashMap<String,Object>()); TypeContainerAnnot t0 = (TypeContainerAnnot)symList.get(0); TypeContainerAnnot t1 = (TypeContainerAnnot)symList.get(1); result.setProperty("type", t0.getType() + " " + getName()); for (int i = 0; i < t0.getChildCount(); i++) { SeqSymmetry s0 = t0.getChild(i); for (int j = 0; j < t1.getChildCount(); j++) { SeqSymmetry s1 = t1.getChild(j); if (overlap(aseq, s0, s1)) { result.addChild(s0); result.addSpan(s0.getSpan(aseq)); break; } } } return result; } |
You can refer more operations in plugins or com.affymetrix.genometryImpl.operator package in core folder.
Wiki Markup |
---|
*Step 7. Update* *{_}MAINFEST.BASE{_}{*}*:* Directly under the _\[MyPlugin\]_ folder, update the following highlighted fields for _MAINFEST.BASE_. |
...