sparql-examples

A set of SPARQL examples that are used in different SIB resources

View the Project on GitHub sib-swiss/sparql-examples

37_Select_the_number_of_reactions_with_cross-references_to_MetaCyc

rq turtle/ttl

Select the number of reactions with cross-references to MetaCyc

Use at

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rh:<http://rdf.rhea-db.org/>
PREFIX CHEBI:<http://purl.obolibrary.org/obo/CHEBI_>
PREFIX up:<http://purl.uniprot.org/core/>
PREFIX keywords:<http://purl.uniprot.org/keywords/>
PREFIX taxon:<http://purl.uniprot.org/taxonomy/>

SELECT
  (count(distinct ?rhea) as ?rheaMetacycCount)
  (count(distinct ?xref) as ?metacycRheaCount)
  (count(?rhea) as ?rheaMetacycXrefCount)
WHERE {
  ?rhea rdfs:subClassOf rh:Reaction .
  ?rhea rh:status rh:Approved .
  ?rhea rh:directionalReaction ?directionalReaction .
  ?rhea rh:bidirectionalReaction ?bidirectionalReaction .
  {
    ?directionalReaction rdfs:seeAlso ?xref .
    FILTER regex(str(?xref), "METACYC") .
  }
  UNION
  {
    ?bidirectionalReaction rdfs:seeAlso ?xref .
    FILTER regex(str(?xref), "METACYC") .
  }
  UNION
  {
    ?rhea rdfs:seeAlso ?xref .
    FILTER regex(str(?xref), "METACYC") .
  }
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v3("?bidirectionalReaction")
  v2("?directionalReaction")
  v6("?metacycRheaCount")
  v1("?rhea"):::projected 
  v5("?rheaMetacycCount")
  v7("?rheaMetacycXrefCount")
  v4("?xref"):::projected 
  c4(["rh:Approved"]):::iri 
  c2(["rh:Reaction"]):::iri 
  v1 --"rdfs:subClassOf"-->  c2
  v1 --"rh:status"-->  c4
  v1 --"rh:directionalReaction"-->  v2
  v1 --"rh:bidirectionalReaction"-->  v3
  subgraph union0[" Union "]
  subgraph union0l[" "]
    style union0l fill:#abf,stroke-dasharray: 3 3;
    subgraph union1[" Union "]
    subgraph union1l[" "]
      style union1l fill:#abf,stroke-dasharray: 3 3;
      f0[["regex(str(?xref),'METACYC')"]]
      f0 --> v4
      v1 --"rdfs:seeAlso"-->  v4
    end
    subgraph union1r[" "]
      style union1r fill:#abf,stroke-dasharray: 3 3;
      f1[["regex(str(?xref),'METACYC')"]]
      f1 --> v4
      v3 --"rdfs:seeAlso"-->  v4
    end
    union1r <== or ==> union1l
    end
  end
  subgraph union0r[" "]
    style union0r fill:#abf,stroke-dasharray: 3 3;
    f2[["regex(str(?xref),'METACYC')"]]
    f2 --> v4
    v2 --"rdfs:seeAlso"-->  v4
  end
  union0r <== or ==> union0l
  end
  bind6[/"count(?rhea)"/]
  v1 --o bind6
  bind6 --as--o v5
  bind7[/"count(?xref)"/]
  v4 --o bind7
  bind7 --as--o v6
  bind8[/"count(?rhea)"/]
  v1 --o bind8
  bind8 --as--o v7