sparql-examples

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

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

Query_110

rq turtle/ttl

STR (short tandem repeat) profile of a chosen cell line

Use at


PREFIX cello: <https://purl.expasy.org/cellosaurus/rdf/ontology/>
PREFIX cvcl: <https://purl.expasy.org/cellosaurus/rdf/cvcl/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?cl ?cl_name ?marker ?detected ?repeat_num ?conflicting (group_concat(distinct ?source; separator=' ') as ?sources)
where {
  values ?cl { cvcl:CVCL_0025 }
  ?cl cello:recommendedName ?cl_name .
  ?cl cello:hasShortTandemRepeatProfile / cello:includesObservation ?obs .
  ?obs rdfs:label ?obs_name .
  ?obs cello:conflicting ?conflict .
  ?obs cello:hasTarget ?trg .
  optional { ?trg rdfs:label ?trg_label . }
  optional { ?trg cello:markerId ?trg_id . }
  bind(coalesce(?trg_label, ?trg_id) as ?marker)
  optional { ?obs cello:detectedTarget ?dt . }
  optional { ?obs cello:detectedAllele / cello:repeatNumber ?allele . }
  optional {
    ?obs cello:hasSource ?s .
  	optional { ?s cello:originatesFrom / a ?st }.
   	optional { ?s cello:originatesFrom / cello:internalId ?id }   	# src origin is a xref or a publi
    optional { ?s cello:originatesFrom / skos:prefLabel ?org }      # src origin is an organization
    optional { ?s rdfs:label ?lb }                                  # src origin not specified
  }
  bind (coalesce(?id, ?org, ?lb, '-') as ?source)
  bind (coalesce(?st, '-') as ?source_type)
  bind (if(bound(?dt), if(?dt=1, 'yes', 'no'), 'n/a') as ?detected)
  bind (if(bound(?allele), concat('n=',?allele), 'n/a') as ?repeat_num)
  bind (if(?conflict, 'yes', 'no') as ?conflicting)
}
group by ?cl ?cl_name ?obs_name ?marker ?detected ?repeat_num ?conflicting
order by ?cl ?cl_name ?obs_name ?marker ?detected ?repeat_num ?conflicting
limit 500
    
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v14("?allele")
  v8("?cl"):::projected 
  v2("?cl_name"):::projected 
  v9("?conflict")
  v22("?conflicting"):::projected 
  v22("?detected"):::projected 
  v13("?dt")
  v17("?id")
  v19("?lb")
  v13("?marker"):::projected 
  v8("?obs")
  v3("?obs_name")
  v18("?org")
  v22("?repeat_num"):::projected 
  v15("?s")
  v20("?source"):::projected 
  v21("?source_type")
  v22("?sources")
  v16("?st")
  v10("?trg")
  v12("?trg_id")
  v11("?trg_label")
  a1((" "))
  a2((" "))
  a3((" "))
  a4((" "))
  a5((" "))
  bind0[/VALUES ?cl/]
  bind0-->v8
  bind00([https://purl.expasy.org/cellosaurus/rdf/cvcl/CVCL_0025])
  bind00 --> bind0
  v8 --"cello:recommendedName"-->  v2
  v8 --"cello:hasShortTandemRepeatProfile"-->  a1
  a1 --"cello:includesObservation"-->  v8
  v8 --"rdfs:label"-->  v3
  v8 --"cello:conflicting"-->  v9
  v8 --"cello:hasTarget"-->  v10
  subgraph optional0["(optional)"]
  style optional0 fill:#bbf,stroke-dasharray: 5 5;
    v10 -."rdfs:label".->  v11
  end
  subgraph optional1["(optional)"]
  style optional1 fill:#bbf,stroke-dasharray: 5 5;
    v10 -."cello:markerId".->  v12
  end
  bind1[/"?trg_label?trg_id"/]
  v11 --o bind1
  v12 --o bind1
  bind1 --as--o v13
  subgraph optional2["(optional)"]
  style optional2 fill:#bbf,stroke-dasharray: 5 5;
    v8 -."cello:detectedTarget".->  v13
  end
  subgraph optional3["(optional)"]
  style optional3 fill:#bbf,stroke-dasharray: 5 5;
    v8 -."cello:detectedAllele".->  a2
    a2 --"cello:repeatNumber"-->  v14
  end
  subgraph optional4["(optional)"]
  style optional4 fill:#bbf,stroke-dasharray: 5 5;
    v8 -."cello:hasSource".->  v15
    subgraph optional5["(optional)"]
    style optional5 fill:#bbf,stroke-dasharray: 5 5;
      v15 -."cello:originatesFrom".->  a3
      a3 --"a"-->  v16
    end
    subgraph optional6["(optional)"]
    style optional6 fill:#bbf,stroke-dasharray: 5 5;
      v15 -."cello:originatesFrom".->  a4
      a4 --"cello:internalId"-->  v17
    end
    subgraph optional7["(optional)"]
    style optional7 fill:#bbf,stroke-dasharray: 5 5;
      v15 -."cello:originatesFrom".->  a5
      a5 --"skos:prefLabel"-->  v18
    end
    subgraph optional8["(optional)"]
    style optional8 fill:#bbf,stroke-dasharray: 5 5;
      v15 -."rdfs:label".->  v19
    end
  end
  bind2[/"?id?org?lb'-'"/]
  v17 --o bind2
  v18 --o bind2
  v19 --o bind2
  bind2 --as--o v20
  bind3[/"?st'-'"/]
  v16 --o bind3
  bind3 --as--o v21
  bind4[/"if(bound(?dt),if(?dt = '1^^xsd:integer','yes','no'),'n/a')"/]
  v13 --o bind4
  bind4 --as--o v22
  bind5[/"if(bound(?allele),concat('n=',?allele),'n/a')"/]
  v14 --o bind5
  bind5 --as--o v22
  bind6[/"if(?conflict,'yes','no')"/]
  v9 --o bind6
  bind6 --as--o v22
  bind8[/"?source"/]
  v20 --o bind8
  bind8 --as--o v22