From baa2febd4c846a5eb33f806ec85782e52dc5611a Mon Sep 17 00:00:00 2001 From: pnrobinson Date: Thu, 16 Nov 2017 12:56:04 -0500 Subject: [PATCH] Adding metainformation that we have subsetted the ontology --- .../ontolib/ontology/data/ImmutableOntology.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ontolib-core/src/main/java/com/github/phenomics/ontolib/ontology/data/ImmutableOntology.java b/ontolib-core/src/main/java/com/github/phenomics/ontolib/ontology/data/ImmutableOntology.java index 9162de0..122f7e4 100644 --- a/ontolib-core/src/main/java/com/github/phenomics/ontolib/ontology/data/ImmutableOntology.java +++ b/ontolib-core/src/main/java/com/github/phenomics/ontolib/ontology/data/ImmutableOntology.java @@ -207,8 +207,15 @@ public Ontology subOntology(TermId subOntologyRoot) { relationBuilder.put(entry.getKey(),entry.getValue()); } } - return new ImmutableOntology(metaInfo, subGraph, subOntologyRoot, - intersectingTerms, + // Note: natural order returns a builder whose keys are ordered by their natural ordering. + final ImmutableSortedMap.Builder metaInfoBuilder = ImmutableSortedMap.naturalOrder(); + for (String key : metaInfo.keySet()) { + metaInfoBuilder.put(key,metaInfo.get(key)); + } + metaInfoBuilder.put("provenance",String.format("Ontology created as a subset from original ontology with root %s",getTermMap().get(rootTermId).getName() )); + ImmutableSortedMap extendedMetaInfo=metaInfoBuilder.build(); + + return new ImmutableOntology(extendedMetaInfo, subGraph, subOntologyRoot,intersectingTerms, Sets.intersection(obsoleteTermIds, childTermIds), subsetTermMap, relationBuilder.build()); }