X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FMappedFeatures.java;h=87609c6afbc43d5b2d515ab53dbb219abc5fbc85;hb=69e8792b5f1ed2c02cff0a1ee328793ab5c0f423;hp=520ff92682ee85105191f56e3003ca36218a487d;hpb=de96de2488774840f2f6298d757369f9e43acaee;p=jalview.git diff --git a/src/jalview/datamodel/MappedFeatures.java b/src/jalview/datamodel/MappedFeatures.java index 520ff92..87609c6 100644 --- a/src/jalview/datamodel/MappedFeatures.java +++ b/src/jalview/datamodel/MappedFeatures.java @@ -29,21 +29,16 @@ public class MappedFeatures /* * 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 features; @@ -70,22 +65,23 @@ public class MappedFeatures * 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 theFeatures) { mapping = theMapping; - linkedSeq = from; - mappingIsFromLinkedSequence = mapping.to != linkedSeq; + featureSequence = featureSeq; toPosition = pos; toResidue = res; features = theFeatures; @@ -101,13 +97,13 @@ public class MappedFeatures { 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 { @@ -255,7 +251,7 @@ public class MappedFeatures */ public String getLinkedSequenceName() { - return linkedSeq == null ? null : linkedSeq.getName(); + return featureSequence == null ? null : featureSequence.getName(); } /** @@ -278,16 +274,22 @@ public class MappedFeatures 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; } }