+ int codesForResidues = mappedDnaLength / 3;
+ if (codesForResidues == proteinLength
+ || codesForResidues == (proteinLength + 1))
+ {
+ return new MapList(ranges, proteinRange, 3, 1);
+ }
+ return null;
+ }
+
+ /**
+ * Adds CDS ranges to the ranges list, and returns the total length mapped.
+ *
+ * No need to worry about reverse strand dna here since the retrieved sequence
+ * is as transcribed (reverse complement for reverse strand), i.e in the same
+ * sense as the peptide.
+ *
+ * @param dnaSeq
+ * @param ranges
+ * @return
+ */
+ protected int getCdsRanges(SequenceI dnaSeq, List<int[]> ranges)
+ {
+ SequenceFeature[] sfs = dnaSeq.getSequenceFeatures();
+ if (sfs == null)
+ {
+ return 0;
+ }
+ int mappedDnaLength = 0;