int[] alignedCodon = getAlignedCodon(codon);
String peptide = getPeptide();
+ int peptideCol = toPosition - 1 - Mapping.this.to.getStart();
return new AlignedCodon(alignedCodon[0], alignedCodon[1],
- alignedCodon[2], peptide);
+ alignedCodon[2], peptide, peptideCol);
}
/**
* sequence.
*
* @return
+ * @throws NoSuchElementException
+ * if the 'toRange' is exhausted (nothing to map to)
*/
private String getPeptide()
{
*
* @see java.lang.Object#finalize()
*/
+ @Override
protected void finalize() throws Throwable
{
map = null;
super.finalize();
}
+ /**
+ * Returns an iterator which can serve up the aligned codon column positions
+ * and their corresponding peptide products
+ *
+ * @param seq
+ * an aligned (i.e. possibly gapped) sequence
+ * @param gapChar
+ * @return
+ */
public Iterator<AlignedCodon> getCodonIterator(SequenceI seq, char gapChar)
{
return new AlignedCodonIterator(seq, gapChar);
}
+ /**
+ * Readable representation for debugging only, not guaranteed not to change
+ */
+ @Override
+ public String toString()
+ {
+ return String.format("%s %s", this.map.toString(), this.to == null ? ""
+ : this.to.getName());
+ }
+
}