Can someone direct me to an ISA-JSON example where pooling of Samples is done?
In the documentation (copied and pasted below), there is an example of how to deal with this in ISA-Tab. But I couldn't find a similar example for ISA-JSON.
Example copied below from https://isa-specs.readthedocs.io/en/latest/isamodel.html#study :
"In a pooling example, multiple sources may be used to create a single sample:
(source material 1)->(sample collection)->(sample material 1)Hi Rafael,
Hope all is well in Ghent.
Here is a code snippet and the corresponding serialization to ISA-JSON:
(I have also documented that in an jupyter-notebook, which will be posted on the ISA-API documentation with the coming release).
-------
from isatools.model
import *
from isatools.create.model import *
import datetime
# creating an
ISA.Investigation object
investigation = Investigation()
# creating an ISA.Study object
study = Study(filename="s_study.txt")
study.identifier = "S1"
study.title = "ISA Study example: creating sample pools"
# creating the necessary ISA.Protocol objects
study.protocols = [Protocol(name="sample
collection",protocol_type="pooling"),
Protocol(name="intracellular fraction
extraction",
protocol_type=OntologyAnnotation(term="extraction"),
parameters=[ProtocolParameter(parameter_name=OntologyAnnotation(term="concentration")),
ProtocolParameter(parameter_name=OntologyAnnotation(term="sample
QC"))]),
Protocol(name="data collection",
protocol_type=OntologyAnnotation(term="data acquisition")),
Protocol(name="data transformation",
protocol_type=OntologyAnnotation(term="data normalization"))
]
# creating 4
ISA.Source objects
study.sources =
[Source(name="source1"),Source(name="source2"),Source(name="source3"),Source(name="source4")]
# creating 2 ISA.Sample objects
study.samples = [Sample(name="sample1"),Sample(name="sample2")]
# creating an ISA.ProtocolApplication pooling Source1 and
Source2 into Sample1
study.process_sequence =
[Process(executes_protocol=study.protocols[0],
inputs=[study.sources[0],study.sources[1]],
outputs=[study.samples[0]])]
# doing the same again for pooling Source3 and Source4 into
Sample2
study.process_sequence.append(Process(executes_protocol=study.protocols[0],
inputs=[study.sources[2],study.sources[3]],
outputs=[study.samples[1]]))
investigation.studies = [study]
# let's check how
this looks in ISA-Tab
from isatools.isatab import dumps
print(dumps(investigation))
# let's check how this looks in ISA-JSON
import json
from isatools.isajson import ISAJSONEncoder
print(json.dumps(investigation, cls=ISAJSONEncoder,
sort_keys=True, indent=4, separators=(',', ': ')))
--------
the JSON looks like this:
{ "comments": [], "description": "", "identifier": "", "ontologySourceReferences": [], "people": [], "publicReleaseDate": "", "publications": [], "studies": [ { "assays": [], "characteristicCategories": [], "comments": [], "description": "a jupytern notebook showing how to create pooled samples (a node merging event with material nodes)", "factors": [], "filename": "s_study.txt", "identifier": "S1", "materials": { "otherMaterials": [], "samples": [ { "@id": "#sample/5116543904", "characteristics": [], "factorValues": [], "name": "sample1" }, { "@id": "#sample/5116545584", "characteristics": [], "factorValues": [], "name": "sample2" } ], "sources": [ { "@id": "#source/5116545344", "characteristics": [], "name": "source1" }, { "@id": "#source/5116545824", "characteristics": [], "name": "source2" }, { "@id": "#source/5119072912", "characteristics": [], "name": "source3" }, { "@id": "#source/5119071040", "characteristics": [], "name": "source4" } ] }, "people": [], "processSequence": [ { "@id": "#process/5119073488", "comments": [], "date": "", "executesProtocol": { "@id": "#5109903952" }, "inputs": [ { "@id": "#source/5116545344" }, { "@id": "#source/5116545824" } ], "name": "", "outputs": [ { "@id": "#sample/5116543904" } ], "parameterValues": [], "performer": "" }, { "@id": "#process/5119071088", "comments": [], "date": "", "executesProtocol": { "@id": "#5109903952" }, "inputs": [ { "@id": "#source/5119072912" }, { "@id": "#source/5119071040" } ], "name": "", "outputs": [ { "@id": "#sample/5116545584" } ], "parameterValues": [], "performer": "" } ], "protocols": [ { "@id": "#5109903952", "comments": [], "components": [], "description": "", "name": "sample collection", "parameters": [], "protocolType": { "@id": "#87632ca1-1109-4f42-bdc9-fd56c30cead8", "annotationValue": "pooling", "comments": [], "termAccession": "", "termSource": "" }, "uri": "", "version": "" }, { "@id": "#5118472000", "comments": [], "components": [], "description": "", "name": "intracellular fraction extraction", "parameters": [ { "@id": "#5119051952", "parameterName": { "@id": "#590aaeb5-2e11-4aff-a2c9-9b34bf676249", "annotationValue": "concentration", "comments": [], "termAccession": "", "termSource": "" } }, { "@id": "#5119050704", "parameterName": { "@id": "#33dfce38-e133-4bc0-9666-9a81bfb39362", "annotationValue": "sample QC", "comments": [], "termAccession": "", "termSource": "" } } ], "protocolType": { "@id": "#9a41779d-eb92-467d-88ac-d1595fe189de", "annotationValue": "extraction", "comments": [], "termAccession": "", "termSource": "" }, "uri": "", "version": "" }, { "@id": "#5118472096", "comments": [], "components": [], "description": "", "name": "data collection", "parameters": [], "protocolType": { "@id": "#26e7d865-e6be-454b-bd91-a8ee33a3cbcd", "annotationValue": "data acquisition", "comments": [], "termAccession": "", "termSource": "" }, "uri": "", "version": "" }, { "@id": "#5116464528", "comments": [], "components": [], "description": "", "name": "data transformation", "parameters": [], "protocolType": { "@id": "#e3ed694a-215c-45f5-bb09-cf4c2a6154e7", "annotationValue": "data normalization", "comments": [], "termAccession": "", "termSource": "" }, "uri": "", "version": "" } ], "publicReleaseDate": "", "publications": [], "studyDesignDescriptors": [], "submissionDate": "", "title": "ISA Study example: creating sample pools", "unitCategories": [] } ], "submissionDate": "", "title": "" }
--
--
--
You received this message because you are subscribed to the Google
Groups "ISAforum" group.
To post to this group, send email to isaf...@googlegroups.com
To unsubscribe from this group, send email to
isaforum+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/isaforum?hl=en-GB
Visit the ISA tools website at http://isa-tools.org and http://isacommons.org
---
You received this message because you are subscribed to the Google Groups "ISAforum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isaforum+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/isaforum/be058b4f-9e94-4cbe-9699-8d49f6b8f2a2n%40googlegroups.com.