⚠️ Under construction.
Get Started
Quickstart
Providing Genetic Files
ℹ️
  • We assume that you completed first tutorial API Quickstart and that you have:
    • Access token stored in ACCESS_TOKEN environment variable
    • Created Sample object and stored sample ID in SAMPLE_ID environment variable

In order to add genetic data to an existing Sample you need to create Genotype object linked to the Sample.

In this guide we will create Genotype object from a genetic file that was previously imported into PBS (see Working with genetic files for more details on importing genetic files ).

Lets assume that we have genotype file available in PBS:

  • GENOTYPE_FILE_PATH="genotypes/genotype_user1040.txt"

First we need to find object_uri of given PBS object by invoking Get File Details operation.

curl --request GET \
  --url https://se1.lifenome.com/platform-api/api/core-api/files/${GENOTYPE_FILE_PATH}/ \
  --header "Authorization: Bearer ${ACCESS_TOKEN}"

Response:

{
  "name": "string",
  "object_uri": "string",
  "content_type": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z",
  "size": 0,
  "md5_hash": "string",
  "crc32c": "string",
  "etag": "string",
  "metadata": null
}

Then you need to create Genotype object for SAMPLE_ID and PBS object (with object_uri obtained from response above) with we need to invoke Create Genotype operation.

curl --request PUT \
  --url https://se1.lifenome.com/platform-api/api/core-api/samples/${SAMPLE_ID}/genotype/ \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --data "{\"source_uri\": \"${OBJECT_URI}\"}"

Also object_uri can be fetched this way in case you have jq installed:

OBJECT_URI=$(curl --request GET \
  --url https://se1.lifenome.com/platform-api/api/core-api/files/${DEST_PATH}/ \
  --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  | jq -r .object_uri)

After the genotype is created you can fetch current details about the genotype (current state, state history and other details) by invoking Get Genotype operation.

curl --request GET \
  --url "https://se1.lifenome.com/platform-api/api/core-api/samples/${SAMPLE_ID}/" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ${ACCESS_TOKEN}"

Current state is stored in the state property of the genotype object:

{
  "id": "312235f8-...-c8b71648471d",
  "assembly": "grch37",
  "source_uri": "string",
  "source_blob_metadata": null,
  "state": "available",
  "state_history": [
     {
       "state": "not-available",
       "is_active": false,
       "created_at": "2019-08-24T14:15:22Z"
     },
     {
       "state": "not-available",
       "is_active": true,
       "created_at": "2019-08-24T14:15:24Z"
     }
  ],
  "created_at": "2019-08-24T14:15:22Z"
}

At this poing genotype is created with valid data source and the state of the genotype transitions to available state.

Next, genotype data stored in the file is automatically validated. If a valid genotype file is uploaded, the state of genotype transitions to data-valid:

Finally, when uploaded file is completely processed, state will be processed:

As mentioned before, if provided genotype file is not recognized, state will be data-invalid. See Supported Genetic Files for more information about what kind of files with genotype data are supported.