sparql-examples

SPARQL examples for the EMI

View the Project on GitHub earth-metabolome-initiative/sparql-examples

2

rq turtle/ttl

Count the number of features annotated as aspidosperma type alkaloids by CANOPUS (p>0.5) in the different samples

Use at

PREFIX enpkg: <https://enpkg.commons-lab.org/kg/>
PREFIX enpkgmodule: <https://enpkg.commons-lab.org/module/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>

SELECT ?extract ?organe ?species_name ?genus_name ?family_name ?count_of_selected_class
WHERE
    {  
    ?material enpkg:has_lab_process ?extract .
        ?material enpkgmodule:has_organe ?organe .
        ?material enpkg:has_wd_id ?wd_sp .
        OPTIONAL
        {
            SERVICE <https://query.wikidata.org/sparql> {
            ?wd_sp wdt:P225 ?species_name .
            ?family wdt:P31 wd:Q16521 ;
                wdt:P105 wd:Q35409 ;
                wdt:P225 ?family_name ;
                ^wdt:P171* ?wd_sp .
            ?genus wdt:P31 wd:Q16521 ;
                wdt:P105 wd:Q34740 ;
                wdt:P225 ?genus_name ;
                ^wdt:P171* ?wd_sp 
            }
        }
        {
            SELECT ?extract (COUNT(DISTINCT ?feature) AS ?count_of_selected_class)
            WHERE
            {   
                ?extract rdf:type enpkg:LabExtract .
                    ?extract enpkg:has_LCMS ?lcms .
                        ?lcms rdf:type enpkg:LCMSAnalysisPos .
                        ?lcms enpkg:has_lcms_feature_list ?feature_list .
                            ?feature_list enpkg:has_lcms_feature ?feature .
                                ?feature enpkg:has_canopus_annotation ?canopus .
                                    ?canopus enpkg:has_canopus_npc_class ?np_class .
                                    ?canopus enpkg:has_canopus_npc_class_prob ?class_prob .
                                    FILTER(regex(str(?np_class), "Aspidosperma_type")) .
                                    FILTER((?class_prob > 0.5)) .
            } GROUP BY ?extract ORDER BY DESC(?count_of_selected_class)
        }
    }

graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v16("?canopus")
  v11("?class_prob")
  v17("?count_of_selected_class"):::projected 
  v2("?extract"):::projected 
  v6("?family")
  v7("?family_name"):::projected 
  v15("?feature")
  v14("?feature_list")
  v8("?genus")
  v9("?genus_name"):::projected 
  v13("?lcms")
  v1("?material")
  v12("?np_class")
  v3("?organe"):::projected 
  v5("?species_name"):::projected 
  v4("?wd_sp")
  c9(["wd:Q35409"]):::iri 
  c11(["wd:Q34740"]):::iri 
  c15(["enpkg:LabExtract"]):::iri 
  c17(["enpkg:LCMSAnalysisPos"]):::iri 
  c7(["wd:Q16521"]):::iri 
  v1 --"enpkg:has_lab_process"-->  v2
  v1 --https://enpkg.commons-lab.org/module/has_organe-->  v3
  v1 --"enpkg:has_wd_id"-->  v4
  subgraph optional0["(optional)"]
  style optional0 fill:#bbf,stroke-dasharray: 5 5;
    subgraph s1["https://query.wikidata.org/sparql"]
      style s1 stroke-width:4px;
      v4 -."wdt:P225".->  v5
      v6 --"wdt:P31"-->  c7
      v6 --"wdt:P105"-->  c9
      v6 --"wdt:P225"-->  v7
      v4 --"wdt:P171"-->  v6
      v8 --"wdt:P31"-->  c7
      v8 --"wdt:P105"-->  c11
      v8 --"wdt:P225"-->  v9
      v4 --"wdt:P171"-->  v8
    end
  end
  f0[["?class_prob > '0.5^^xsd:decimal'"]]
  f0 --> v11
  f1[["regex(str(?np_class),'Aspidosperma_type')"]]
  f1 --> v12
  v2 --"a"-->  c15
  v2 --"enpkg:has_LCMS"-->  v13
  v13 --"a"-->  c17
  v13 --"enpkg:has_lcms_feature_list"-->  v14
  v14 --"enpkg:has_lcms_feature"-->  v15
  v15 --"enpkg:has_canopus_annotation"-->  v16
  v16 --"enpkg:has_canopus_npc_class"-->  v12
  v16 --"enpkg:has_canopus_npc_class_prob"-->  v11
  bind3[/"count(?feature)"/]
  v15 --o bind3
  bind3 --as--o v17