import java.net.*;\r
\r
import java.util.*;\r
+import java.awt.Color;\r
\r
\r
public class PDBfile extends jalview.io.FileParse {\r
public Vector chains = new Vector();\r
Vector lineArray = new Vector();\r
+ String id;\r
\r
public PDBfile(String[] lines) {\r
for (int i = 0; i < lines.length; i++)\r
parse();\r
}\r
\r
- public void parse() {\r
- for (int i = 0; i < lineArray.size(); i++) {\r
- StringTokenizer str = new StringTokenizer(lineArray.elementAt(i)\r
- .toString());\r
+ public void parse()\r
+ {\r
+ PDBChain tmpchain;\r
+ String line;\r
+ boolean modelFlag = false;\r
+ for (int i = 0; i < lineArray.size(); i++)\r
+ {\r
+\r
+ line = lineArray.elementAt(i).toString();\r
\r
- if (str.hasMoreTokens()) {\r
- String inStr = str.nextToken();\r
+ if (line.indexOf("HEADER") == 0)\r
+ {\r
+ id = line.substring(62, 67).trim();\r
+ continue;\r
+ }\r
\r
- if (inStr.indexOf("ATOM") != -1) {\r
+ if(line.indexOf("MODEL")==0)\r
+ modelFlag = true;\r
+\r
+ if(modelFlag && line.indexOf("ENDMDL")==0)\r
+ break;\r
+\r
+ if (line.indexOf("ATOM")==0 || line.indexOf("HETATM")==0 )\r
+ {\r
try {\r
- myAtom tmpatom = new myAtom(str);\r
+ Atom tmpatom = new Atom(line);\r
+\r
+ //Jalview is only interested in CA bonds????\r
+ if(!tmpatom.name.equals("CA"))\r
+ continue;\r
\r
- if (findChain(tmpatom.chain) != null) {\r
- // System.out.println("Adding to chain " + tmpatom.chain);\r
- findChain(tmpatom.chain).atoms.addElement(tmpatom);\r
- } else {\r
- PDBChain tmpchain = new PDBChain(tmpatom.chain);\r
+ tmpchain = findChain(tmpatom.chain);\r
+ if ( tmpchain != null)\r
+ {\r
+ tmpchain.atoms.addElement(tmpatom);\r
+ }\r
+ else\r
+ {\r
+ tmpchain = new PDBChain(tmpatom.chain);\r
chains.addElement(tmpchain);\r
tmpchain.atoms.addElement(tmpatom);\r
}\r
lineArray.elementAt(i).toString());\r
}\r
}\r
- }\r
}\r
\r
makeResidueList();\r
\r
public PDBChain findChain(String id) {\r
for (int i = 0; i < chains.size(); i++) {\r
- // System.out.println("ID = " + id + " " +((PDBChain)chains.elementAt(i)).id);\r
if (((PDBChain) chains.elementAt(i)).id.equals(id)) {\r
return (PDBChain) chains.elementAt(i);\r
}\r
}\r
}\r
\r
- public void colourBySequence()//jalview.gui.SequenceRenderer sr,\r
- // jalview.gui.FeatureRenderer fr)\r
- {\r
- for (int i = 0; i < chains.size(); i++) {\r
- //((PDBChain)chains.elementAt(i)).colourBySequence(sr,fr);\r
- }\r
- }\r
-\r
- public void setChainColours() {\r
- for (int i = 0; i < chains.size(); i++) {\r
- ((PDBChain) chains.elementAt(i)).setChainColours();\r
+ public void setChainColours()\r
+ {\r
+ for (int i = 0; i < chains.size(); i++)\r
+ {\r
+ ((PDBChain) chains.elementAt(i)).setChainColours(\r
+ Color.getHSBColor(1.0f / (float)i, .4f, 1.0f)\r
+ );\r
}\r
}\r
}\r