A set of SPARQL examples that are used in different SIB resources
Filter the positive ionization mode features of Melochia umbellate annotated as [M+H]+ by SIRIUS to keep the ones for which a feature in negative ionization mode is detected with the same retention time (± 3 seconds) and a mass corresponding to the [M-H]- adduct (± 5 ppm).
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX emi: <https://purl.org/emi#>
PREFIX sosa: <http://www.w3.org/ns/sosa/>
SELECT DISTINCT ?feature ?rt ?pm ?feature_opp ?rt_opp ?pm_opp
WHERE {
VALUES ?ppm {
"5"^^xsd:decimal # m/z tolerance
}
VALUES ?rt_tol {
"0.05"^^xsd:decimal # RT tolerance (minute)
}
?sample a emi:ExtractSample ;
sosa:isSampleOf* ?organe .
?organe emi:inTaxon ?taxon .
?taxon rdfs:label "melochia umbellata" .
?sample sosa:isFeatureOfInterestOf ?lcms .
?lcms a emi:LCMSAnalysisPos ;
sosa:hasResult ?feature_list .
?feature_list emi:hasLCMSFeature ?feature .
?feature emi:hasParentMass ?pm ;
emi:hasRetentionTime ?rt ;
emi:hasAnnotation ?sirius .
?sirius a emi:StructuralAnnotation ;
prov:wasGeneratedBy ?activiy .
?activiy prov:wasAssociatedWith <https://bio.informatik.uni-jena.de/software/sirius> .
?sirius emi:hasAdduct ?adduct .
FILTER(regex(str(?adduct), "[M+H]+"))
?sample sosa:isFeatureOfInterestOf ?lcms_opp .
?lcms_opp a emi:LCMSAnalysisNeg ;
sosa:hasResult ?feature_list_opp .
?feature_list_opp emi:hasLCMSFeature ?feature_opp .
?feature_opp emi:hasParentMass ?pm_opp ;
emi:hasRetentionTime ?rt_opp .
FILTER(((?rt - ?rt_tol) < ?rt_opp) && ((?rt + ?rt_tol) > ?rt_opp))
FILTER((?pm_opp > ((?pm - 2.014) - ((?ppm * 0.000001) * (?pm - 2.014)))) && (?pm_opp < ((?pm - 2.014) + ((?ppm * 0.000001) * (?pm - 2.014)))))
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v15("?activiy")
v7("?adduct")
v13("?feature"):::projected
v12("?feature_list")
v17("?feature_list_opp")
v18("?feature_opp"):::projected
v11("?lcms")
v16("?lcms_opp")
v9("?organe")
v2("?pm"):::projected
v1("?pm_opp"):::projected
v8("?ppm")
v4("?rt"):::projected
v6("?rt_opp"):::projected
v8("?rt_tol")
v8("?sample")
v14("?sirius")
v10("?taxon")
c9(["melochia umbellata"]):::literal
c20([https://bio.informatik.uni-jena.de/software/sirius]):::iri
c5(["emi:ExtractSample"]):::iri
c17(["emi:StructuralAnnotation"]):::iri
c22(["emi:LCMSAnalysisNeg"]):::iri
c11(["emi:LCMSAnalysisPos"]):::iri
f0[["?pm_opp > ?pm - '2.014^^xsd:decimal' - ?ppm * '0.000001^^xsd:decimal' * ?pm - '2.014^^xsd:decimal'?pm_opp < ?pm - '2.014^^xsd:decimal' + ?ppm * '0.000001^^xsd:decimal' * ?pm - '2.014^^xsd:decimal'"]]
f0 --> v1
f0 --> v2
f0 --> v8
f1[["?rt - ?rt_tol < ?rt_opp?rt + ?rt_tol > ?rt_opp"]]
f1 --> v4
f1 --> v8
f1 --> v6
f2[["regex(str(?adduct),'#91;M+H#93;+')"]]
f2 --> v7
bind3[/VALUES ?ppm/]
bind3-->v8
bind30(["5^^xsd:decimal"])
bind30 --> bind3
bind4[/VALUES ?rt_tol/]
bind4-->v8
bind40(["0.05^^xsd:decimal"])
bind40 --> bind4
v8 --"a"--> c5
v8 --"sosa:isSampleOf"--> v9
v9 --"emi:inTaxon"--> v10
v10 --"rdfs:label"--> c9
v8 --"sosa:isFeatureOfInterestOf"--> v11
v11 --"a"--> c11
v11 --"sosa:hasResult"--> v12
v12 --"emi:hasLCMSFeature"--> v13
v13 --"emi:hasParentMass"--> v2
v13 --"emi:hasRetentionTime"--> v4
v13 --"emi:hasAnnotation"--> v14
v14 --"a"--> c17
v14 --"prov:wasGeneratedBy"--> v15
v15 --"prov:wasAssociatedWith"--> c20
v14 --"emi:hasAdduct"--> v7
v8 --"sosa:isFeatureOfInterestOf"--> v16
v16 --"a"--> c22
v16 --"sosa:hasResult"--> v17
v17 --"emi:hasLCMSFeature"--> v18
v18 --"emi:hasParentMass"--> v1
v18 --"emi:hasRetentionTime"--> v6