Information submitted through the support site is private but is not hosted within your secure CDD Vault. Please do not include sensitive intellectual property in your support requests.

Control Layouts [GET, POST, DELETE]

API calls related to Control Layouts:

Retrieve

Create

Update

Delete

Retrieve

GET /api/v1/vaults/<vault_id>/control_layouts/<id>

Get a single control layout, specified by the control layout ID.


GET /api/v1/vaults/<vault_id>/control_layouts

Get a list of available control layouts. 


Note, the use of Query Parameters that are included in the URL is no longer officially supported.  While the legacy Query parameters will continue to work, users are highly encouraged to switch to the use of JSON parameters for all Plates related API calls.

JSON Parameters (all optional):

plates Comma delimited list of plate ids  
protocols Comma delimited list of protocol ids  
runs Comma delimited list of run ids  
only_ids

Boolean


If true, only the control_layout ids are returned, allowing for a smaller and faster response.


Default: false

It can be added to any GET control_layouts call. Async should still be used when many IDs are expected.

 

Note: any page_size parameter used in an API GET call that also uses the only_ids=true parameter will be ignored. The GET call will return all valid data for the given GET call.

async Boolean
If true, do an asynchronous export (see Async Export)
Use for large data sets. This is recommended any time you want to download more than page_size results. Note: any page_size parameter used in an API GET call that also uses the async=true parameter will be ignored. The GET call will return all valid data for the given GET call.
 
offset The index of the first object actually returned. Defaults to 0.  
page_size The maximum number of objects to return in this call. Default is 50, maximum is 1000. If the response exceeds the page_size, we strongly recommend using the async option instead of downloading multiple chunks. Note: any page_size parameter used in an API GET call that also uses the async=true parameter will be ignored. The GET call will return all valid data for the given GET call.  
projects Comma-separated list of project ids
Defaults to all available projects
Limits scope of query
 
data_sets Comma-separated list of public dataset ids
Defaults to no data sets
Limits scope of query
 
created_before Date (YYYY-MM-DDThh:mm:ss±hh:mm)  
created_after Date (YYYY-MM-DDThh:mm:ss±hh:mm)  
modified_before Date (YYYY-MM-DDThh:mm:ss±hh:mm)  
modified_after Date (YYYY-MM-DDThh:mm:ss±hh:mm)  

 

Examples

GET https://app.collaborativedrug.com/api/v1/vaults/489978881/control_layouts

Passing JSON containing this parameter:

{"plates":[287316,287348]}

Returns:

{
    "count": 2,
    "offset": 0,
    "page_size": 50,
    "objects": [
        {
            "id": 20308,
            "class": "plate specific control layout",
            "created_at": "2017-07-17T20:02:46.000Z",
            "modified_at": "2017-07-17T20:02:46.000Z",
            "control_wells": [
                {
                    "col": 0,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 1,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 2,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 3,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 4,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 5,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 6,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 7,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 8,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 9,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 0,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 0,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 1,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 2,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 3,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 4,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 5,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 6,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 7,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 8,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 9,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 1,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 2,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 2,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 3,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 3,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 4,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 5,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 6,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 7,
                    "control_state": "-"
                }
            ],
            "plate": 287316,
            "protocol": 29814
        },
        {
            "id": 20310,
            "class": "plate specific control layout",
            "created_at": "2017-07-17T21:46:00.000Z",
            "modified_at": "2017-07-17T21:46:00.000Z",
            "control_wells": [
                {
                    "col": 0,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 1,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 2,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 3,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 4,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 5,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 6,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 7,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 8,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 9,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 10,
                    "row": 0,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 0,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 1,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 2,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 3,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 4,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 5,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 6,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 7,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 8,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 9,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 10,
                    "row": 1,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 2,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 2,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 3,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 3,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 4,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 5,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 6,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 7,
                    "control_state": "-"
                }
            ],
            "plate": 287348,
            "protocol": 29814
        }
    ]
}

 

GET https://app.collaborativedrug.com/api/v1/vaults/489978881/control_layouts

Passing JSON containing this parameter:

{"protocols":[29814,12255]}

Returns:

{
    "count": 4,
    "offset": 0,
    "page_size": 50,
    "objects": [
        {
            "id": 2909,
            "class": "default control layout",
            "created_at": "2012-08-14T15:02:40.000Z",
            "modified_at": "2012-08-14T15:02:40.000Z",
            "size": 96,
            "control_wells": [
                {
                    "col": 0,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 11,
                    "row": 0,
                    "control_state": "-"
                },
                {
                    "col": 0,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 11,
                    "row": 1,
                    "control_state": "-"
                },
                {
                    "col": 0,
                    "row": 2,
                    "control_state": "+"
                },
                {
                    "col": 11,
                    "row": 2,
                    "control_state": "-"
                },
                {
                    "col": 0,
                    "row": 3,
                    "control_state": "+"
                },
                {
                    "col": 11,
                    "row": 3,
                    "control_state": "-"
                },
                {
                    "col": 0,
                    "row": 4,
                    "control_state": "+"
                },
                {
                    "col": 11,
                    "row": 4,
                    "control_state": "-"
                },
                {
                    "col": 0,
                    "row": 5,
                    "control_state": "+"
                },
                {
                    "col": 11,
                    "row": 5,
                    "control_state": "-"
                },
                {
                    "col": 0,
                    "row": 6,
                    "control_state": "+"
                },
                {
                    "col": 11,
                    "row": 6,
                    "control_state": "-"
                },
                {
                    "col": 0,
                    "row": 7,
                    "control_state": "+"
                },
                {
                    "col": 11,
                    "row": 7,
                    "control_state": "-"
                }
            ],
            "protocol": 12255
        },
        {
            "id": 20307,
            "class": "default control layout",
            "created_at": "2017-07-17T19:54:24.000Z",
            "modified_at": "2017-07-17T19:54:24.000Z",
            "size": 96,
            "control_wells": [
                {
                    "col": 10,
                    "row": 0,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 1,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 2,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 2,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 3,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 3,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 4,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 5,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 6,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 7,
                    "control_state": "-"
                }
            ],
            "protocol": 29814
        },
        {
            "id": 20308,
            "class": "plate specific control layout",
            "created_at": "2017-07-17T20:02:46.000Z",
            "modified_at": "2017-07-17T20:02:46.000Z",
            "control_wells": [
                {
                    "col": 0,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 1,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 2,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 3,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 4,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 5,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 6,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 7,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 8,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 9,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 0,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 0,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 1,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 2,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 3,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 4,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 5,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 6,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 7,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 8,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 9,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 1,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 2,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 2,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 3,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 3,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 4,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 5,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 6,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 7,
                    "control_state": "-"
                }
            ],
            "plate": 287316,
            "protocol": 29814
        },
        {
            "id": 20310,
            "class": "plate specific control layout",
            "created_at": "2017-07-17T21:46:00.000Z",
            "modified_at": "2017-07-17T21:46:00.000Z",
            "control_wells": [
                {
                    "col": 0,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 1,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 2,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 3,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 4,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 5,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 6,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 7,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 8,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 9,
                    "row": 0,
                    "control_state": "#"
                },
                {
                    "col": 10,
                    "row": 0,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 0,
                    "control_state": "+"
                },
                {
                    "col": 0,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 1,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 2,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 3,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 4,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 5,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 6,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 7,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 8,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 9,
                    "row": 1,
                    "control_state": "#"
                },
                {
                    "col": 10,
                    "row": 1,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 1,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 2,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 2,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 3,
                    "control_state": "-"
                },
                {
                    "col": 11,
                    "row": 3,
                    "control_state": "+"
                },
                {
                    "col": 10,
                    "row": 4,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 5,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 6,
                    "control_state": "-"
                },
                {
                    "col": 10,
                    "row": 7,
                    "control_state": "-"
                }
            ],
            "plate": 287348,
            "protocol": 29814
        }
    ]
}

 

 

Create

POST /api/v1/vaults/<vault_id>/control_layouts

Creates a control layout.

JSON Parameters (all optional):

size Specify the size of the new control layout (size can't be set for a plate-specific control layout).
plate Create a plate-specific control layout.
protocol Specify the protocol(s) associated with the new control layout. Specify either a protocol or a run, but not both.
run Specify the run(s) associated with the new control layout. Note: Specify either a protocol or a run, but not both.
control_wells

Contains an array of objects with keys: pos and control_state where pos is the position, "A01" (which is equivalent to row: 0, col: 0) and control_state is one of +, -, #
Note:

Instead of pos: "A01", wells can be identified using the row and column numbers.


So, passing this JSON:
"control_wells":[{"row":"0","col":"0","control_state":"+"}

... is equivalent to passing this JSON:
"control_wells":[{"pos":"A01","control_state":"+"}

 

Control layout creation example:

POST /api/v1/vaults/489978881/control_layouts

Passing these parameters via JSON:

{
    "size":"384",
    "protocol":"14356",
        "control_wells":[
            {"pos":"A01","control_state":"+"},
            {"pos":"B01","control_state":"+"},
            {"pos":"C01","control_state":"+"},
            {"pos":"A24","control_state":"-"},
            {"pos":"B24","control_state":"-"},
            {"pos":"C24","control_state":"-"}
        ]
}
 

Will create a default control layout for 384 well Plates in the Protocol ID 14356.

 
Def384LayoutExampleAPI.PNG

Update

To update an existing control layout, please DELETE the existing control layout and recreate it as needed.

Delete

DELETE /api/v1/vaults/<vault_id>/control_layouts/<id>

Deletes a specific control layout.

 

Examples

curl -H "X-CDD-Token: $TOKEN" -X DELETE https://app.collaborativedrug.com/api/v1/vaults/<vault_id>/control_layouts/<control_layout_id>

Returns:

{
    "message": "Object has been destroyed"
}