Introduction to Cube/Floe development

OpenEye has developed a work flow engine for arbitrary computation that enables the creation of repeatable work flows to enhance reliability and flexibility. Each unit of computation in this context is a Cube, which receives and sends messages to other cubes to perform work. A set of cubes that are connected are referred to as a Floe.

Cube/Floe Development Libraries Summaries

The following covers the intended purpose for the package and where to look for different Cube, Floe and Orion functionality.

Orion Platform

Documentation

Orion Platform is the main development package for Cubes and Floes. It depends on the following libraries: Datarecord, DRConvert, Floe, Orion Client and the OpenEye Toolkits.

Orion Platform is the only dependency that most developers will need to install to handle their development needs. All lower level packages are pinned to specific versions to provide reproducible installations of Orion Platform. This library provides utilities that handle the differences between Orion and a developers local machine. This includes Utility Cubes, Parameters and Ports.

Data Record

Documentation

Data Record is a data structures containing strongly-typed fields, and are the primary data structure used in cubes. The tight integration of records with the Orion UI allows for fine-grained control over your data and how it is represented.

DRConvert

Documentation

DRConvert provides utilities to convert various molecular formats (OEB, SDF, MOL2, etc) into DataRecords. This can be done either on the command line or in a Cube.

Floe

Documentation

Floe provides the APIs to define, test and run Cubes and Workfloes. All of the fundamental Parameters, Cube APIs and Workfloe APIs can be found within this library.

Orion Client

Documentation

Orion Client is both a Python library and a command line interface that provides access to the Orion APIs. Provides an abstraction for resources in Orion and is coupled to the Orion API version.

Artemis

Documentation

Artemis is a testing framework, built on top of Pytest that simplifies testing of floes both locally and in Orion. While not necessary for the development of Cubes and Floes, Artemis can reduce the burden of the developer when moving from local development to Orion.