*/
package jalview.ws.dbsources;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.DBRefEntry;
+import jalview.bin.Cache;
import jalview.datamodel.DBRefSource;
-import jalview.io.FormatAdapter;
import com.stevesoft.pat.Regex;
*/
abstract public class Pfam extends Xfam
{
+ /*
+ * append to URLs to retrieve as a gzipped file
+ */
+ protected 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()
{
@Override
public String getAccessionSeparator()
{
- // TODO Auto-generated method stub
return null;
}
@Override
public Regex getAccessionValidator()
{
- // TODO Auto-generated method stub
return null;
}
@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[])
- */
@Override
- 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 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(DBRefSource.PFAM,
- // getDbSource(),
- getDbVersion(), queries.trim().toUpperCase()));
- if (!getDbSource().equals(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);
}
/*