X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FDBRefUtils.java;h=8163f05ff2b7d98f89b2cc5252ffd6b9cd289222;hb=9ad1e437d5d6366f0b06fbfbdb446a720ca57104;hp=42fbef699cf58028f645a447a6a005de08208e10;hpb=a45774ee31d9f35d4eff46d54d7deab719afb092;p=jalview.git diff --git a/src/jalview/util/DBRefUtils.java b/src/jalview/util/DBRefUtils.java index 42fbef6..8163f05 100755 --- a/src/jalview/util/DBRefUtils.java +++ b/src/jalview/util/DBRefUtils.java @@ -1,25 +1,34 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview 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 3 of the License, or (at your option) any later version. - * + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * * Jalview 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 Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.util; -import java.util.*; +import jalview.datamodel.DBRefEntry; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.SequenceI; -import jalview.datamodel.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Map; +import java.util.Vector; public class DBRefUtils { @@ -45,8 +54,8 @@ public class DBRefUtils { return dbrefs; } - Hashtable srcs = new Hashtable(); - Vector res = new Vector(); + Map srcs = new HashMap(); + ArrayList res = new ArrayList(); for (int i = 0; i < sources.length; i++) { @@ -56,18 +65,14 @@ public class DBRefUtils { if (srcs.containsKey(dbrefs[i].getSource())) { - res.addElement(dbrefs[i]); + res.add(dbrefs[i]); } } if (res.size() > 0) { DBRefEntry[] reply = new DBRefEntry[res.size()]; - for (int i = 0; i < res.size(); i++) - { - reply[i] = (DBRefEntry) res.elementAt(i); - } - return reply; + return res.toArray(reply); } res = null; // there are probable memory leaks in the hashtable! @@ -166,7 +171,9 @@ public class DBRefUtils DbRefComp comparator) { if (ref == null || entry == null) + { return null; + } Vector rfs = new Vector(); for (int i = 0; i < ref.length; i++) { @@ -300,6 +307,7 @@ public class DBRefUtils { if ((refa.getMap() == null && refb.getMap() == null) || (refa.getMap() != null && refb.getMap() != null)) + { if ((refb.getMap().getMap() == null && refa.getMap().getMap() == null) || (refb.getMap().getMap() != null && refa.getMap().getMap() != null && refb @@ -308,6 +316,7 @@ public class DBRefUtils { return true; } + } } } return false; @@ -415,11 +424,15 @@ public class DBRefUtils // check for chaincode and mapping // PFAM style stockhom PDB citation com.stevesoft.pat.Regex r = new com.stevesoft.pat.Regex( - "([0-9][0-9A-Za-z]{3})\\s*(.?)\\s*;([0-9]+)-([0-9]+)"); + "([0-9][0-9A-Za-z]{3})\\s*(.?)\\s*;\\s*([0-9]+)-([0-9]+)"); if (r.search(acn.trim())) { String pdbid = r.stringMatched(1); String chaincode = r.stringMatched(2); + if (chaincode==null) + { + chaincode = " "; + } String mapstart = r.stringMatched(3); String mapend = r.stringMatched(4); if (chaincode.equals(" ")) @@ -430,7 +443,11 @@ public class DBRefUtils ref = new DBRefEntry(locsrc, version, pdbid + chaincode); PDBEntry pdbr = new PDBEntry(); pdbr.setId(pdbid); + pdbr.setProperty(new Hashtable()); + pdbr.getProperty().put("CHAIN", chaincode); seq.addPDBId(pdbr); + } else { + System.err.println("Malformed PDB DR line:"+acn); } } else