00:00:00

Open Tree of Life Software Goals

  1. produce a comprehensive taxonomy
  2. enable curation of phylogenies
  3. create a supertree - the "synthetic tree"
  4. enable users to browse the synthetic tree and "graph of life"

Notes

Phylografter

  • provided study curation user interface
  • primary study database

Notes

Phylografter Sortable, Searchable Study Dashboard:

Phylografter study list

Notes

Phylografter OTU Mapping:

Phylografter OTU Mapping

Notes

Phylografter Tree Editing:

Phylografter Tree Editing

Notes

Synthetic tree browsing:

Browsing the synthetic tree

Notes

Synthetic tree commenting:

Browsing the synthetic tree

Notes

"smasher"

  • Command-line tool written/run by Jonathan Rees
  • Rule-based combination of:
    • taxonomic info. from NCBI, GBIF, IRMNG, Index Fungorum, SILVA
    • taxonomic edits by curators
  • Produces a versioned Open Tree Taxonomy (OTT)

Notes

taxomachine

  • Takes OTT as input
  • Provides name-to-OTT-ID service and other taxonomic APIs
  • neo4j backend
  • written by Cody Hinchliff and others in Smith lab.

Notes

Phylografter

  • Front-end for curation of phylogenetic estimates
  • Started by Ree lab before the Open Tree project, but significantly extended in years 1 and 2.
  • imports OTT and trees into a relational database
  • provides views on the trees, OTU mapping, and some conflict summaries
  • can export studies to NexSON

Notes

Bitbucket NexSON repo

  • git (version control system) repository of phylografter exports
  • a script can pull down the newly-updated studies from phylografter.
  • used as the input for treemachine
  • decouples phylografter and treemachine

Notes

treemachine

  • reads OTT as a tree and trees from NexSON
  • reads a list of study ranking to be used when resolving conflicts.
  • creates a "graph of life" of all of the input trees in a neo4j database
  • implements a novel supertree algorithm for selecting which branches in the "synthetic tree of life"
  • treemachine plugin provides web services to explore the tree.

Notes

synthetic tree browser

  • JavaScript front end (runs in the user's web-browser) for the synthetic tree
  • uses taxomachine and treemachine services
  • enables
    • navigation of the tree
    • commenting
    • searching for taxa in the tree

Notes

"phylesystem"

  • Entire corpus of studies in a git repository
  • a python app. provides web-services for data access
  • "satellite" services (e.g. our study indexing tool oti) via:
    • sync'-ing using git
    • web-hooks on GitHub
  • Planned support for letting the community submit edits via git "pull requests"

Notes

new curation user interface

  • JavaScript using taxomachine, phylesystem API, oti
  • more flexible OTU mapping
  • easier tree operations (rerooting, ingroup specification)
  • displays multiple perspectives on the study
  • still undergoing initial tests

Notes

Summary of architecture

  • 3 primary data-backed services:
    • taxonomy (taxomachine serving OTT)
    • input trees (phylografter, phylesystem API)
    • graph of Life (treemachine)
  • 2 primary user-facing web applications:
    • synthetic tree browsing
    • new curation

Notes

APIs

  • current architecture -> all substantive calls are already done through APIs
  • we need to document APIs much better
  • authentication via GitHub (we don't control a user database)
  • hackathon planned for Sept. 2014

Notes

"open" aspects

  • Free and Open code licenses (of course)
  • very little "behind the scenes":
    • git repo as study database
    • taxonomy always available as archive
    • every part of deployment (except private keys) publicly visible
    • open mailing lists, trello board, google docs, issue trackers and IRC

Notes