/*
* the sequence the mapped features are on
*/
- private final SequenceI linkedSeq;
+ private final SequenceI featureSequence;
/*
* the mapping between sequences;
- * NB this could be in either sense
+ * NB this could be in either sense (from or to featureSequence)
*/
private final Mapping mapping;
/*
- * if true, mapping is from the linked sequence, else to the linked sequence
- */
- private boolean mappingIsFromLinkedSequence;
-
- /*
- * features on linkedSeq that overlap the mapped positions
+ * features on featureSequence that overlap the mapped positions
*/
public final List<SequenceFeature> features;
* Constructor
*
* @param theMapping
- * @param from
- * the sequence mapped from (e.g. CDS)
+ * sequence mapping (which may be either to, or from, the sequence
+ * holding the linked features)
+ * @param featureSeq
+ * the sequence hosting the virtual features
* @param pos
- * the residue position in the sequence mapped to
+ * the residue position in the sequence mapped to
* @param res
- * the residue character at position pos
+ * the residue character at position pos
* @param theFeatures
- * list of mapped features found in the 'from' sequence at
- * the mapped position(s)
+ * list of mapped features found in the 'featureSeq' sequence at the
+ * mapped position(s)
*/
- public MappedFeatures(Mapping theMapping, SequenceI from, int pos,
+ public MappedFeatures(Mapping theMapping, SequenceI featureSeq, int pos,
char res, List<SequenceFeature> theFeatures)
{
mapping = theMapping;
- linkedSeq = from;
- mappingIsFromLinkedSequence = mapping.to != linkedSeq;
+ featureSequence = featureSeq;
toPosition = pos;
toResidue = res;
features = theFeatures;
{
codonPos = codonPositions;
baseCodon = new char[3];
- int cdsStart = linkedSeq.getStart();
+ int cdsStart = featureSequence.getStart();
baseCodon[0] = Character
- .toUpperCase(linkedSeq.getCharAt(codonPos[0] - cdsStart));
+ .toUpperCase(featureSequence.getCharAt(codonPos[0] - cdsStart));
baseCodon[1] = Character
- .toUpperCase(linkedSeq.getCharAt(codonPos[1] - cdsStart));
+ .toUpperCase(featureSequence.getCharAt(codonPos[1] - cdsStart));
baseCodon[2] = Character
- .toUpperCase(linkedSeq.getCharAt(codonPos[2] - cdsStart));
+ .toUpperCase(featureSequence.getCharAt(codonPos[2] - cdsStart));
}
else
{
*/
public String getLinkedSequenceName()
{
- return linkedSeq == null ? null : linkedSeq.getName();
+ return featureSequence == null ? null : featureSequence.getName();
}
/**
public int[] getMappedPositions(int begin, int end)
{
MapList map = mapping.getMap();
- return mappingIsFromLinkedSequence ? map.locateInTo(begin, end)
- : map.locateInFrom(begin, end);
+ return mapping.to == featureSequence ? map.locateInFrom(begin, end)
+ : map.locateInTo(begin, end);
}
+ /**
+ * Answers true if the linked features are on coding sequence, false if on
+ * peptide
+ *
+ * @return
+ */
public boolean isFromCds()
{
if (mapping.getMap().getFromRatio() == 3)
{
- return mappingIsFromLinkedSequence;
+ return mapping.to != featureSequence;
}
- return !mappingIsFromLinkedSequence;
+ return mapping.to == featureSequence;
}
}