-
Notifications
You must be signed in to change notification settings - Fork 12
Description
Problem: The current condition table only allows entry of the conditionId, targetId and targetValue. In v1, multiple targets could be specified for each condition. This allowed description of a whole experiment in one line, but the changes had to occur at time = 0.
v2 allows different conditions to occur at different times. This is an improvement as this reflects experimental protocols better. It also allows introduction of a 'forcing function' of sorts with stepwise changes in the parameters.
I propose that the change from wide condition tables to long condition tables obviates the need for the condition table and experiment tables should have the following columns:
experimentId, time, targetId, targetValue
Example:
v1 Alkan_SciSig2018 condition table (first two entries):
conditionId | Dox_level | Gem_level | SN38_level
model1_data1 | 0.0 | 0.0 | 0.0
model1_data2 | 0.0 | 0.0003 | 0.0
v2 Alkan_SciSig2018 condition table:
conditionId | targatID | targetValue
model1_data1 | Dox_level | 0.0
model1_data1 | Gem_level | 0.0
model1_data1 | SN38_level| 0.0
model1_data2 | Dox_level | 0.0
model1_data2 | Gem_level | 0.0003
model1_data2 | SN38_level| 0.0
v2 Alkan_SciSig2018 experiment table:
experimentId | time | conditionId
experiment1 | 0 | model1_data1
experiment2 | 0 | model1_data2
Proposed v2 Alkan_SciSig2018 experiment table:
experimentId | time | targatID | targetValue
experiment1 | 0 | Dox_level | 0.0
experiment1 | 0 | Gem_level | 0.0
experiment1 | 0 | SN38_level| 0.0
experiment2 | 0 | Dox_level | 0.0
experiment2 | 0 | Gem_level | 0.0003
experiment2 | 0 | SN38_level| 0.0
If, for example, experiment2 was a pulse of Gem_level, then it would be:
experimentId | time | targatID | targetValue
experiment1 | 0 | Dox_level | 0.0
experiment1 | 0 | Gem_level | 0.0
experiment1 | 0 | SN38_level| 0.0
experiment2 | 0 | Dox_level | 0.0
experiment2 | 0 | Gem_level | 0.0003
experiment2 | 10 | Gem_level | 0.0
experiment2 | 0 | SN38_level| 0.0
The current equivalent would be:
v2 Alkan_SciSig2018 experiment table:
experimentId | time | conditionId
experiment1 | 0 | model1_data1
experiment2 | 0 | model1_data2
experiment2 | 10 | model1_data1
which would introduce two unneeded events or a new condition. Because the conditionId is used nowhere else besides the experiment table, you will be creating a bunch of conditionIds for minor benefits. I agree that the benefits would be greater if the condition table was still wide.