JAL-1950 add domain architecture feature
authorJim Procter <jprocter@issues.jalview.org>
Mon, 16 Nov 2015 14:17:33 +0000 (14:17 +0000)
committerJim Procter <jprocter@issues.jalview.org>
Mon, 16 Nov 2015 14:17:33 +0000 (14:17 +0000)
src/jalview/ws/ebi/HmmerJSONProcessor.java

index bb3e95a..52ea59e 100644 (file)
@@ -3,6 +3,7 @@ package jalview.ws.ebi;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
+import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 import jalview.io.FileParse;
 
@@ -137,7 +138,6 @@ public class HmmerJSONProcessor
       // alippline
       String aliaseq = (String) dhit.get("aliaseq"), alimodel = (String) dhit
               .get("alimodel"), ppline = (String) dhit.get("alippline");
-      AlignmentAnnotation alipp = parsePosteriorProb(ppline);
       //
       int found = 0;
       for (SequenceI hitseq : hits)
@@ -146,6 +146,7 @@ public class HmmerJSONProcessor
         if (hitseq.getStart() == alisqfrom && hitseq.getEnd() == alisqto)
         {
           found++; // annotated a sequence
+          AlignmentAnnotation alipp = parsePosteriorProb(ppline);
           AlignmentAnnotation pval = new AlignmentAnnotation("p-value",
                   "hmmer3 pvalue", pvalue);
           AlignmentAnnotation eval = new AlignmentAnnotation("e-value",
@@ -157,6 +158,12 @@ public class HmmerJSONProcessor
           hitseq.addAlignmentAnnotation(eval);
           alipp.createSequenceMapping(hitseq, hitseq.getStart(), false);
           hitseq.addAlignmentAnnotation(alipp);
+          hitseq.addSequenceFeature(new SequenceFeature(
+                  "Pfam Domain Architecture", (hmmrhit.get("archindex"))
+                          + " "
+                          + (String) hmmrhit.get("arch"), 0, 0, Integer
+                          .valueOf((String) hmmrhit.get("archScore")),
+                  "HMMER3"));
           alipp.setScore(Double.valueOf("" + dhit.get("bitscore")));
           alipp.adjustForAlignment();
           resultAl.addAnnotation(pval);