/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
+ * Copyright (C) 2009 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
public void parse() throws IOException
{
// TODO set the filename sensibly
- id = (inFile == null) ? "PDBFILE" : inFile.getName();
+ id = (inFile == null || inFile.getName()==null || inFile.getName().length()==0) ? "PDBFILE" : inFile.getName();
try
{
chains = new Vector();
String line;
boolean modelFlag = false;
boolean terFlag = false;
+ String lastID="";
int index = 0;
+ String atomnam=null;
while ((line = nextLine()) != null)
{
if (line.indexOf("HEADER") == 0)
{
- id = line.substring(62, 67).trim();
- continue;
+ if (line.length()>62)
+ {
+ String tid;
+ if (line.length()>67) {
+ tid = line.substring(62, 67).trim();
+ } else {
+ tid=line.substring(62).trim();
+ }
+ if (tid.length()>0)
+ {
+ id = tid;
+ }
+ continue;
+ }
}
// Were we to do anything with SEQRES - we start it here
if (line.indexOf("SEQRES") == 0)
terFlag = false;
// Jalview is only interested in CA bonds????
- if (!line.substring(12, 15).trim().equals("CA"))
+ atomnam = line.substring(12, 15).trim();
+ if (!atomnam.equals("CA") && !atomnam.equals("P"))
{
continue;
}
tmpchain = findChain(tmpatom.chain);
if (tmpchain != null)
{
+ if (tmpatom.resNumIns.trim().equals(lastID))
+ {
+ // phosphorylated protein - seen both CA and P..
+ continue;
+ }
tmpchain.atoms.addElement(tmpatom);
}
else
chains.addElement(tmpchain);
tmpchain.atoms.addElement(tmpatom);
}
+ lastID = tmpatom.resNumIns.trim();
}
index++;
}