- for (SequenceI sq : ochains)
- {
- SequenceI bestm = null;
- AlignSeq bestaseq = null;
- int bestscore = 0;
- for (SequenceI msq : al.getSequences())
- {
- AlignSeq aseq = AlignSeq.doGlobalNWAlignment(msq, sq,
- dnaOrProtein);
- if (bestm == null || aseq.getMaxScore() > bestscore)
- {
- bestscore = aseq.getMaxScore();
- bestaseq = aseq;
- bestm = msq;
- }
- }
- System.out.println("Best Score for " + (matches.size() + 1) + " :"
- + bestscore);
- matches.add(bestm);
- aligns.add(bestaseq);
- al.deleteSequence(bestm);
- }
- for (int p = 0, pSize = seqs.size(); p < pSize; p++)
- {
- SequenceI sq, sp = seqs.get(p);
- int q;
- if ((q = ochains.indexOf(sp)) > -1)
- {
- seqs.set(p, sq = matches.get(q));
- sq.setName(sp.getName());
- sq.setDescription(sp.getDescription());
- sq.transferAnnotation(sp, aligns.get(q).getMappingFromS1(false));
- int inspos = -1;
- for (int ap = 0; ap < annotations.size();)
- {
- if (((AlignmentAnnotation) annotations.get(ap)).sequenceRef == sp)
- {
- if (inspos == -1)
- {
- inspos = ap;
- }
- annotations.remove(ap);
- }
- else
- {
- ap++;
- }
- }
- if (sq.getAnnotation() != null)
- {
- annotations.addAll(inspos, Arrays.asList(sq.getAnnotation()));
- }
- }
- }
- }
- }
-
- /**
- * make a friendly ID string.
- *
- * @param dataName
- * @return truncated dataName to after last '/'
- */
- private String safeName(String dataName)