import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public static AlignmentI makeExonAlignment(SequenceI[] dna,
Set<AlignedCodonFrame> mappings)
{
- Set<AlignedCodonFrame> newMappings = new HashSet<AlignedCodonFrame>();
+ Set<AlignedCodonFrame> newMappings = new LinkedHashSet<AlignedCodonFrame>();
List<SequenceI> exonSequences = new ArrayList<SequenceI>();
for (SequenceI dnaSeq : dna)
/*
* Get the codon regions as { [2, 5], [7, 12], [14, 14] etc }
*/
- List<int[]> exonRanges = seqMapping.getMap().getFromRanges();
- for (int[] range : exonRanges)
+ final List<int[]> dnaExonRanges = seqMapping.getMap().getFromRanges();
+ for (int[] range : dnaExonRanges)
{
for (int pos = range[0]; pos <= range[1]; pos++)
{
.getToRanges(),
3, 1);
newMapping.addMap(exon.getDatasetSequence(), seqMapping.getTo(), map);
+ MapList cdsToDnaMap = new MapList(dnaExonRanges, exonRange, 1, 1);
+ newMapping.addMap(dnaSeq, exon.getDatasetSequence(), cdsToDnaMap);
exonSequences.add(exon);
}