wrapped alignment 1 larger
[jalview.git] / src / MCview / PDBChain.java
index 9c1d0e0..276525b 100755 (executable)
@@ -25,6 +25,7 @@ import jalview.schemes.ResidueProperties;
 import java.awt.*;\r
 \r
 import java.util.*;\r
+import jalview.analysis.AlignSeq;\r
 \r
 \r
 public class PDBChain {\r
@@ -57,15 +58,51 @@ public class PDBChain {
         return tmp;\r
     }\r
 \r
-    public void makeCaBondList() {\r
-        for (int i = 0; i < (residues.size() - 1); i++) {\r
+    void makeExactMapping(AlignSeq as, Sequence s1)\r
+    {\r
+        int pdbpos =   as.getSeq2Start()-2;\r
+        int alignpos = s1.getStart() + as.getSeq1Start()-3;\r
+\r
+        for(int i=0; i<as.astr1.length(); i++)\r
+        {\r
+            if (as.astr1.charAt(i) != '-')\r
+            {\r
+              alignpos++;\r
+            }\r
+\r
+            if (as.astr2.charAt(i) != '-')\r
+            {\r
+              pdbpos++;\r
+            }\r
+\r
+            if (as.astr1.charAt(i) == as.astr2.charAt(i))\r
+            {\r
+                Residue res = (Residue) residues.elementAt(pdbpos);\r
+                Enumeration en = res.atoms.elements();\r
+                while (en.hasMoreElements())\r
+                {\r
+                  Atom atom = (Atom) en.nextElement();\r
+                  atom.alignmentMapping = alignpos;\r
+                }\r
+            }\r
+        }\r
+\r
+    }\r
+\r
+\r
+    public void makeCaBondList()\r
+    {\r
+        for (int i = 0; i < (residues.size() - 1); i++)\r
+        {\r
             Residue tmpres = (Residue) residues.elementAt(i);\r
             Residue tmpres2 = (Residue) residues.elementAt(i + 1);\r
             Atom at1 = tmpres.findAtom("CA");\r
             Atom at2 = tmpres2.findAtom("CA");\r
 \r
-            if ((at1 != null) && (at2 != null)) {\r
-                if (at1.chain.equals(at2.chain)) {\r
+            if ((at1 != null) && (at2 != null))\r
+            {\r
+                if (at1.chain.equals(at2.chain))\r
+                {\r
                     makeBond(at1, at2);\r
                 }\r
             }\r
@@ -89,11 +126,12 @@ public class PDBChain {
 \r
     public void makeResidueList() {\r
         int count = 0;\r
-        String seq = "";\r
+        StringBuffer seq = new StringBuffer();\r
 \r
-        for (int i = 0; i < atoms.size(); i++) {\r
+        int i, iSize = atoms.size()-1;\r
+        for (i = 0; i < iSize; i++)\r
+        {\r
             Atom tmp = (Atom) atoms.elementAt(i);\r
-            //String resName = tmp.resName;\r
             int resNumber = tmp.resNumber;\r
             int res = resNumber;\r
 \r
@@ -131,19 +169,23 @@ public class PDBChain {
             Atom tmpat = (Atom) tmpres.atoms.elementAt(0);\r
 \r
             // Keep totting up the sequence\r
-            if (ResidueProperties.getAA3Hash().get(tmpat.resName) == null) {\r
-                System.err.println("PDBReader:Null aa3Hash for " +\r
-                    tmpat.resName);\r
+            if (ResidueProperties.getAA3Hash().get(tmpat.resName) == null)\r
+            {\r
+                seq.append("X") ;\r
+               //  System.err.println("PDBReader:Null aa3Hash for " +\r
+               //     tmpat.resName);\r
             } else {\r
-                String tmpres2 = ResidueProperties.aa[((Integer) ResidueProperties.getAA3Hash()\r
-                                                                                  .get(tmpat.resName)).intValue()];\r
-                seq = seq + tmpres2;\r
-            }\r
 \r
+                seq.append(ResidueProperties.aa[((Integer) ResidueProperties.getAA3Hash()\r
+                                                                                  .get(tmpat.resName)).intValue()]);\r
+            }\r
         }\r
 \r
-        sequence = new Sequence("PDB_seq", seq, 1, seq.length());\r
-     //   System.out.println("PDB Sequence is :\nSequence = " + seq);\r
+        if(id.length()<1 || id.equals(" "))\r
+           id = "_";\r
+\r
+        sequence = new Sequence(id, seq.toString(), 1, seq.length());\r
+      //  System.out.println("PDB Sequence is :\nSequence = " + seq);\r
      //   System.out.println("No of residues = " + residues.size());\r
     }\r
 \r