-
Notifications
You must be signed in to change notification settings - Fork 7
"Arguson" format
ArguSON is an internal format used for communication between the synthetic tree server (treemachine or tm-lite) and the tree browser (opentree webapp). It should not be considered stable and is subject to change without notice. This page documents "version 3" of ArguSON `as generated by "tm-lite".
There is an unadvertised API method (treemachine/getSyntheticTree) that delivers an ArguSON payload in response to a request that provides a synthetic tree node id.
(Copied from a google doc)
See http://phylo.bio.ku.edu/ot/getSyntheticTree-out.json for an example for the root, and http://phylo.bio.ku.edu/ot/getSyntheticTree-11-out.json for a call to a node that has a non-empty pathToRoot).
An ArguSON payload is a set of nested JSON object reflecting the nesting structure of the synthetic tree. The top-level JSON object corresponds to the requested node.
The core properties of an ArguSON node are:
-
name
- string -
nodeid
- integer neo4j node ID (!! changing to string) -
taxSource
- string. comma-separated list of taxonomy prefix:ID pairings -
taxRank
- optional string -
ottId
- optional string -
supportedBy
- list of strings. Each string is either “taxonomy” or an opaque (not: studyID_treeIDnumericpart_SHA) key into thesourceToMetaMap
object.
The tree-structure-conveying properties are:
- either a
children
list of node objects orhasChildren
boolean (if the node is in the last level of ArguSON nodes returned), -
nleaves
int - note: This is not the number of leaves in the subtree, just in this pruned ArguSON sub graph. This is not the number of leaves in the full tree that are under this node.
The “top level” ArguSON node object in a web service call will also have:
-
maxnodedepth
int info on the pruning level -
pathToRoot
ordered list of brief node info objects (see below) from parent (first) to root (last). -
sourceToMetaMap
key value mapping. for studies the 3 fields aregit_sha
,tree_id
, andstudy_id
for the taxonomy key it is has a version property.
A brief node object in the pathToRoot
list is an object with just the “core” properties (it lacks children
, hasChildren
(which is not needed because it is obviously true), and nleaves
properties) except that these nodes have:
-
supporting_sources
instead of thesupportedBy
property of a full ArguSON. -
uniqname
- string