+ ensureJalviewDatasetSequence(vamsasSeq, ds, dseqs);
+ }
+ // create a new dataset
+ if (ds == null)
+ {
+ SequenceI[] dsseqs = new SequenceI[dseqs.size()];
+ dseqs.copyInto(dsseqs);
+ ds = new jalview.datamodel.Alignment(dsseqs);
+ addDatasetRef(vamsasSet.getDatasetId(), ds);
+ }
+ // set the dataset for the newly imported alignment.
+ if (al.getDataset() == null)
+ {
+ al.setDataset(ds);
+ }
+ }
+
+
+ /**
+ *
+ * @param vamsasSeq sequence definition to create/merge dataset sequence for
+ * @param ds dataset alignment
+ * @param dseqs vector to add new dataset sequence to
+ */
+ private void ensureJalviewDatasetSequence(Sequence vamsasSeq, AlignmentI ds, Vector dseqs)
+ {
+ jalview.datamodel.Sequence sq = (jalview.datamodel.Sequence) seqRefIds.get(vamsasSeq.getId());
+ jalview.datamodel.SequenceI dsq = null;
+ if (sq!=null && sq.getDatasetSequence()!=null)
+ {
+ dsq = (jalview.datamodel.SequenceI) sq.getDatasetSequence();
+ }
+
+ String sqid = vamsasSeq.getDsseqid();
+ if (dsq==null)
+ {
+ // need to create or add a new dataset sequence reference to this sequence