-
Notifications
You must be signed in to change notification settings - Fork 8
Modelling IC50 results
For:
- IC50 (in ENM, from BAO)
- hill model fitting (Hill equation in BAO; added)
- tcpl (too specific, won't do)
- SubclassOf (not equivalent to, since we are not including the information about TCPL) ic50 AND 'has curve fit specification' some 'Hill equation'
- SubclassOf http://www.bioassayontology.org/bao#BAO_0000190 AND ( http://www.bioassayontology.org/bao#BAO_0000335 SOME http://www.bioassayontology.org/bao#BAO_0000435 )
At the OpenRiskNet Hackathon in Brussels on 13-14 Dec 2018 we undertook an exercise on this IC50 data with a view to how to model this with Json Schema (with respect to OpenAPI definitions) and how to semantically annotate this using Json-LD.
The idea was to define some key components of a data model for describing IC50 results that can be used by applications.
It is not mandatory to use the whole model. For instance, assays are highly variable in nature so it might be more appropriate to create your own custom assay model that uses the model for an IC50 result. Alternatively the quantity
and quantityRange
schema object can be re-used in many other cases.
The Json Schema we defined is this (note: this is not currently syntactically correct - this will be updated soon):
components:
schemas:
quantity:
required:
- value
- unit
type: object
description: A value with units
properties:
value:
type: number
format: float
unit:
type: string
modifier:
type: string
enum:
- '>'
- '<'
- '~'
quantityRange:
type: object
properties:
lowerValue:
$ref: #components/schemas/quantity
upperValue:
$ref: #components/schemas/quantity
ic50:
type: object
required:
- value
properties:
value:
$ref: #components/schemas/quantity
slope:
type: number
format: float
description: The calculated Hill constant
numReplicates:
type: number
format: int32
description: The number of replicates that generate the value.
rmse:
type: number
format: float
description: Optional RMSE value for the replicates. The units are implicitly the same as those of the value
standardDeviation: # units are implcit
type: number
format: float
description: Optional standard deviation value for the replicates. The units are implicitly the same as those of the value
assay: # very limited description of an assay, primarily as a holder for a set of ic50 values
properties:
protocol:
type: string
description: The description of the assay
assayRange:
$ref: #components/schemas/quantityRange
description: The min and max concentrations for the assay
results:
type: array
items:
$ref: #components/schemas/ic50
Actions that remain:
- Review the IC50 model and see how it works for some real data sets.
- Investigate how to annotate this with Json-LD descriptions. Will too much end up being duplicated in the Json schema and the ontology definitions.