+ sequenceRef = seqRef;\r
+\r
+ if(startRes < sequenceRef.getStart())\r
+ startRes = sequenceRef.getStart();\r
+\r
+ int seqPos;\r
+\r
+ int fileOffset = 0;\r
+ if(startRes > sequenceRef.getStart())\r
+ {\r
+ fileOffset = startRes - sequenceRef.getStart();\r
+ }\r
+\r
+ for(int i = 0; i < annotations.length; i++)\r
+ {\r
+ seqPos = sequenceRef.findPosition(i + fileOffset);\r
+ if(seqPos<annotations.length)\r
+ {\r
+ if (annotations[i] != null)\r
+ {\r
+ sequenceMapping.put(new Integer(seqPos),\r
+ annotations[i]);\r
+ }\r
+ }\r
+ }\r
+\r
+ adjustForAlignment();\r
+\r
+ }\r
+\r
+ public void adjustForAlignment()\r
+ {\r
+ int a=0, aSize = sequenceRef.getLength();\r
+\r
+ if(aSize == 0)\r
+ {\r
+ //Its been deleted\r
+ return;\r
+ }\r
+\r
+ int position;\r
+ Annotation[] temp = new Annotation[aSize];\r
+ Integer index;\r
+\r
+ for (a = sequenceRef.getStart(); a <= sequenceRef.getEnd(); a++)\r
+ {\r
+ index = new Integer(a);\r
+ if(sequenceMapping.containsKey(index))\r
+ {\r
+ position = sequenceRef.findIndex(a)-1;\r
+\r
+ temp[position] = (Annotation)sequenceMapping.get(index);\r
+ }\r
+ }\r
+\r
+ annotations = temp;\r