SeqsLab DRS API#

In the DRS-1.0.0 Spec (external link) DRS v1 is a read-only API. The Seqslab DRS API not only implements the GA4GH specifications, it also provides a set of APIs to create, modify and delete DRS objects. Moreover, it supports search so you can query DRS objects by tags or by name.

The Seqslab DRS API does not currently support dataset uploads. As a workaround, you can either:

  • upload content using Seqslab CLI and then using the API to register the DRS objects

  • upload content and register using the Seqslab CLI

DRS IDs#

  • The SeqsLab DRS API uses DRS IDs that include adrs_ prefix with strings made up of uppercase and lowercase alphanumeric characters. Unlike the GA4GH DRS-1.0.0 (external link), we do not support hypen, period, underscore, and tilde characters.

  • One DRS ID MUST always return the same object data.

  • DRS implementations MAY have more than one ID that maps to the same object.

DRS uniform resource identifiers (URIs)#

  • A DRS URI refers to a DRS object.

  • DRS URIs use the format drs://<server>/<id> where <server> is the DRS server and <id> is the DRS ID.

  • With DRS URI, contents can be accessed in a standard way.

  • If the DRS URI is drs://drs.atgenomix.com/271828, then you can send API requests to https://drs.atgenomix.com/ga4gh/drs/v1/objects/271828

    • Get DRS objectGet DRS object

    • Update DRS objectUpdate DRS object

    • Partial update DRS objectPartial update DRS object

    • Delete DRS objectDelete DRS object

DRS data types#

DRS supports two types of content:

  • blob — Like a file, a blob is a single blob of bytes that is represented by a DrsObject without a contents array.

  • bundle — Like a folder, a bundle is a collection of other DRS content (either blobs or bundles) that is represented by a DrsObject with a contents array.