*/
package jalview.analysis;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.HiddenMarkovModel;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
/**
* Store essential properties of a sequence in a hashtable for later recovery
- * Keys are Name, Start, End, SeqFeatures, PdbId
+ * Keys are Name, Start, End, SeqFeatures, PdbId, HMM
*
* @param seq
* SequenceI
{
Hashtable sqinfo = new Hashtable();
sqinfo.put("Name", seq.getName());
- sqinfo.put("Start", new Integer(seq.getStart()));
- sqinfo.put("End", new Integer(seq.getEnd()));
+ sqinfo.put("Start", Integer.valueOf(seq.getStart()));
+ sqinfo.put("End", Integer.valueOf(seq.getEnd()));
if (seq.getDescription() != null)
{
sqinfo.put("Description", seq.getDescription());
}
- Vector<SequenceFeature> sfeat = new Vector<SequenceFeature>();
+ Vector<SequenceFeature> sfeat = new Vector<>();
List<SequenceFeature> sfs = seq.getFeatures().getAllFeatures();
sfeat.addAll(sfs);
(seq.getDatasetSequence() != null) ? seq.getDatasetSequence()
: new Sequence("THISISAPLACEHOLDER", ""));
}
+ if (seq.hasHMMProfile())
+ {
+ sqinfo.put("HMM", seq.getHMM());
+ }
+
+ if (seq.getAnnotation("Search Scores") != null)
+ {
+ sqinfo.put("Score", seq.getAnnotation("Search Scores"));
+ }
+
return sqinfo;
}
Vector<PDBEntry> pdbid = (Vector<PDBEntry>) sqinfo.get("PdbId");
String description = (String) sqinfo.get("Description");
Sequence seqds = (Sequence) sqinfo.get("datasetSequence");
+ HiddenMarkovModel hmm = (HiddenMarkovModel) sqinfo.get("HMM");
+ AlignmentAnnotation[] scores = (AlignmentAnnotation[]) sqinfo
+ .get("Score");
+
if (oldname == null)
{
namePresent = false;
{
sq.setDescription(description);
}
- if ((seqds != null)
- && !(seqds.getName().equals("THISISAPLACEHOLDER") && seqds
- .getLength() == 0))
+ if ((seqds != null) && !(seqds.getName().equals("THISISAPLACEHOLDER")
+ && seqds.getLength() == 0))
{
if (sfeatures != null)
{
- System.err
- .println("Implementation error: setting dataset sequence for a sequence which has sequence features.\n\tDataset sequence features will not be visible.");
+ System.err.println(
+ "Implementation error: setting dataset sequence for a sequence which has sequence features.\n\tDataset sequence features will not be visible.");
}
sq.setDatasetSequence(seqds);
}
+ if (hmm != null)
+ {
+ sq.setHMM(new HiddenMarkovModel(hmm, sq));
+ }
+
+ if (scores != null)
+ {
+ for (AlignmentAnnotation score : scores)
+ {
+ sq.addAlignmentAnnotation(score);
+ }
+ }
return namePresent;
}
while (keys.hasMoreElements())
{
Object key = keys.nextElement();
- if (key instanceof String)
- {
+ try {
if ((msq = matcher.findIdMatch((String) key)) != null)
{
Hashtable sqinfo = (Hashtable) map.get(key);
+ "' in uniquified alignment");
}
}
+ } catch (ClassCastException ccastex) {
+ if (!quiet)
+ {
+ System.err.println("Unexpected object in SeqSet map : "+key.getClass());
+ }
}
}
if (unmatched.size() > 0 && !quiet)
{
System.err.println("Did not find matches for :");
- for (Enumeration i = unmatched.elements(); i.hasMoreElements(); System.out
- .println(((SequenceI) i.nextElement()).getName()))
+ for (Enumeration i = unmatched.elements(); i
+ .hasMoreElements(); System.out
+ .println(((SequenceI) i.nextElement()).getName()))
{
;
}