sparql-examples

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

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

neXtProt/NXQ_00063

Proteins that have at least one RRM RNA-binding domain and either no GO "RNA binding" or a GO "RNA binding" with evidence cv:ECO_0000501 or cv:ECO_0000250

Use at

PREFIX : <http://nextprot.org/rdf/>
PREFIX nextprot_cv: <http://nextprot.org/rdf/terminology/>

SELECT DISTINCT ?entry WHERE {
 {
 ?entry :isoform ?iso.
 # >=1 RRM RNA-binding domain
 ?iso :region/:term nextprot_cv:DO-00581.
 # No GO "RNA binding"
 filter not exists {
 ?iso :function/:term /:childOf nextprot_cv:GO_0003723
 }
 }
 union{
 ?entry :isoform ?iso.
 # >=1 RRM RNA-binding domain
 ?iso :region/:term nextprot_cv:DO-00581.
 # GO "RNA binding" with evidence IEA or ISS
 ?iso :function ?s1.
 ?s1 :term /:childOf nextprot_cv:GO_0003723.
 filter not exists { ?s1 :negativeEvidence ?negev. } # No negative function evidence
 ?s1 :evidence /:evidenceCode /:childOf ?pcode.
 values ?pcode { nextprot_cv:ECO_0000501 nextprot_cv:ECO_0000250 }
 }
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v2("?entry"):::projected 
  v1("?iso")
  v4("?negev")
  v6("?pcode")
  v3("?s1")
  a3((" "))
  a1((" "))
  a2((" "))
  a4((" "))
  a5((" "))
  a6((" "))
  a7((" "))
  c7([":terminology/DO-00581"]):::iri 
  c4([":terminology/GO_0003723"]):::iri 
  subgraph union0[" Union "]
  subgraph union0l[" "]
    style union0l fill:#abf,stroke-dasharray: 3 3;
    f0[["not  "]]
    subgraph f0e0["Exists Clause"]
      e0v1 --":negativeEvidence"-->  e0v2
      e0v2("?negev"):::projected 
      e0v1("?s1"):::projected 
    end
    f0--EXISTS--> f0e0
    f0 --> v3
    f0 --> c8
    f0 --> v4
    v3 --":negativeEvidence"-->  v4
    v2 --":isoform"-->  v1
    v1 --":region"-->  a4
    a4 --":term"-->  c7
    v1 --":function"-->  v3
    v3 --":term"-->  a5
    a5 --":childOf"-->  c4
    v3 --":evidence"-->  a6
    a6 --":evidenceCode"-->  a7
    a7 --":childOf"-->  v6
    bind1[/VALUES ?pcode/]
    bind1-->v6
    bind10([":terminology/ECO_0000501"])
    bind10 --> bind1
    bind11([":terminology/ECO_0000250"])
    bind11 --> bind1
  end
  subgraph union0r[" "]
    style union0r fill:#abf,stroke-dasharray: 3 3;
    f2[["not  "]]
    subgraph f2e1["Exists Clause"]
      e1v1 --":function"-->  e1a1
      e1a1 --":term"-->  e1a2
      e1a2 --":childOf"-->  e1c4
      e1v1("?iso"):::projected 
      e1a1((" ")):::projected 
      e1a2((" ")):::projected 
      e1c4([":terminology/GO_0003723"]):::iri 
    end
    f2--EXISTS--> f2e1
    f2 --> v1
    f2 --> c1
    f2 --> a1
    f2 --> c2
    f2 --> a2
    f2 --> c3
    f2 --> c4
    v1 --":function"-->  a1
    a1 --":term"-->  a2
    a2 --":childOf"-->  c4
    v2 --":isoform"-->  v1
    v1 --":region"-->  a3
    a3 --":term"-->  c7
  end
  union0r <== or ==> union0l
  end