SD2E / opil

The Open Protocol Interface Language (OPIL) is intended as a standard language for protocol interfaces
5 stars 1 forks source link

Represent control using opil #100

Open tramyn opened 3 years ago

tramyn commented 3 years ago

Controls, in Intent Parser, contain fields used for checking samples that matches its conditions under each measurement performed on an experiment. Intent Parser represents these fields as custom annotations referenced under a opil.Measurement() object. However, an opil.Measurement() does not allow for more than one annotation of the same field name assigned and thus limits IP to encode no more than one control per opil.Measurement. The remaining set of control information are dropped.

@jakebeal recommend creating a custom annotation object for grouping the different fields of a control and then assigning these list of encoded controls to an opil.Measurement() object. I would like to request that this control object supported in the opil library.

Below are the fields that represents a control:

control.control_type : take in a string value control.channel : take in a string value control.timepoints : take in a list of opil.Measure objects control.strains : takes in a combinatorial derivation object to enumerate strains that needs to match a sample

bjkeller commented 3 years ago

The information that a sample is a control is important to the analysis, but not to the protocol. @jakebeal it would be good to distinguish experimental request concepts from the protocol interface concepts.