+ boolean namePresent = true;
+ if (sqinfo == null)
+ {
+ return false;
+ }
+ String oldname = (String) sqinfo.get("Name");
+ Integer start = (Integer) sqinfo.get("Start");
+ Integer end = (Integer) sqinfo.get("End");
+ Vector sfeatures = (Vector) sqinfo.get("SeqFeatures");
+ Vector<PDBEntry> pdbid = (Vector<PDBEntry>) sqinfo.get("PdbId");
+ String description = (String) sqinfo.get("Description");
+ Sequence seqds = (Sequence) sqinfo.get("datasetSequence");
+ if (oldname == null)
+ {
+ namePresent = false;
+ }
+ else
+ {
+ sq.setName(oldname);
+ }
+ if (pdbid != null && pdbid.size() > 0)
+ {
+ sq.setPDBId(pdbid);
+ }
+
+ if ((start != null) && (end != null))
+ {
+ sq.setStart(start.intValue());
+ sq.setEnd(end.intValue());
+ }
+
+ if ((sfeatures != null) && (sfeatures.size() > 0))
+ {
+ SequenceFeature[] sfarray = new SequenceFeature[sfeatures.size()];
+ for (int is = 0, isize = sfeatures.size(); is < isize; is++)
+ {
+ sfarray[is] = (SequenceFeature) sfeatures.elementAt(is);
+ }
+ sq.setSequenceFeatures(sfarray);
+ }
+ if (description != null)
+ {
+ sq.setDescription(description);
+ }
+ 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.");
+ }
+ sq.setDatasetSequence(seqds);
+ }
+
+ return namePresent;
+ }
+
+ /**
+ * Form of the unique name used in uniquify for the i'th sequence in an
+ * ordered vector of sequences.
+ *
+ * @param i
+ * int
+ * @return String
+ */
+ public static String unique_name(int i)
+ {
+ return new String("Sequence" + i);
+ }
+
+ /**
+ * Generates a hash of SeqCharacterHash properties for each sequence in a
+ * sequence set, and optionally renames the sequences to an unambiguous 'safe'
+ * name.
+ *
+ * @param sequences
+ * SequenceI[]
+ * @param write_names
+ * boolean set this to rename each of the sequences to its
+ * unique_name(index) name
+ * @return Hashtable to be passed to
+ * @see deuniquify to recover original names (and properties) for renamed
+ * sequences
+ */
+ public static Hashtable uniquify(SequenceI[] sequences,
+ boolean write_names)
+ {
+ // Generate a safely named sequence set and a hash to recover the sequence
+ // names