From e1c9c652059a67ee96f9fc5f6617fd5d604cbdbb Mon Sep 17 00:00:00 2001 From: jprocter Date: Tue, 22 Jan 2008 16:14:19 +0000 Subject: [PATCH] new method to get map of sequence positions corresponding to alignment columns --- src/jalview/datamodel/Sequence.java | 22 ++++++++++++++++++++++ src/jalview/datamodel/SequenceI.java | 8 ++++++++ 2 files changed, 30 insertions(+) diff --git a/src/jalview/datamodel/Sequence.java b/src/jalview/datamodel/Sequence.java index 722edf2..3240f84 100755 --- a/src/jalview/datamodel/Sequence.java +++ b/src/jalview/datamodel/Sequence.java @@ -656,7 +656,29 @@ public class Sequence implements SequenceI return map; } + /* + * (non-Javadoc) + * + * @see jalview.datamodel.SequenceI#findPositionMap() + */ + public int[] findPositionMap() + { + int map[] = new int[sequence.length]; + int j = 0; + int pos = start; + int seqlen = sequence.length; + while ((j < seqlen)) + { + map[j] = pos; + if (!jalview.util.Comparison.isGap(sequence[j])) + { + pos++; + } + j++; + } + return map; + } /* * (non-Javadoc) * diff --git a/src/jalview/datamodel/SequenceI.java b/src/jalview/datamodel/SequenceI.java index da49a31..d9ffc81 100755 --- a/src/jalview/datamodel/SequenceI.java +++ b/src/jalview/datamodel/SequenceI.java @@ -174,6 +174,14 @@ public interface SequenceI public int[] gapMap(); /** + * Returns an int array where indices correspond to each position in + * sequence char array and the element value gives the result of findPosition + * for that index in the sequence. + * + * @return int[SequenceI.getLength()] + */ + public int[] findPositionMap(); + /** * Delete a range of aligned sequence columns, creating a new dataset sequence if necessary * and adjusting start and end positions accordingly. * -- 1.7.10.2