X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblLookup.java;h=9b56d6bfe91560cacb1cbb8e9997cfe8a79de196;hb=a395b6d73484b2827f3e80295631e69dd8841c47;hp=5a616f06083b4ede39f2a4981ecf338d169ba3c6;hpb=6461d42898d6c7b253c7ccceeeee629b559d2479;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblLookup.java b/src/jalview/ext/ensembl/EnsemblLookup.java index 5a616f0..9b56d6b 100644 --- a/src/jalview/ext/ensembl/EnsemblLookup.java +++ b/src/jalview/ext/ensembl/EnsemblLookup.java @@ -20,22 +20,27 @@ */ package jalview.ext.ensembl; +import jalview.bin.Cache; import jalview.datamodel.AlignmentI; +import jalview.datamodel.GeneLociI; +import jalview.datamodel.GeneLocus; +import jalview.datamodel.Mapping; +import jalview.util.MapList; -import java.io.BufferedReader; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; +import java.util.Collections; import java.util.List; -import java.util.function.Function; +import java.util.Map; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; /** - * A client for the Ensembl lookup REST endpoint + * A client for the Ensembl /lookup REST endpoint, used to find the gene + * identifier given a gene, transcript or protein identifier, or to extract the + * species or chromosomal coordinates from the same service response * * @author gmcarstairs */ @@ -43,14 +48,6 @@ public class EnsemblLookup extends EnsemblRestClient { private static final String SPECIES = "species"; - private static final String PARENT = "Parent"; - - private static final String OBJECT_TYPE_TRANSLATION = "Translation"; - private static final String OBJECT_TYPE_TRANSCRIPT = "Transcript"; - private static final String ID = "id"; - private static final String OBJECT_TYPE_GENE = "Gene"; - private static final String OBJECT_TYPE = "object_type"; - /** * Default constructor (to use rest.ensembl.org) */ @@ -85,17 +82,26 @@ public class EnsemblLookup extends EnsemblRestClient protected URL getUrl(List ids) throws MalformedURLException { String identifier = ids.get(0); - return getUrl(identifier); + return getUrl(identifier, null); } /** + * Gets the url for lookup of the given identifier, optionally with objectType + * also specified in the request + * * @param identifier + * @param objectType * @return */ - protected URL getUrl(String identifier) + protected URL getUrl(String identifier, String objectType) { String url = getDomain() + "/lookup/id/" + identifier + CONTENT_TYPE_JSON; + if (objectType != null) + { + url += "&" + OBJECT_TYPE + "=" + objectType; + } + try { return new URL(url); @@ -111,33 +117,66 @@ public class EnsemblLookup extends EnsemblRestClient return true; } - @Override - protected String getRequestMimeType(boolean multipleIds) + /** + * Returns the gene id related to the given identifier (which may be for a + * gene, transcript or protein), or null if none is found + * + * @param identifier + * @return + */ + public String getGeneId(String identifier) { - return "application/json"; + return getGeneId(identifier, null); } - @Override - protected String getResponseMimeType() + /** + * Returns the gene id related to the given identifier (which may be for a + * gene, transcript or protein), or null if none is found + * + * @param identifier + * @param objectType + * @return + */ + public String getGeneId(String identifier, String objectType) { - return "application/json"; + return parseGeneId(getResult(identifier, objectType)); } /** - * Calls the Ensembl lookup REST endpoint and returns - *