@prefix ex: <https://sparql.uniprot.org/.well-known/sparql-examples/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <https://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ex:75_enzymes_with_at_least_two_transmembrane_domains_PDB_xray a sh:SPARQLExecutable,
        sh:SPARQLSelectExecutable ;
    rdfs:comment "Find enzymes that have at least two transmembrane domains, whose 3D structure is elucidated through X-Ray analysis"@en ;
    sh:prefixes _:sparql_examples_prefixes ;
    sh:select """PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX up: <http://purl.uniprot.org/core/>

SELECT
  ?protein
WHERE {
  ?protein a up:Protein ;
    up:annotation ?transmembrane_annotation ;
    rdfs:seeAlso ?wwPDB .
  {
    ?protein up:enzyme ?enzyme .
  } UNION {
    ?protein up:annotation/a up:Catalytic_Activity_Annotation .
  }
  ?wwPDB up:database <http://purl.uniprot.org/database/PDB> ;
    up:method up:X-Ray_Crystallography .
  ?transmembrane_annotation a up:Transmembrane_Annotation .
} GROUP BY ?protein HAVING(COUNT(DISTINCT ?transmembrane_annotation ) >= 2)""" ;
    schema:keywords "3D",
        "PDB",
        "enzyme",
        "membrane" ;
    schema:keywords "PDB" , "transmembrane" , "enzyme classification" , "enzyme" , "count" ;
    schema:target <https://sparql.uniprot.org/sparql/> ;
    schema:subjectOf <https://education.expasy.org/cours/SIB_UniProtKB_Enzymes_2024/> .

