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;
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'
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");
}
/**
- * 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
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;