X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fdbsources%2FPfam.java;h=de1907816401d09c66accc39f8ef61cb2d82968b;hb=df81a9e1abd4d4424d6d24b37d93f17bffd3649c;hp=579a6fe82b288250b890b1b5bc102c03aac43ba6;hpb=865a855a4ca87eadb3e5ff284ed32ed307d9c34b;p=jalview.git diff --git a/src/jalview/ws/dbsources/Pfam.java b/src/jalview/ws/dbsources/Pfam.java index 579a6fe..de19078 100644 --- a/src/jalview/ws/dbsources/Pfam.java +++ b/src/jalview/ws/dbsources/Pfam.java @@ -1,30 +1,30 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1) - * Copyright (C) 2014 The Jalview Authors + * 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.ws.dbsources; +import jalview.bin.Cache; +import jalview.datamodel.DBRefSource; import com.stevesoft.pat.Regex; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.DBRefEntry; -import jalview.ws.seqfetcher.DbSourceProxy; - /** * TODO: later PFAM is a complex datasource - it could return a tree in addition * to an alignment TODO: create interface to pass alignment properties and tree @@ -33,15 +33,20 @@ import jalview.ws.seqfetcher.DbSourceProxy; * @author JimP * */ -abstract public class Pfam extends Xfam implements DbSourceProxy +abstract public class Pfam extends Xfam { + /* + * append to URLs to retrieve as a gzipped file + */ + public static final String GZIPPED = "/gzipped"; + + static final String PFAM_BASEURL_KEY = "PFAM_BASEURL"; + + private static final String DEFAULT_PFAM_BASEURL = "https://pfam.xfam.org"; public Pfam() { super(); - // all extensions of this PFAM source base class are DOMAINDB sources - addDbSourceProperty(jalview.datamodel.DBRefSource.DOMAINDB); - addDbSourceProperty(jalview.datamodel.DBRefSource.ALIGNMENTDB); } /* @@ -49,9 +54,9 @@ abstract public class Pfam extends Xfam implements DbSourceProxy * * @see jalview.ws.DbSourceProxy#getAccessionSeparator() */ + @Override public String getAccessionSeparator() { - // TODO Auto-generated method stub return null; } @@ -60,9 +65,9 @@ abstract public class Pfam extends Xfam implements DbSourceProxy * * @see jalview.ws.DbSourceProxy#getAccessionValidator() */ + @Override public Regex getAccessionValidator() { - // TODO Auto-generated method stub return null; } @@ -93,47 +98,13 @@ abstract public class Pfam extends Xfam implements DbSourceProxy @Override public String getDbVersion() { - // TODO Auto-generated method stub return null; } - /** - * Returns base URL for selected Pfam alignment type - * - * @return PFAM URL stub for this DbSource - */ @Override - protected abstract String getXFAMURL(); - - /* - * (non-Javadoc) - * - * @see jalview.ws.DbSourceProxy#getSequenceRecords(java.lang.String[]) - */ - public AlignmentI getSequenceRecords(String queries) throws Exception + protected String getURLPrefix() { - // TODO: this is not a perfect implementation. We need to be able to add - // individual references to each sequence in each family alignment that's - // retrieved. - startQuery(); - AlignmentI rcds = new jalview.io.FormatAdapter().readFile(getXFAMURL() - + queries.trim().toUpperCase(), jalview.io.FormatAdapter.URL, - "STH"); - for (int s = 0, sNum = rcds.getHeight(); s < sNum; s++) - { - rcds.getSequenceAt(s).addDBRef( - new DBRefEntry(jalview.datamodel.DBRefSource.PFAM, - // getDbSource(), - getDbVersion(), queries.trim().toUpperCase())); - if (!getDbSource().equals(jalview.datamodel.DBRefSource.PFAM)) - { // add the specific ref too - rcds.getSequenceAt(s).addDBRef( - new DBRefEntry(getDbSource(), getDbVersion(), queries - .trim().toUpperCase())); - } - } - stopQuery(); - return rcds; + return Cache.getDefault(PFAM_BASEURL_KEY, DEFAULT_PFAM_BASEURL); } /* @@ -141,6 +112,7 @@ abstract public class Pfam extends Xfam implements DbSourceProxy * * @see jalview.ws.DbSourceProxy#isValidReference(java.lang.String) */ + @Override public boolean isValidReference(String accession) { return accession.indexOf("PF") == 0; @@ -150,9 +122,10 @@ abstract public class Pfam extends Xfam implements DbSourceProxy * public String getDbName() { return "PFAM"; // getDbSource(); } */ + @Override public String getXfamSource() { - return jalview.datamodel.DBRefSource.PFAM; + return DBRefSource.PFAM; } }