X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblSymbol.java;h=e2e38b53a9ea4d29661a157e15bcbd28d9cee6da;hb=d3dd5dd279c8253afa522f11b3e944ba422d12d3;hp=5b3baa112f6c2b18b159daf8f9c0351c88f1706e;hpb=550c391f0c113658e540783dc89034a34280ef18;p=jalview.git
diff --git a/src/jalview/ext/ensembl/EnsemblSymbol.java b/src/jalview/ext/ensembl/EnsemblSymbol.java
index 5b3baa1..e2e38b5 100644
--- a/src/jalview/ext/ensembl/EnsemblSymbol.java
+++ b/src/jalview/ext/ensembl/EnsemblSymbol.java
@@ -1,3 +1,23 @@
+/*
+ * 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.
+ *
+ * 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 .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.ext.ensembl;
import java.io.BufferedReader;
@@ -13,9 +33,28 @@ import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
+/**
+ * A client for the Ensembl xrefs/symbol REST service;
+ *
+ * @see http://rest.ensembl.org/documentation/info/xref_external
+ * @author gmcarstairs
+ *
+ */
public class EnsemblSymbol extends EnsemblXref
{
/**
+ * Constructor given the target domain to fetch data from
+ *
+ * @param domain
+ * @param dbName
+ * @param dbVersion
+ */
+ public EnsemblSymbol(String domain, String dbName, String dbVersion)
+ {
+ super(domain, dbName, dbVersion);
+ }
+
+ /**
* Returns the first "id" value in gene identifier format from the JSON
* response, or null if none found
*
@@ -23,8 +62,7 @@ public class EnsemblSymbol extends EnsemblXref
* @return
* @throws IOException
*/
- protected String parseResponse(BufferedReader br)
- throws IOException
+ protected String parseSymbolResponse(BufferedReader br) throws IOException
{
JSONParser jp = new JSONParser();
String result = null;
@@ -51,9 +89,8 @@ public class EnsemblSymbol extends EnsemblXref
protected URL getUrl(String id, Species species)
{
- String url = ENSEMBL_REST + "/xrefs/symbol/" + species.toString() + "/"
- + id
- + "?content-type=application/json";
+ String url = getDomain() + "/xrefs/symbol/" + species.toString() + "/"
+ + id + "?content-type=application/json";
try
{
return new URL(url);
@@ -75,26 +112,26 @@ public class EnsemblSymbol extends EnsemblXref
List result = new ArrayList();
List ids = new ArrayList();
ids.add(identifier);
-
+
String[] queries = identifier.split(getAccessionSeparator());
BufferedReader br = null;
try
{
for (String query : queries)
{
- for (Species taxon : Species.values())
+ for (Species taxon : Species.getModelOrganisms())
{
- if (taxon.isModelOrganism())
+ URL url = getUrl(query, taxon);
+ if (url != null)
{
- URL url = getUrl(query, taxon);
- if (url != null)
- {
- br = getHttpResponse(url, ids);
- }
- String geneId = parseResponse(br);
- if (geneId != null)
+ br = getHttpResponse(url, ids);
+ if (br != null)
{
- result.add(geneId);
+ String geneId = parseSymbolResponse(br);
+ if (geneId != null)
+ {
+ result.add(geneId);
+ }
}
}
}