X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fws%2Fdbsources%2FUniprot.java;h=73775cf07b247c8f5eadf7fc2b61f592c0550997;hb=d5702bf3268c2688e90d645ec635ad5bb5d3a76e;hp=30808fb5f88d4a2cbfb653aa134cf619d8e1c956;hpb=3d0101179759ef157b088ea135423cd909512d9f;p=jalview.git diff --git a/src/jalview/ws/dbsources/Uniprot.java b/src/jalview/ws/dbsources/Uniprot.java index 30808fb..73775cf 100644 --- a/src/jalview/ws/dbsources/Uniprot.java +++ b/src/jalview/ws/dbsources/Uniprot.java @@ -28,15 +28,16 @@ import jalview.datamodel.PDBEntry; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; -import jalview.datamodel.UniprotEntry; -import jalview.datamodel.UniprotFile; -import jalview.ws.ebi.EBIFetchClient; +import jalview.datamodel.xdb.uniprot.UniprotEntry; +import jalview.datamodel.xdb.uniprot.UniprotFeature; +import jalview.datamodel.xdb.uniprot.UniprotFile; import jalview.ws.seqfetcher.DbSourceProxyImpl; -import java.io.File; -import java.io.FileReader; +import java.io.InputStream; +import java.io.InputStreamReader; import java.io.Reader; import java.net.URL; +import java.net.URLConnection; import java.util.ArrayList; import java.util.Vector; @@ -161,17 +162,21 @@ public class Uniprot extends DbSourceProxyImpl queries = queries.toUpperCase().replaceAll( "(UNIPROT\\|?|UNIPROT_|UNIREF\\d+_|UNIREF\\d+\\|?)", ""); AlignmentI al = null; - EBIFetchClient ebi = new EBIFetchClient(); - // uniprotxml parameter required since december 2007 - // uniprotkb dbname changed introduced december 2008 - File file = ebi.fetchDataAsFile("uniprotkb:" + queries, "uniprotxml", - "xml"); + + String downloadstring = "http://www.uniprot.org/uniprot/" + queries + + ".xml"; + URL url = null; + URLConnection urlconn = null; + + url = new URL(downloadstring); + urlconn = url.openConnection(); + InputStream istr = urlconn.getInputStream(); Vector entries = getUniprotEntries( - new FileReader(file)); + new InputStreamReader(istr, "UTF-8")); if (entries != null) { - ArrayList seqs = new ArrayList(); + ArrayList seqs = new ArrayList<>(); for (UniprotEntry entry : entries) { seqs.add(uniprotEntryToSequenceI(entry)); @@ -183,8 +188,10 @@ public class Uniprot extends DbSourceProxyImpl return al; } catch (Exception e) { - stopQuery(); throw (e); + } finally + { + stopQuery(); } } @@ -202,7 +209,7 @@ public class Uniprot extends DbSourceProxyImpl sequence.setDescription(getUniprotEntryDescription(entry)); final String dbVersion = getDbVersion(); - ArrayList dbRefs = new ArrayList(); + ArrayList dbRefs = new ArrayList<>(); for (String accessionId : entry.getAccession()) { DBRefEntry dbRef = new DBRefEntry(DBRefSource.UNIPROT, dbVersion, @@ -212,7 +219,7 @@ public class Uniprot extends DbSourceProxyImpl dbRefs.add(dbRef); } - Vector onlyPdbEntries = new Vector(); + Vector onlyPdbEntries = new Vector<>(); for (PDBEntry pdb : entry.getDbReference()) { DBRefEntry dbr = new DBRefEntry(); @@ -255,16 +262,17 @@ public class Uniprot extends DbSourceProxyImpl } } - } sequence.setPDBId(onlyPdbEntries); if (entry.getFeature() != null) { - for (SequenceFeature sf : entry.getFeature()) + for (UniprotFeature uf : entry.getFeature()) { - sf.setFeatureGroup("Uniprot"); - sequence.addSequenceFeature(sf); + SequenceFeature copy = new SequenceFeature(uf.getType(), + uf.getDescription(), uf.getBegin(), uf.getEnd(), "Uniprot"); + copy.setStatus(uf.getStatus()); + sequence.addSequenceFeature(copy); } } for (DBRefEntry dbr : dbRefs) @@ -302,23 +310,18 @@ public class Uniprot extends DbSourceProxyImpl /** * * @param entry - * UniportEntry + * UniprotEntry * @return The accession id(s) and name(s) delimited by '|'. */ public static String getUniprotEntryId(UniprotEntry entry) { StringBuilder name = new StringBuilder(32); - // name.append("UniProt/Swiss-Prot"); - // use 'canonicalised' name for optimal id matching - name.append(DBRefSource.UNIPROT); - for (String accessionId : entry.getAccession()) - { - name.append(BAR_DELIMITER); - name.append(accessionId); - } for (String n : entry.getName()) { - name.append(BAR_DELIMITER); + if (name.length() > 0) + { + name.append(BAR_DELIMITER); + } name.append(n); } return name.toString();