From: jprocter Date: Tue, 26 Aug 2008 09:10:53 +0000 (+0000) Subject: pdb xrefs added as dbrefs and as PDB file links X-Git-Tag: Release_2_4~11 X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=commitdiff_plain;h=25ae256a88bf092f45a78b649a48f41e6fd5d70b pdb xrefs added as dbrefs and as PDB file links --- diff --git a/src/jalview/ws/dbsources/Uniprot.java b/src/jalview/ws/dbsources/Uniprot.java index 65141f8..f29a555 100644 --- a/src/jalview/ws/dbsources/Uniprot.java +++ b/src/jalview/ws/dbsources/Uniprot.java @@ -1,270 +1,270 @@ -/** - * - */ -package jalview.ws.dbsources; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Vector; - -import org.exolab.castor.xml.Unmarshaller; - -import com.stevesoft.pat.Regex; - -import jalview.datamodel.Alignment; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.DBRefEntry; -import jalview.datamodel.DBRefSource; -import jalview.datamodel.PDBEntry; -import jalview.datamodel.SequenceFeature; -import jalview.datamodel.SequenceI; -import jalview.datamodel.UniprotEntry; -import jalview.datamodel.UniprotFile; -import jalview.io.FormatAdapter; -import jalview.io.IdentifyFile; -import jalview.ws.DBRefFetcher; -import jalview.ws.ebi.EBIFetchClient; -import jalview.ws.seqfetcher.DbSourceProxy; -import jalview.ws.seqfetcher.DbSourceProxyImpl; - -/** - * @author JimP - * - */ -public class Uniprot extends DbSourceProxyImpl implements DbSourceProxy -{ - public Uniprot() { - super(); - addDbSourceProperty(DBRefSource.SEQDB, DBRefSource.SEQDB); - addDbSourceProperty(DBRefSource.PROTSEQDB); -// addDbSourceProperty(DBRefSource.MULTIACC, new Integer(50)); - } - - /* - * (non-Javadoc) - * - * @see jalview.ws.DbSourceProxy#getAccessionSeparator() - */ - public String getAccessionSeparator() - { - return null; // ";"; - } - - /* - * (non-Javadoc) - * - * @see jalview.ws.DbSourceProxy#getAccessionValidator() - */ - public Regex getAccessionValidator() - { - return null; - } - - /* - * (non-Javadoc) - * - * @see jalview.ws.DbSourceProxy#getDbSource() - */ - public String getDbSource() - { - return DBRefSource.UNIPROT; - } - - /* - * (non-Javadoc) - * - * @see jalview.ws.DbSourceProxy#getDbVersion() - */ - public String getDbVersion() - { - return "0"; // we really don't know what version we're on. - } - - private EBIFetchClient ebi = null; - - public Vector getUniprotEntries(File file) - { - UniprotFile uni = new UniprotFile(); - try - { - // 1. Load the mapping information from the file - org.exolab.castor.mapping.Mapping map = new org.exolab.castor.mapping.Mapping(uni.getClass().getClassLoader()); - java.net.URL url = getClass().getResource("/uniprot_mapping.xml"); - map.loadMapping(url); - - // 2. Unmarshal the data - Unmarshaller unmar = new Unmarshaller(uni); - unmar.setIgnoreExtraElements(true); - unmar.setMapping(map); - - uni = (UniprotFile) unmar.unmarshal(new FileReader(file)); - } - catch (Exception e) - { - System.out.println("Error getUniprotEntries() " + e); - } - - return uni.getUniprotEntries(); - } - - /* - * (non-Javadoc) - * - * @see jalview.ws.DbSourceProxy#getSequenceRecords(java.lang.String[]) - */ - public AlignmentI getSequenceRecords(String queries) throws Exception - { - startQuery(); - try - { - Alignment al=null; - ebi = new EBIFetchClient(); - StringBuffer result=new StringBuffer(); - // uniprotxml parameter required since december 2007 - File file = ebi.fetchDataAsFile("uniprot:" + queries, "uniprotxml", null); - Vector entries = getUniprotEntries(file); - - if (entries != null) - { - // First, make the new sequences - Enumeration en = entries.elements(); - while (en.hasMoreElements()) - { - UniprotEntry entry = (UniprotEntry) en.nextElement(); - - StringBuffer name = new StringBuffer(">UniProt/Swiss-Prot"); - Enumeration en2 = entry.getAccession().elements(); - while (en2.hasMoreElements()) - { - name.append("|"); - name.append(en2.nextElement()); - } - en2 = entry.getName().elements(); - while (en2.hasMoreElements()) - { - name.append("|"); - name.append(en2.nextElement()); - } - - if (entry.getProtein()!=null && entry.getProtein().getName()!=null) - { - for (int nm=0,nmSize=entry.getProtein().getName().size(); nmUniProt/Swiss-Prot"); + Enumeration en2 = entry.getAccession().elements(); + while (en2.hasMoreElements()) + { + name.append("|"); + name.append(en2.nextElement()); + } + en2 = entry.getName().elements(); + while (en2.hasMoreElements()) + { + name.append("|"); + name.append(en2.nextElement()); + } + + if (entry.getProtein()!=null && entry.getProtein().getName()!=null) + { + for (int nm=0,nmSize=entry.getProtein().getName().size(); nm