X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblFeatures.java;h=99ebc69a0349fa2d2ba1bfe8cc2423ca6fccc69b;hb=6a7ffd7997c11b84a81acbdd83e462cac76f124b;hp=a133381d51c7043ac54b5d8fd8b3a10031307851;hpb=cd268aa5e06c4327489110c59c987e3e071eb038;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblFeatures.java b/src/jalview/ext/ensembl/EnsemblFeatures.java index a133381..99ebc69 100644 --- a/src/jalview/ext/ensembl/EnsemblFeatures.java +++ b/src/jalview/ext/ensembl/EnsemblFeatures.java @@ -26,6 +26,7 @@ import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.io.gff.SequenceOntologyI; +import jalview.util.JSONUtils; import java.io.BufferedReader; import java.io.IOException; @@ -129,15 +130,12 @@ class EnsemblFeatures extends EnsemblRestClient int end = Integer.parseInt(obj.get("end").toString()); String source = obj.get("source").toString(); String strand = obj.get("strand").toString(); - Object value = obj.get("consequence_type"); - value = obj.get("alleles"); - JSONArray allelesArray = (JSONArray) value; - String alleles = allelesArray == null ? null - : allelesArray.toString(); // todo need as a List? - value = obj.get("clinical_significance"); - JSONArray clinSigArray = (JSONArray) value; - String clinSig = clinSigArray == null ? null - : clinSigArray.toString(); + Object phase = obj.get("phase"); + String alleles = JSONUtils + .arrayToList((JSONArray) obj.get("alleles")); + String clinSig = JSONUtils + .arrayToList( + (JSONArray) obj.get("clinical_significance")); /* * convert 'variation' to 'sequence_variant', and 'cds' to 'CDS' @@ -158,6 +156,10 @@ class EnsemblFeatures extends EnsemblRestClient SequenceFeature sf = new SequenceFeature(type, desc, start, end, source); sf.setStrand("1".equals(strand) ? "+" : "-"); + if (phase != null) + { + sf.setPhase(phase.toString()); + } setFeatureAttribute(sf, obj, "id"); setFeatureAttribute(sf, obj, "Parent"); setFeatureAttribute(sf, obj, "consequence_type"); @@ -179,7 +181,9 @@ class EnsemblFeatures extends EnsemblRestClient } /** - * Returns the first non-null attribute found (if any) as a string + * Returns the first non-null attribute found (if any) as a string, formatted + * suitably for display as feature description or tooltip. Answers null if + * none of the attribute keys is present. * * @param obj * @param keys @@ -194,7 +198,9 @@ class EnsemblFeatures extends EnsemblRestClient Object val = obj.get(key); if (val != null) { - String s = val.toString(); + String s = val instanceof JSONArray + ? JSONUtils.arrayToList((JSONArray) val) + : val.toString(); if (!s.isEmpty()) { return s;