X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fdatamodel%2FSequence.java;h=0da30bad43490e56f666f697365b792de4096f7b;hb=46406ae21c62b964714ce136c9d692985c17211d;hp=c8b94cecf83e3d4710d2186fc8d0b4a551b03d4d;hpb=853624fb32058cccc544ae7d13af6ad4b0800b6c;p=jalview.git diff --git a/src/jalview/datamodel/Sequence.java b/src/jalview/datamodel/Sequence.java index c8b94ce..0da30ba 100755 --- a/src/jalview/datamodel/Sequence.java +++ b/src/jalview/datamodel/Sequence.java @@ -51,12 +51,20 @@ public class Sequence extends ASequence implements SequenceI private char[] sequence; + int previousPosition; + String description; int start; int end; + boolean hasInfo; + + HiddenMarkovModel hmm; + + boolean isHMMConsensusSequence = false; + Vector pdbIds; String vamsasId; @@ -290,6 +298,10 @@ public class Sequence extends ASequence implements SequenceI this.addPDBId(new PDBEntry(pdb)); } } + if (seq.getHMM() != null) + { + this.hmm = new HiddenMarkovModel(seq.getHMM()); + } } @Override @@ -314,12 +326,11 @@ public class Sequence extends ASequence implements SequenceI } @Override - public synchronized void addSequenceFeature(SequenceFeature sf) + public synchronized boolean addSequenceFeature(SequenceFeature sf) { if (sequenceFeatures == null && datasetSequence != null) { - datasetSequence.addSequenceFeature(sf); - return; + return datasetSequence.addSequenceFeature(sf); } if (sequenceFeatures == null) { @@ -330,7 +341,7 @@ public class Sequence extends ASequence implements SequenceI { if (sequenceFeatures[i].equals(sf)) { - return; + return false; } } @@ -339,6 +350,7 @@ public class Sequence extends ASequence implements SequenceI temp[sequenceFeatures.length] = sf; sequenceFeatures = temp; + return true; } @Override @@ -416,7 +428,7 @@ public class Sequence extends ASequence implements SequenceI { if (pdbIds == null) { - pdbIds = new Vector(); + pdbIds = new Vector<>(); pdbIds.add(entry); return true; } @@ -787,7 +799,7 @@ public class Sequence extends ASequence implements SequenceI @Override public List getInsertions() { - ArrayList map = new ArrayList(); + ArrayList map = new ArrayList<>(); int lastj = -1, j = 0; int pos = start; int seqlen = sequence.length; @@ -1048,7 +1060,7 @@ public class Sequence extends ASequence implements SequenceI { if (this.annotation == null) { - this.annotation = new Vector(); + this.annotation = new Vector<>(); } if (!this.annotation.contains(annotation)) { @@ -1372,7 +1384,7 @@ public class Sequence extends ASequence implements SequenceI public List getAlignmentAnnotations(String calcId, String label) { - List result = new ArrayList(); + List result = new ArrayList<>(); if (this.annotation != null) { for (AlignmentAnnotation ann : annotation) @@ -1428,7 +1440,7 @@ public class Sequence extends ASequence implements SequenceI } synchronized (dbrefs) { - List primaries = new ArrayList(); + List primaries = new ArrayList<>(); DBRefEntry[] tmp = new DBRefEntry[1]; for (DBRefEntry ref : dbrefs) { @@ -1475,4 +1487,89 @@ public class Sequence extends ASequence implements SequenceI } } + @Override + public HiddenMarkovModel getHMM() + { + return hmm; + } + + @Override + public void setHMM(HiddenMarkovModel hmm) + { + this.hmm = hmm; + } + + @Override + public void updateHMMMapping() + { + int node = 1; + int column = 0; + for (char residue : sequence) + { + if (!Comparison.isGap(residue)) + { + hmm.setAlignmentColumn(node, column); + hmm.getNodeLookup().put(column, node); + node++; + } + else + { + hmm.getNodeLookup().remove(column); + } + column++; + } + + } + + @Override + public boolean isHMMConsensusSequence() + { + return isHMMConsensusSequence; + } + + @Override + public void setIsHMMConsensusSequence(boolean isHMMConsensusSequence) + { + this.isHMMConsensusSequence = isHMMConsensusSequence; + } + + @Override + public boolean hasHMMAnnotation() + { + return hasInfo; + /* + if (annotation == null) + { + return false; + } + + for (AlignmentAnnotation annot : annotation) + { + if (annot.label.contains("_HMM")) + { + return true; + } + } + return false; + */ + } + + @Override + public void setHasInfo(boolean status) + { + hasInfo = true; + } + + @Override + public int getPreviousPosition() + { + return previousPosition; + } + + @Override + public void setPreviousPosition(int previousPosition) + { + this.previousPosition = previousPosition; + } + }