X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignmentAnnotation.java;h=c3396b6553f753c2bef3c96be9ad957ade806012;hb=0bdaa0deb6ee514912d2ed730e19f618bc44cb69;hp=2850eeb9f0786fa8c0f572678f404d6638655cd4;hpb=ae687fbf5b5d6c34e8ccfbe27afdc0ff0eff747f;p=jalview.git diff --git a/src/jalview/datamodel/AlignmentAnnotation.java b/src/jalview/datamodel/AlignmentAnnotation.java index 2850eeb..c3396b6 100755 --- a/src/jalview/datamodel/AlignmentAnnotation.java +++ b/src/jalview/datamodel/AlignmentAnnotation.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer -* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle +* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -258,11 +258,14 @@ public class AlignmentAnnotation } /** - * Attach the annotation to seqRef, starting from startRes position. + * Attach the annotation to seqRef, starting from startRes position. If alreadyMapped is true then the indices of the annotation[] array are sequence positions rather than alignment column positions. * @param seqRef * @param startRes + * @param alreadyMapped */ - public void createSequenceMapping(SequenceI seqRef, int startRes) + public void createSequenceMapping(SequenceI seqRef, + int startRes, + boolean alreadyMapped) { if(seqRef == null) return; @@ -270,30 +273,22 @@ public class AlignmentAnnotation sequenceMapping = new java.util.Hashtable(); sequenceRef = seqRef; - - if(startRes < sequenceRef.getStart()) - startRes = sequenceRef.getStart(); - int seqPos; - int fileOffset = 0; - if(startRes > sequenceRef.getStart()) - { - fileOffset = startRes - sequenceRef.getStart(); - } - for(int i = 0; i < annotations.length; i++) { - seqPos = sequenceRef.findPosition(i + fileOffset); if (annotations[i] != null) { - sequenceMapping.put(new Integer(seqPos), - annotations[i]); + if(alreadyMapped) + seqPos = seqRef.findPosition(i); + else + seqPos = i+startRes; + + sequenceMapping.put(new Integer(seqPos), annotations[i]); } } adjustForAlignment(); - } public void adjustForAlignment()