Formatted source
[jalview.git] / src / jalview / analysis / CompareAlignments.java
index e2dd742..2752e6f 100755 (executable)
 * along with this program; if not, write to the Free Software\r
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
 */\r
-\r
 package jalview.analysis;\r
 \r
 import jalview.datamodel.*;\r
+\r
 import jalview.io.*;\r
 \r
 import java.util.*;\r
 \r
-public class CompareAlignments {\r
 \r
+public class CompareAlignments {\r
     Vector align;\r
     String refId;\r
     Vector ids;\r
 \r
     public CompareAlignments(Vector align) {\r
+        this.align = align;\r
 \r
-       this.align = align;\r
-\r
-       ids = new Vector();\r
+        ids = new Vector();\r
 \r
-       Alignment al0 = (Alignment)align.elementAt(0);\r
+        Alignment al0 = (Alignment) align.elementAt(0);\r
 \r
-       for (int i = 0; i < al0.getHeight(); i++) {\r
-           SequenceI seq = al0.getSequenceAt(i);\r
+        for (int i = 0; i < al0.getHeight(); i++) {\r
+            SequenceI seq = al0.getSequenceAt(i);\r
 \r
-           ids.addElement(seq.getName());\r
-\r
-           if (i == 0) {\r
-               setReferenceId(seq.getName());\r
-           }\r
-       }\r
+            ids.addElement(seq.getName());\r
 \r
+            if (i == 0) {\r
+                setReferenceId(seq.getName());\r
+            }\r
+        }\r
     }\r
 \r
     public void compare() {\r
+        Hashtable positions = new Hashtable();\r
 \r
-       Hashtable positions = new Hashtable();\r
-\r
-       for (int k = 0; k < ids.size(); k++) {\r
-\r
-           String id = (String)ids.elementAt(k);\r
-\r
-           System.out.println("Ids " + id + " " + refId);\r
+        for (int k = 0; k < ids.size(); k++) {\r
+            String id = (String) ids.elementAt(k);\r
 \r
-           if (!id.equals(refId)) {\r
+            System.out.println("Ids " + id + " " + refId);\r
 \r
-               Hashtable fullhash = new Hashtable();\r
+            if (!id.equals(refId)) {\r
+                Hashtable fullhash = new Hashtable();\r
 \r
-               for (int i = 0; i < align.size(); i++) {\r
-                   System.out.println("Alignment " + i);\r
+                for (int i = 0; i < align.size(); i++) {\r
+                    System.out.println("Alignment " + i);\r
 \r
-                   Alignment al = (Alignment)align.elementAt(i);\r
+                    Alignment al = (Alignment) align.elementAt(i);\r
 \r
-                   SequenceI refseq = null;\r
+                    SequenceI refseq = null;\r
 \r
-                   for (int j = 0; j < al.getHeight(); j++) {\r
-                       if (((SequenceI)al.getSequenceAt(j)).getName().equals(refId)) {\r
-                           refseq = (SequenceI)al.getSequenceAt(j);\r
-                       }\r
-                   }\r
+                    for (int j = 0; j < al.getHeight(); j++) {\r
+                        if (((SequenceI) al.getSequenceAt(j)).getName().equals(refId)) {\r
+                            refseq = (SequenceI) al.getSequenceAt(j);\r
+                        }\r
+                    }\r
 \r
-                   if (refseq != null) {\r
+                    if (refseq != null) {\r
+                        System.out.println("Refseq " + refseq.getName());\r
 \r
-                       System.out.println("Refseq " + refseq.getName());\r
+                        for (int jj = 0; jj < al.getHeight(); jj++) {\r
+                            SequenceI seq = (SequenceI) al.getSequenceAt(jj);\r
 \r
-                       for (int jj = 0; jj < al.getHeight(); jj++) {\r
-                           SequenceI seq = (SequenceI)al.getSequenceAt(jj);\r
+                            if (seq.getName().equals(id)) {\r
+                                Hashtable hash = getAlignPositions(seq, refseq);\r
 \r
-                           if (seq.getName().equals(id)) {\r
-                               Hashtable hash = getAlignPositions(seq,refseq);\r
+                                Enumeration keys = hash.keys();\r
 \r
-                               Enumeration keys = hash.keys();\r
+                                while (keys.hasMoreElements()) {\r
+                                    Integer key = (Integer) keys.nextElement();\r
 \r
-                               while (keys.hasMoreElements()) {\r
-                                   Integer key = (Integer)keys.nextElement();\r
-                                   //                          System.out.println(key + " " + hash.get(key));\r
-                                   if (fullhash.get(key) == null) {\r
-                                       fullhash.put(key,new Vector());\r
-                                   }\r
+                                    //                         System.out.println(key + " " + hash.get(key));\r
+                                    if (fullhash.get(key) == null) {\r
+                                        fullhash.put(key, new Vector());\r
+                                    }\r
 \r
-                                   Vector tmp = (Vector)fullhash.get(key);\r
+                                    Vector tmp = (Vector) fullhash.get(key);\r
 \r
-                                   tmp.addElement(hash.get(key));\r
-                               }\r
-                           }\r
+                                    tmp.addElement(hash.get(key));\r
+                                }\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
 \r
-                       }\r
-                   }\r
-               }\r
+                System.out.println("\nId " + id);\r
 \r
-               System.out.println ("\nId " + id);\r
+                Enumeration keys = fullhash.keys();\r
 \r
-               Enumeration keys = fullhash.keys();\r
+                int totdiff = 0;\r
 \r
+                while (keys.hasMoreElements()) {\r
+                    Integer key = (Integer) keys.nextElement();\r
 \r
-               int totdiff = 0;\r
-               while (keys.hasMoreElements()) {\r
-                   Integer key = (Integer)keys.nextElement();\r
+                    Vector tmp = (Vector) fullhash.get(key);\r
 \r
-                   Vector tmp = (Vector)fullhash.get(key);\r
+                    int diff0 = ((Integer) tmp.elementAt(0)).intValue();\r
+                    ;\r
 \r
+                    int diff = 0;\r
 \r
+                    for (int l = 1; l < tmp.size(); l++) {\r
+                        diff += Math.abs(diff0 -\r
+                            ((Integer) tmp.elementAt(l)).intValue());\r
+                    }\r
 \r
-                   int diff0 = ((Integer)tmp.elementAt(0)).intValue();;\r
-                   int diff = 0;\r
+                    if (diff > 0) {\r
+                        totdiff++;\r
+                        System.out.print(id + " Ref pos " + key + " : " +\r
+                            diff0 + " " + diff + " : ");\r
 \r
-                   for (int l = 1; l < tmp.size(); l++) {\r
-                       diff += Math.abs(diff0 - ((Integer)tmp.elementAt(l)).intValue());\r
+                        for (int l = 1; l < tmp.size(); l++) {\r
+                            System.out.print(diff0 -\r
+                                ((Integer) tmp.elementAt(l)).intValue() + " ");\r
+                        }\r
 \r
-                   }\r
+                        System.out.println();\r
+                    }\r
+                }\r
 \r
-                   if (diff > 0) {\r
-                       totdiff++;\r
-                       System.out.print(id + " Ref pos " + key + " : " + diff0 + " " + diff + " : ");\r
-\r
-                       for (int l = 1; l < tmp.size(); l++) {\r
-                           System.out.print(diff0 - ((Integer)tmp.elementAt(l)).intValue() + " ");\r
-                       }\r
-                       System.out.println();\r
-                   }\r
-               }\r
-\r
-               System.out.println("Total " + id + " " + totdiff);\r
-\r
-           }\r
-       }\r
+                System.out.println("Total " + id + " " + totdiff);\r
+            }\r
+        }\r
     }\r
 \r
-\r
     public void setReferenceId(String id) {\r
-       this.refId = id;\r
+        this.refId = id;\r
     }\r
 \r
     public Hashtable getAlignPositions(SequenceI seq1, SequenceI seq2) {\r
+        Hashtable hash = new Hashtable();\r
 \r
-       Hashtable hash = new Hashtable();\r
+        int i = 0;\r
 \r
-       int i = 0;\r
+        int pos1 = 0;\r
+        int pos2 = 0;\r
 \r
-       int pos1 = 0;\r
-       int pos2 = 0;\r
+        while (i < seq1.getLength()) {\r
+            char c1 = seq1.getCharAt(i);\r
+            char c2 = seq2.getCharAt(i);\r
 \r
-       while (i < seq1.getLength()) {\r
+            if (c1 != '-') {\r
+                pos1++;\r
+            }\r
 \r
-           char c1 = seq1.getCharAt(i);\r
-           char c2 = seq2.getCharAt(i);\r
+            if (c2 != '-') {\r
+                pos2++;\r
+            }\r
 \r
-           if (c1 != '-') {\r
-               pos1++;\r
-           }\r
+            if (c1 != '-') {\r
+                hash.put(new Integer(pos1), new Integer(pos2));\r
+            }\r
 \r
-           if (c2 != '-') {\r
-               pos2++;\r
-           }\r
+            i++;\r
+        }\r
 \r
-           if (c1 != '-') {\r
-               hash.put(new Integer(pos1),new Integer(pos2));\r
-           }\r
-\r
-           i++;\r
-       }\r
-       return hash;\r
+        return hash;\r
     }\r
-\r
-\r
-\r
 }\r