openMetadataInitiative / openMINDS_controlledTerms

Metadata model for the consistent registration of well-defined terms as well as a corresponding library of terminologies (including links to ontological terms where applicable).
MIT License
7 stars 12 forks source link

Where to put experimental conditions #468

Closed andreagaede closed 5 months ago

andreagaede commented 6 months ago

A couple of things I could use help with:

  1. When using StimulationApproach, I would like to specify which body part the stimulus is applied to (e.g., left eye, right eye, left ear, left hindlimb, etc...). Is there a way to add controlled terms for this somewhere, rather than adding this as a 'description' at either the StimulationApproach or Protocol levels?

  2. In a case where a treatment has been applied to an animal (e.g., developmental intervention) that will be present for many epochs, where should this be indicated? I think maybe SubjectAttribute is the answer, but these are general attributes, so is there a place where I can put more details. Also, if this happens at postnatal day 4, for instance, where should I indicate that since it is not the animal's current age, just the age at intervention/treatment/etc...?

lzehl commented 6 months ago

Hi @andreagaede these are two very good questions which tackle first version schemas in openMINDS (meaning based on your feedback, use case we will find that we need a refinement here in openMINDS). Currently you will have the following options:

  1. openMINDS is designed to allow the user to define the wanted level of detail. A "StimulationApproach" can therefore be used at different places in the metadata model giving superficial information or more in-depth insight. Right now there are the following options:
    • "StimulationApproach" as value for the property "technique" of a DatasetVersion, informs just that somewhere within that DatasetVersion the "StimulationApproach" was used. (not what you want)
    • "StimulationApproach" as value for the property technique of a Protocol, informs that the "StimulationApproach" was used for a specific Protocol that was used for a DatasetVersion (how fine-grained the Protocols of a DatasetVersion are designed is user dependent; you would need to define a Protocol for the stimulation or stimulation+recording)
    • a Protocol can be connected to a ProtocolExecution which allows to define input/output specific settings of a Protocol within a DatasetVersion (e.g. one Protocol was executed 5 times on 5 specimen with potentially 5 different paramater settings producing each 1 file). Within a stimulation ProtocolExecution of a stimulation/stimulation+recording Protocol the property "studyTarget" could be used to identify the stimulation target (these are controlled terms). You could also use the CustomPropertySet to define your own structured metadata for the stimulation target. Or you can define the anatomical location of the TissueSample you targeted and connect the non-stimulated TissueSampleState as input and the stimulated TissueSampleState as output. Note that in this case the TissueSample is studied in place of the Subjects body (not extracted). Linkages between TissueSample and Subjects are made through their states (TissueSampleState "descendedFrom" SubjectState).
    • If that level of detail is wanted, is though better to directly use the technique specific activity (for this case: StimulationActivity) instead of the (generic) ProtocolExecution. In parallel you would specify a respective RecordingActivity (e.g. which may be connected to the joint stimulation+recording Protocol).

I'm sorry if that summary is a bit confusing. What we indeed currently not offer is a way of specifying an anatomical target within a SubjectState (to avoid the definition of TissueSamples/TissueSampleStates). I will bring this to the developers to discuss this further.

  1. This issue should be solvable through SubjectStates with possible combinations of Protocol/ProtocolExecutions. Assumption: Subject was first treated, and at later time points measured two times.
    • SubjectState 01: Untreated Subject; Attribute: untreated; age: 4 days
    • ProtocolExecution 01: treatement of subject; input: SubjectState 01; output: SubjectState 02
    • SubjectState 02: Treated Subject; Attribute: treated; age: 4 days
    • ProtocolExecution 02: measurement of treated subject; input: SubjectState 02; output: SubjectState 03
    • SubjectState 03: 1st Measurement of Subject; Attribute: treated; age: 20 days
    • ProtocolExecution 02: measurement of treated subject; input: SubjectState 03; output: SubjectState 04
    • SubjectState 04: 2nd Measurement of Subject; Attribute: treated; age: 40 days

Additionally you can define the type and amount of treatment (unstructured) in the additional remarks of the SubjectStates or descriptions of the ProtocolExecutions. You can also use the CustomPropertySet in ProtocolExecutions to define your own structured metadata for the treatment. Moreover, you can define the relative time relation between the SubjectStates or which SubjectState descended from which to highlight the order in which the activities happened that produced these states. Depending on your needs all ProtocolExecutions could link to the same Protocol which describes (unstructured) the whole process (because it might be fixed for all subjects). So far we did not develop an extension that would capture treatments of subjects in more detailed/structured way.

I'm happy to discuss further. I'm not sure if every option became clear. Feel free to also get in touch with us for a video call (it might be easier to discuss in person, but I hope I was able to somewhat describe what you could do).

stevewds commented 5 months ago

@andreagaede : Maybe this one is solved for us? I was looking as to whether to add on or not.

andreagaede commented 5 months ago

@stevewds oh you're right -- the new issue is more about a new ontology in addition to what we ask about here. We will still also want to use StimulationApproach as suggested though I think

stevewds commented 5 months ago

@andreagaede Do you think we should close it, to take it off their plates? Or is there more info we need? If you want to close it go ahead!