X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2FMCview%2FPDBfile.java;h=71d8c11b633b4986a9222cf0a298ba009413b186;hb=ba0bffb2a7cda833ff1dd2691f756294402b48cd;hp=ce98a0698a8e4c0fd7e9fad745f4c68a7001050c;hpb=9b22c11a0e12a9320e41eca2cbcbe30f81eb1cb4;p=jalview.git diff --git a/src/MCview/PDBfile.java b/src/MCview/PDBfile.java index ce98a06..71d8c11 100755 --- a/src/MCview/PDBfile.java +++ b/src/MCview/PDBfile.java @@ -1,137 +1,165 @@ +/* +* Jalview - A Sequence Alignment Editor and Viewer +* Copyright (C) 2005 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 +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +*/ package MCview; -import jalview.gui.*; +import jalview.datamodel.*; + import java.io.*; + import java.net.*; + import java.util.*; public class PDBfile extends jalview.io.FileParse { + public Vector chains = new Vector(); + Vector lineArray = new Vector(); - public Vector chains = new Vector(); + public PDBfile(String[] lines) { + for (int i = 0; i < lines.length; i++) + lineArray.addElement(lines[i]); - Vector lineArray = new Vector(); + noLines = lineArray.size(); + parse(); + } - public PDBfile(String inFile, String inType) throws IOException { + public PDBfile(String inFile, String inType) throws IOException { + super(inFile, inType); - super(inFile,inType); + String line; + this.lineArray = new Vector(); - String line; - this.lineArray = new Vector(); - BufferedReader dataIn; + BufferedReader dataIn; - if (inType.equals("File")) - dataIn = new BufferedReader(new FileReader( inFile )); + if (inType.equals("File")) { + dataIn = new BufferedReader(new FileReader(inFile)); + } + else { + URL url = new URL(inFile); + this.fileSize = 0; + dataIn = new BufferedReader(new InputStreamReader(url.openStream())); + } - else - { - URL url = new URL(inFile); - this.fileSize = 0; - dataIn = new BufferedReader(new InputStreamReader(url.openStream())); - } + while ((line = dataIn.readLine()) != null) { + lineArray.addElement(line); + } - while ((line = dataIn.readLine()) != null) { - lineArray.addElement(line); - } - noLines = lineArray.size(); + noLines = lineArray.size(); - parse(); + parse(); + } -} + public void parse() { + for (int i = 0; i < lineArray.size(); i++) { + StringTokenizer str = new StringTokenizer(lineArray.elementAt(i) + .toString()); + + if (str.hasMoreTokens()) { + String inStr = str.nextToken(); + + if (inStr.indexOf("ATOM") != -1) { + try { + myAtom tmpatom = new myAtom(str); + + if (findChain(tmpatom.chain) != null) { + // System.out.println("Adding to chain " + tmpatom.chain); + findChain(tmpatom.chain).atoms.addElement(tmpatom); + } else { + // System.out.println("Making chain " + tmpatom.chain); + PDBChain tmpchain = new PDBChain(tmpatom.chain); + chains.addElement(tmpchain); + tmpchain.atoms.addElement(tmpatom); + } + } catch (NumberFormatException e) { + System.err.println("Caught" + e); + System.err.println("Record not added to PDB model:" + + lineArray.elementAt(i).toString()); + } + } + } + } + makeResidueList(); + makeCaBondList(); - public void parse() { + // for (int i=0; i < chains.size() ; i++) { + // String pog = ((PDBChain)chains.elementAt(i)).print(); + // System.out.println(pog); + // } + } - System.out.println("Parsing"); + public void makeResidueList() { + for (int i = 0; i < chains.size(); i++) { + ((PDBChain) chains.elementAt(i)).makeResidueList(); + } + } - for (int i = 0; i < lineArray.size(); i++) { - StringTokenizer str = new StringTokenizer(lineArray.elementAt(i).toString()); - if (str.hasMoreTokens()) { - String inStr = str.nextToken(); + public void makeCaBondList() { + for (int i = 0; i < chains.size(); i++) { + ((PDBChain) chains.elementAt(i)).makeCaBondList(); + } + } - if (inStr.indexOf("ATOM") != -1) { - try { - myAtom tmpatom = new myAtom(str); - if (findChain(tmpatom.chain) != null) { - System.out.println("Adding to chain " + tmpatom.chain); - findChain(tmpatom.chain).atoms.addElement(tmpatom); - } else { - System.out.println("Making chain " + tmpatom.chain); - PDBChain tmpchain = new PDBChain(tmpatom.chain); - chains.addElement(tmpchain); - tmpchain.atoms.addElement(tmpatom); + public PDBChain findChain(String id) { + for (int i = 0; i < chains.size(); i++) { + // System.out.println("ID = " + id + " " +((PDBChain)chains.elementAt(i)).id); + if (((PDBChain) chains.elementAt(i)).id.equals(id)) { + return (PDBChain) chains.elementAt(i); } - } catch(NumberFormatException e) { - System.out.println("Caught" + e); - System.out.println("Atom not added"); - } } - } - } - makeResidueList(); - makeCaBondList(); - // for (int i=0; i < chains.size() ; i++) { - // String pog = ((PDBChain)chains.elementAt(i)).print(); - // System.out.println(pog); - // } - } - - public void makeResidueList() { - for (int i=0; i < chains.size() ; i++) { - ((PDBChain)chains.elementAt(i)).makeResidueList(); - } - } - public void makeCaBondList() { - for (int i=0; i < chains.size() ; i++) { - ((PDBChain)chains.elementAt(i)).makeCaBondList(); - } - } - - public PDBChain findChain(String id) { - for (int i=0; i < chains.size(); i++) { - // System.out.println("ID = " + id + " " +((PDBChain)chains.elementAt(i)).id); - if (((PDBChain)chains.elementAt(i)).id.equals(id)) { - return (PDBChain)chains.elementAt(i); - } + + return null; } - return null; - } + public void setChargeColours() { + for (int i = 0; i < chains.size(); i++) { + ((PDBChain) chains.elementAt(i)).setChargeColours(); + } + } - public void setChargeColours() { - for (int i=0; i < chains.size(); i++) { - ((PDBChain)chains.elementAt(i)).setChargeColours(); + public void setHydrophobicityColours() { + for (int i = 0; i < chains.size(); i++) { + ((PDBChain) chains.elementAt(i)).setHydrophobicityColours(); + } } - } - public void setHydrophobicityColours() { - for (int i=0; i < chains.size(); i++) { - ((PDBChain)chains.elementAt(i)).setHydrophobicityColours(); + public void colourBySequence(Sequence seq) { + //SMJS TODO + // int max = seq.maxchain; + // if (seq.maxchain != -1) { + // ((PDBChain)chains.elementAt(max)).colourBySequence(seq); + // } } - } - - public void colourBySequence(DrawableSequence seq) { -//SMJS TODO -// int max = seq.maxchain; -// if (seq.maxchain != -1) { -// ((PDBChain)chains.elementAt(max)).colourBySequence(seq); -// } - } - - public void setChainColours() { - for (int i=0; i < chains.size(); i++) { - ((PDBChain)chains.elementAt(i)).setChainColours(); + + public void setChainColours() { + for (int i = 0; i < chains.size(); i++) { + ((PDBChain) chains.elementAt(i)).setChainColours(); + } } - } - public static void main(String[] args) { - try { - PDBfile pdb = new PDBfile("enkp1.pdb","File"); - } catch(IOException e) { - System.out.println(e); - System.exit(0); + + public static void main(String[] args) { + try { + PDBfile pdb = new PDBfile("enkp1.pdb", "File"); + } catch (IOException e) { + System.out.println(e); + e.printStackTrace(); + System.exit(0); + } } - } } - - -