182_reviewed_proteins_by_ec_class

rq turtle/ttl

Count reviewed proteins classified anywhere under EC class 2.7 (transferases that transfer phosphorus-containing groups, e.g. kinases), matched either directly via up:enzyme or through a catalytic-activity annotation's Rhea-linked enzyme classification. EC subclasses are materialized in UniProt's data, so this is done with a plain rdfs:subClassOf join against the whole 2.7.-.- subtree rather than an rdfs:subClassOf+ transitive path or a STRSTARTS string-prefix filter on the EC IRI

Use at

PREFIX up: <http://purl.uniprot.org/core/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT
  (COUNT(DISTINCT ?protein) AS ?count)
WHERE {
  ?protein up:reviewed true ;
    up:enzyme|up:annotation/up:catalyticActivity/up:enzymeClass ?ecNumber .
  ?ecNumber rdfs:subClassOf <http://purl.uniprot.org/enzyme/2.7.-.->
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v3("?count")
  v2("?ecNumber")
  v1("?protein"):::projected 
  a1((" "))
  a2((" "))
  c8([http://purl.uniprot.org/enzyme/2.7.-.-]):::iri 
  c2(["true^^xsd:boolean"]):::literal 
  v1 --"up:reviewed"-->  c2
  subgraph union0[" Union "]
  subgraph union0l[" "]
    style union0l fill:#abf,stroke-dasharray: 3 3;
    v1 --"up:annotation"-->  a1
    a1 --"up:catalyticActivity"-->  a2
    a2 --"up:enzymeClass"-->  v2
  end
  subgraph union0r[" "]
    style union0r fill:#abf,stroke-dasharray: 3 3;
    v1 --"up:enzyme"-->  v2
  end
  union0r <== or ==> union0l
  end
  v2 --"rdfs:subClassOf"-->  c8
  bind1[/"count(?protein)"/]
  v1 --o bind1
  bind1 --as--o v3