173_batch_ec_number_lookup

rq turtle/ttl

Given a batch of Enzyme Commission (EC) numbers, list the reviewed UniProt entries classified with each one, in a single query. A protein can be linked to an EC number three different ways: directly (up:enzyme), through a catalytic activity annotation's Rhea-linked enzyme classification (up:catalyticActivity/up:enzymeClass), or as a plain string in a structured protein name (up:ecName) -- the ?mappedVia column states which

Use at

PREFIX up: <http://purl.uniprot.org/core/>
PREFIX enzyme: <http://purl.uniprot.org/enzyme/>

SELECT ?ec ?protein ?mappedVia
WHERE {
  VALUES ?ec { "1.1.1.1" "3.5.1.5" }
  BIND(IRI(CONCAT(STR(enzyme:), ?ec)) AS ?ecIRI)
  {
    ?protein up:enzyme ?ecIRI .
    BIND("direct enzyme classification (up:enzyme)" AS ?mappedVia)
  } UNION {
    ?protein up:annotation/up:catalyticActivity/up:enzymeClass ?ecIRI .
    BIND("catalytic activity annotation (up:catalyticActivity/up:enzymeClass)" AS ?mappedVia)
  } UNION {
    ?protein up:recommendedName|up:alternativeName ?name .
    ?name up:ecName ?ec .
    BIND("structured name (up:ecName string)" AS ?mappedVia)
  }
  ?protein up:reviewed true .
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v1("?ec"):::projected 
  v2("?ecIRI")
  v6("?mappedVia"):::projected 
  v5("?name")
  v3("?protein"):::projected 
  a1((" "))
  a2((" "))
  c9(["true^^xsd:boolean"]):::literal 
  bind0[/VALUES ?ec/]
  bind0-->v1
  bind00(["1.1.1.1"])
  bind00 --> bind0
  bind01(["3.5.1.5"])
  bind01 --> bind0
  bind1[/"concat(str(http://purl.uniprot.org/enzyme/),?ec)"/]
  v1 --o bind1
  bind1 --as--o v2
  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;
      subgraph union2[" Union "]
      subgraph union2l[" "]
        style union2l fill:#abf,stroke-dasharray: 3 3;
        v3 --"up:alternativeName"-->  v5
      end
      subgraph union2r[" "]
        style union2r fill:#abf,stroke-dasharray: 3 3;
        v3 --"up:recommendedName"-->  v5
      end
      union2r <== or ==> union2l
      end
      v5 --"up:ecName"-->  v1
      bind2[/"'structured name (up:ecName string)'"/]
      bind2 --as--o v6
    end
    subgraph union1r[" "]
      style union1r fill:#abf,stroke-dasharray: 3 3;
      v3 --"up:annotation"-->  a1
      a1 --"up:catalyticActivity"-->  a2
      a2 --"up:enzymeClass"-->  v2
      bind3[/"'catalytic activity annotation (up:catalyticActivity/up:enzymeClass)'"/]
      bind3 --as--o v6
    end
    union1r <== or ==> union1l
    end
  end
  subgraph union0r[" "]
    style union0r fill:#abf,stroke-dasharray: 3 3;
    v3 --"up:enzyme"-->  v2
    bind4[/"'direct enzyme classification (up:enzyme)'"/]
    bind4 --as--o v6
  end
  union0r <== or ==> union0l
  end
  v3 --"up:reviewed"-->  c9