By using the
details field of objects and connecting objects with
inter-object links (see the Details and
Links section of the API
documentation), you can use data objects as building blocks to construct more
complex composite objects.
Although you can in principle represent complex objects in whatever way you
wish for your application, DNAnexus has defined a set of data types to
facilitate interoperability between applications. These data types are
conventions about how to use data objects to represent common entities in
genomics. The data types may govern the general structure of a composite object
as well as the content of each individual component (for example, the required
format of a File). Types may contain subtypes that
may make more stringent requirements.
Each data object may declare its conformance to any number of types (see the
Types section of the API documentation), but
the type system is purely advisory: the Platform does not verify conformance of
the object to the type(s) that it advertises.
App developers may include types in the input and output specifications of
their apps: on inputs, to indicate that the app requires its inputs to conform
to certain types; or, on outputs, to advertise that the outputs produced by the
app will conform to certain types. (See I/O and Run
the Applets section of the API
documentation for more information about how to add types to an inputSpec or