X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FAlignmentUtils.java;h=450ae2752673431fb19728c540452fe71c626139;hb=b2cedc8371f6624859f107581e6d84e841d4114b;hp=2f9fcb26511ec3ff2bdb2be04a3e18fdcf18f601;hpb=0e5be6925629dad5a92036d728f8856fde2d5488;p=jalview.git diff --git a/src/jalview/analysis/AlignmentUtils.java b/src/jalview/analysis/AlignmentUtils.java index 2f9fcb2..450ae27 100644 --- a/src/jalview/analysis/AlignmentUtils.java +++ b/src/jalview/analysis/AlignmentUtils.java @@ -1480,12 +1480,12 @@ public class AlignmentUtils * aligned dna sequences * @param mappings * from dna to protein; these are replaced with new mappings - * @param gapChar + * @param al * @return an alignment whose sequences are the cds-only parts of the dna * sequences (or null if no mappings are found) */ public static AlignmentI makeCdsAlignment(SequenceI[] dna, - List mappings, char gapChar) + List mappings, AlignmentI al) { List cdsColumns = findCdsColumns(dna); @@ -1495,6 +1495,7 @@ public class AlignmentUtils */ List newMappings = new ArrayList(); List cdsSequences = new ArrayList(); + char gap = al.getGapCharacter(); for (SequenceI dnaSeq : dna) { @@ -1505,7 +1506,7 @@ public class AlignmentUtils { AlignedCodonFrame newMapping = new AlignedCodonFrame(); final List mappedCds = makeCdsSequences(dnaSeq, acf, - cdsColumns, newMapping, gapChar); + cdsColumns, newMapping, gap); if (!mappedCds.isEmpty()) { cdsSequences.addAll(mappedCds); @@ -1513,10 +1514,21 @@ public class AlignmentUtils } } } - AlignmentI al = new Alignment( + AlignmentI newAl = new Alignment( cdsSequences.toArray(new SequenceI[cdsSequences.size()])); - al.setGapCharacter(gapChar); - al.setDataset(null); + + /* + * add new sequences to the shared dataset, set it on the new alignment + */ + List dsseqs = al.getDataset().getSequences(); + for (SequenceI seq : newAl.getSequences()) + { + if (!dsseqs.contains(seq.getDatasetSequence())) + { + dsseqs.add(seq.getDatasetSequence()); + } + } + newAl.setDataset(al.getDataset()); /* * Replace the old mappings with the new ones @@ -1524,7 +1536,7 @@ public class AlignmentUtils mappings.clear(); mappings.addAll(newMappings); - return al; + return newAl; } /** @@ -1682,6 +1694,7 @@ public class AlignmentUtils { SequenceI cds = makeCdsSequence(dnaSeq, seqMapping, ungappedCdsColumns, gapChar); + cds.createDatasetSequence(); cdsSequences.add(cds); /*