X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Febi%2FHmmerJSONProcessor.java;h=d0f3c181e8ef6c71aa748fb3845e8535080a9cbc;hb=053c5f25f135f0eeeb60acad625b246dc66e75fc;hp=52ea59efa4bf4949667b80a1e663f2c668ca7666;hpb=d987d3ba956a3b5b1f5b700425130022f75e5489;p=jalview.git diff --git a/src/jalview/ws/ebi/HmmerJSONProcessor.java b/src/jalview/ws/ebi/HmmerJSONProcessor.java index 52ea59e..d0f3c18 100644 --- a/src/jalview/ws/ebi/HmmerJSONProcessor.java +++ b/src/jalview/ws/ebi/HmmerJSONProcessor.java @@ -4,10 +4,13 @@ import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; import jalview.datamodel.SequenceFeature; +import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.io.FileParse; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -158,12 +161,13 @@ public class HmmerJSONProcessor hitseq.addAlignmentAnnotation(eval); alipp.createSequenceMapping(hitseq, hitseq.getStart(), false); hitseq.addAlignmentAnnotation(alipp); + String arch; hitseq.addSequenceFeature(new SequenceFeature( "Pfam Domain Architecture", (hmmrhit.get("archindex")) - + " " - + (String) hmmrhit.get("arch"), 0, 0, Integer - .valueOf((String) hmmrhit.get("archScore")), + + " " + (arch = (String) hmmrhit.get("arch")), 0, + 0, Integer.valueOf((String) hmmrhit.get("archScore")), "HMMER3")); + addArchGroup(hitseq, arch); alipp.setScore(Double.valueOf("" + dhit.get("bitscore"))); alipp.adjustForAlignment(); resultAl.addAnnotation(pval); @@ -182,6 +186,28 @@ public class HmmerJSONProcessor System.err.println("Warn - multiple matches for json hit " + sname + "/" + alisqfrom + "-" + alisqto); } + // look for other sequences represented by this hit and create + } + } + + Map groups = new HashMap(); + + private void addArchGroup(SequenceI seqToAdd, String groupNam) + { + SequenceGroup sg = groups.get(groupNam); + if (sg == null) + { + sg = new SequenceGroup(); + sg.setName(groupNam); + sg.addSequence(seqToAdd, false); + sg.setStartRes(0); + sg.setEndRes(resultAl.getWidth() - 1); + groups.put(groupNam, sg); + resultAl.addGroup(sg); + } + else + { + sg.addSequence(seqToAdd, false); } } @@ -207,7 +233,7 @@ public class HmmerJSONProcessor AlignmentAnnotation pprob = new AlignmentAnnotation( "Posterior Probability", "Likelihood of HMM fit at each hit position.", ae); - pprob.graph = pprob.BAR_GRAPH; + pprob.graph = AlignmentAnnotation.BAR_GRAPH; pprob.visible = false; return pprob; }