Open turbomam opened 4 years ago
Issues that affect analyte conversion (among other aspects of the programmatic template generation)
Some non-reasoning solutions and lingering concerns:
loinc_to_obo_mapping_reviewed.csv
and process with https://github.com/PennTURBO/turbo-assay-templating/blob/master/pipeline/turbo_assay_template_generation.RExample requiring conversion to analyte: Quantitiative assay for '(-)-cotinine' in 'urine specimen' ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')]
See also #4
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
insert {
graph <http://example.com/resource/analyte> {
?assay rdfs:subClassOf [ owl:intersectionOf [ rdf:first [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/BFO_0000055> ;
owl:someValuesFrom [ owl:intersectionOf [ rdf:first <http://purl.obolibrary.org/obo/OBI_0000275> ]] ] ;
rdf:rest [ rdf:first [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/RO_0000081> ;
owl:someValuesFrom [ owl:intersectionOf [ rdf:first ?targent ] ] ] ] ] ] .
?assay rdfs:subClassOf [ owl:intersectionOf [ rdf:first [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/OBI_0000293> ;
owl:someValuesFrom [ owl:intersectionOf [ rdf:first ?targent ]] ] ;
rdf:rest [ rdf:first [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/RO_0000087> ;
owl:someValuesFrom [ owl:intersectionOf [ rdf:first <http://purl.obolibrary.org/obo/OBI_0000275> ] ] ] ] ] ] .
<http://purl.obolibrary.org/obo/OBI_0000275> rdfs:label "analyte role" ;
rdfs:subClassOf <http://purl.obolibrary.org/obo/OBI_0002444> .
<http://purl.obolibrary.org/obo/OBI_0002444> rdfs:label "measurand role" ;
rdfs:subClassOf <http://purl.obolibrary.org/obo/BFO_0000023> .
}
} where {
?assay rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/OBI_0000299> ;
owl:someValuesFrom [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/IAO_0000136> ;
owl:someValuesFrom ?targent ;
] ] .
values ?eligible {
<http://purl.obolibrary.org/obo/CHEBI_23367> <http://purl.obolibrary.org/obo/CHEBI_33250>
}
?targent rdfs:subClassOf* <http://purl.obolibrary.org/obo/CHEBI_23367> .
}
Added 12424 statements. Update took 3.8s, moments ago.
WITH NO ELIGIBILITY CONSTRAINT: Added 12814 statements. Update took 0.3s, moments ago.
The OBI assays template "and"s the "has analyte input" and "realizes analyte role axioms" together.Here, they are asserted independently. Is that acceptable?
Some are good negative controls, but some are missed by the current algorithm for reasons discussed above or...
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select * where {
?assay rdfs:subClassOf* <http://purl.obolibrary.org/obo/OBI_0000070> ;
rdfs:label ?l .
minus {
?assay rdfs:subClassOf [ owl:intersectionOf [ rdf:first [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/BFO_0000055> ;
owl:someValuesFrom [ owl:intersectionOf [ rdf:first <http://purl.obolibrary.org/obo/OBI_0000275> ]] ] ;
rdf:rest [ rdf:first [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/RO_0000081> ;
owl:someValuesFrom [ owl:intersectionOf [ rdf:first ?targent ] ] ] ] ] ] .
?assay rdfs:subClassOf [ owl:intersectionOf [ rdf:first [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/OBI_0000293> ;
owl:someValuesFrom [ owl:intersectionOf [ rdf:first ?targent ]] ] ;
rdf:rest [ rdf:first [ a owl:Restriction ;
owl:onProperty <http://purl.obolibrary.org/obo/RO_0000087> ;
owl:someValuesFrom [ owl:intersectionOf [ rdf:first <http://purl.obolibrary.org/obo/OBI_0000275> ] ] ] ] ] ] .
}
}
l | targent |
---|---|
http://purl.obolibrary.org/obo/OBI_0000070 | "assay"@en |
turbo:TURBO_3000001 | Quantitiative assay for 'immunoglobulin complex' and 'has disposition to bind' some 'acetylcholine receptor binding' in 'blood serum specimen' ['scalar measurement datum' and ('has measurement unit label' some 'unit of molarity')] |
turbo:TURBO_3000002 | Quantitiative assay for 'IgG immunoglobulin complex' and 'has disposition to bind' some 'Polistes' in 'blood serum specimen' ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000003 | Quantitiative assay for 'IgG immunoglobulin complex' and 'has disposition to bind' some 'Dolichovespula arenaria' in 'blood serum specimen' ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000004 | Quantitiative assay for 'IgG immunoglobulin complex' and 'has disposition to bind' some 'Dolichovespula maculata' in 'blood serum specimen' ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000174 | Quantitiative assay for 'osmolality' in ('blood serum specimen' or 'blood plasma specimen') ['scalar measurement datum' and ('is about' some 'osmolality')] |
turbo:TURBO_3000175 | Quantitiative assay for 'osmolality' in 'feces specimen' ['scalar measurement datum' and ('is about' some 'osmolality')] |
turbo:TURBO_3000176 | Quantitiative assay for 'osmolality' in 'urine specimen' ['scalar measurement datum' and ('is about' some 'osmolality')] |
turbo:TURBO_3000207 | Quantitiative assay for 'growth hormone' in ('blood serum specimen' or 'blood plasma specimen') ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000258 | Quantitiative assay for ('amitriptyline' and 'nortriptyline') in ('blood serum specimen' or 'blood plasma specimen') ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000309 | Quantitiative assay for 'propoxyphene' in 'urine specimen' ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000322 | Quantitiative assay for ('doxepin' and 'desmethyldoxepin') in ('blood serum specimen' or 'blood plasma specimen') ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000327 | Quantitiative assay for 'fluoxetine' in ('blood serum specimen' or 'blood plasma specimen') ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000345 | Quantitiative assay for 'nicotine' in ('blood serum specimen' or 'blood plasma specimen') ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000376 | Quantitiative assay for ('calcidiol' and 'vitamin D2') in ('blood serum specimen' or 'blood plasma specimen') ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000389 | Quantitiative assay for ('amphetamine' and 'methamphetamine') in 'urine specimen' ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000423 | Quantitiative assay for 'adalimumab' in ('blood serum specimen' or 'blood plasma specimen') ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
turbo:TURBO_3000428 | Quantitiative assay for ('imipramine' and 'desipramine') in ('blood serum specimen' or 'blood plasma specimen') ['scalar measurement datum' and ('has measurement unit label' some 'mass per unit volume')] |
Queries above have been updated. See pipeline/config/*.rq
The TURBO assay template columns are practically identical to the OBI assay template columns.
I am working on a SPARQL query that will migrate or add analute eligible entities (molecular entities or atoms) into the analyte column
It might also be possible to make that distinction within the script that builds the template.
In either case, handling target entities like 'oxycodone or oxymorphone' will be a challenge