Skip to content

Instantly share code, notes, and snippets.

@yayamamo
Last active April 24, 2017 03:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yayamamo/923303c1e598c39b982f36ca81a6ba25 to your computer and use it in GitHub Desktop.
Save yayamamo/923303c1e598c39b982f36ca81a6ba25 to your computer and use it in GitHub Desktop.
Stardog query plan for query 2
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX up: <http://purl.uniprot.org/core/> PREFIX faldo: <http://biohackathon.org/resource/faldo#> SELECT DISTINCT ?parent_label ?label ?begin_location ?end_location ?seq_length ?comment (GROUP_CONCAT(?substitution; SEPARATOR = ", ") AS ?substitutions) ?seq ?feature_identifier FROM <http://togogenome.org/graph/uniprot> FROM <http://togogenome.org/graph/tgup> WHERE { { SELECT ?gene { <http://togogenome.org/gene/103690:PCC7120DELTA_RS09085> skos:exactMatch ?gene . } ORDER BY ?gene LIMIT 1 } <http://togogenome.org/gene/103690:PCC7120DELTA_RS09085> skos:exactMatch ?gene ; rdfs:seeAlso ?id_upid . ?id_upid rdfs:seeAlso ?protein . ?protein a up:Protein ; up:annotation ?annotation . ?annotation rdf:type ?type . ?type rdfs:label ?label . ?type rdfs:subClassOf* ?parent_type . ?parent_type rdfs:subClassOf up:Sequence_Annotation ; rdfs:label ?parent_label . ?annotation up:range ?range . OPTIONAL { ?annotation rdfs:comment ?comment . } ?range faldo:begin/faldo:position ?begin_location ; faldo:end/faldo:position ?end_location . ?protein up:sequence ?isoform . BIND( REPLACE( STR(?protein), "http://purl.uniprot.org/uniprot/", "") AS ?up_id) FILTER( REGEX(STR(?isoform), ?up_id)) ?isoform rdf:value ?value . OPTIONAL { ?annotation up:substitution ?substitution . ?isoform rdf:value ?seq . } OPTIONAL { ?isoform rdf:value ?seq_txt . BIND (STRLEN(?seq_txt) AS ?seq_length) . } OPTIONAL { ?annotation rdf:type ?type . BIND (STR(?annotation) AS ?feature_identifier) . FILTER REGEX(STR(?annotation), "http://purl.uniprot.org/annotation") } } GROUP BY ?parent_label ?label ?begin_location ?end_location ?seq_length ?comment ?seq ?feature_identifier ORDER BY ?parent_label ?label ?begin_location ?end_location
The Query Plan:
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix up: <http://purl.uniprot.org/core/>
prefix faldo: <http://biohackathon.org/resource/faldo#>
From <http://togogenome.org/graph/uniprot>
From <http://togogenome.org/graph/tgup>
Distinct [#2]
`─ OrderBy(ASC(?parent_label), ASC(?label), ASC(?begin_location), ASC(?end_location)) [#2]
`─ Projection(?parent_label, ?label, ?begin_location, ?end_location, ?seq_length, ?comment, ?substitutions, ?seq, ?feature_identifier) [#2]
`─ Group(by=[?seq, ?seq_length, ?label, ?feature_identifier, ?parent_label, ?comment, ?begin_location, ?end_location] aggregates=[GROUP_CONCAT(?substitution; SEPARATOR = ", ") AS ?substitutions]) [#2]
`─ MergeJoinOuter(?type)(Regex(Str(?annotation), "http://purl.uniprot.org/annotation")) [#2]
+─ Sort(?type) [#2]
│ `─ MergeJoinOuter(?isoform) [#2]
│ +─ DirectHashJoinOuter(?isoform) [#2]
│ │ +─ MergeJoin(?isoform) [#2]
│ │ │ +─ Sort(?isoform) [#1]
│ │ │ │ `─ Filter(Regex(Str(?isoform), ?up_id)) [#1]
│ │ │ │ `─ Bind(REPLACE(Str(?protein), "http://purl.uniprot.org/uniprot/", "") AS ?up_id) [#2]
│ │ │ │ `─ MergeJoin(?wklqkokh) [#2]
│ │ │ │ +─ Sort(?wklqkokh) [#2]
│ │ │ │ │ `─ MergeJoin(?range) [#2]
│ │ │ │ │ +─ Sort(?range) [#2]
│ │ │ │ │ │ `─ MergeJoin(?protein) [#2]
│ │ │ │ │ │ +─ Sort(?protein) [#2]
│ │ │ │ │ │ │ `─ MergeJoin(?vrtqkcmb) [#2]
│ │ │ │ │ │ │ +─ Sort(?vrtqkcmb) [#2]
│ │ │ │ │ │ │ │ `─ MergeJoin(?range) [#2]
│ │ │ │ │ │ │ │ +─ Sort(?range) [#3]
│ │ │ │ │ │ │ │ │ `─ MergeJoinOuter(?annotation) [#3]
│ │ │ │ │ │ │ │ │ +─ Sort(?annotation) [#3]
│ │ │ │ │ │ │ │ │ │ `─ LoopJoin(_) [#3]
│ │ │ │ │ │ │ │ │ │ +─ MergeJoin(?gene) [#1]
│ │ │ │ │ │ │ │ │ │ │ +─ Sort(?gene) [#1]
│ │ │ │ │ │ │ │ │ │ │ │ `─ Slice(offset=0, limit=1) [#1]
│ │ │ │ │ │ │ │ │ │ │ │ `─ OrderBy(ASC(?gene)) [#1]
│ │ │ │ │ │ │ │ │ │ │ │ `─ Projection(?gene) [#1]
│ │ │ │ │ │ │ │ │ │ │ │ `─ Scan[SPO](<http://togogenome.org/gene/103690:PCC7120DELTA_RS09085>, skos:exactMatch, ?gene) [#1]
│ │ │ │ │ │ │ │ │ │ │ `─ Scan[SPOC](<http://togogenome.org/gene/103690:PCC7120DELTA_RS09085>, skos:exactMatch, ?gene) [#1]
│ │ │ │ │ │ │ │ │ │ `─ HashJoin(?type) [#3]
│ │ │ │ │ │ │ │ │ │ +─ MergeJoin(?parent_type) [#279K]
│ │ │ │ │ │ │ │ │ │ │ +─ PropertyPath(?type -> ?parent_type, minLength=0, sorted by=?parent_type) [#2365.3M]
│ │ │ │ │ │ │ │ │ │ │ │ +─ Scan[POSC](?type, rdfs:subClassOf, ?parent_type) [#21.0M]
│ │ │ │ │ │ │ │ │ │ │ `─ MergeJoin(?parent_type) [#2.5K]
│ │ │ │ │ │ │ │ │ │ │ +─ Scan[POSC](?parent_type, rdfs:subClassOf, up:Sequence_Annotation) [#8]
│ │ │ │ │ │ │ │ │ │ │ `─ Scan[PSOC](?parent_type, rdfs:label, ?parent_label) [#24.4M]
│ │ │ │ │ │ │ │ │ │ `─ MergeJoin(?type) [#2]
│ │ │ │ │ │ │ │ │ │ +─ Sort(?type) [#2]
│ │ │ │ │ │ │ │ │ │ │ `─ MergeJoin(?annotation) [#2]
│ │ │ │ │ │ │ │ │ │ │ +─ Sort(?annotation) [#2]
│ │ │ │ │ │ │ │ │ │ │ │ `─ MergeJoin(?protein) [#2]
│ │ │ │ │ │ │ │ │ │ │ │ +─ MergeJoin(?protein) [#2]
│ │ │ │ │ │ │ │ │ │ │ │ │ +─ Sort(?protein) [#2]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ `─ MergeJoin(?id_upid) [#2]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ +─ Scan[SPOC](<http://togogenome.org/gene/103690:PCC7120DELTA_RS09085>, rdfs:seeAlso, ?id_upid) [#2]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ `─ Scan[PSOC](?id_upid, rdfs:seeAlso, ?protein) [#315.6M]
│ │ │ │ │ │ │ │ │ │ │ │ │ `─ Scan[PSOC](?protein, up:annotation, ?annotation) [#70.0M]
│ │ │ │ │ │ │ │ │ │ │ │ `─ Scan[POSC](?protein, rdf:type, up:Protein) [#19.7M]
│ │ │ │ │ │ │ │ │ │ │ `─ MergeJoin(?annotation) [#47.7M]
│ │ │ │ │ │ │ │ │ │ │ +─ Scan[PSOC](?annotation, rdf:type, ?type) [#771.6M]
│ │ │ │ │ │ │ │ │ │ │ `─ Scan[PSOC](?annotation, up:range, ?range) [#47.7M]
│ │ │ │ │ │ │ │ │ │ `─ Scan[PSOC](?type, rdfs:label, ?label) [#24.4M]
│ │ │ │ │ │ │ │ │ `─ Scan[PSOC](?annotation, rdfs:comment, ?comment) [#77.6M]
│ │ │ │ │ │ │ │ `─ Scan[PSOC](?range, faldo:end, ?vrtqkcmb) [#47.2M]
│ │ │ │ │ │ │ `─ Scan[PSOC](?vrtqkcmb, faldo:position, ?end_location) [#83.9M]
│ │ │ │ │ │ `─ Scan[PSOC](?protein, up:sequence, ?isoform) [#19.8M]
│ │ │ │ │ `─ Scan[PSOC](?range, faldo:begin, ?wklqkokh) [#47.2M]
│ │ │ │ `─ Scan[PSOC](?wklqkokh, faldo:position, ?begin_location) [#83.9M]
│ │ │ `─ Scan[PSC](?isoform, rdf:value, _) [#15.3M]
│ │ `─ LoopJoin(_) [#3980958.3M]
│ │ +─ Scan[PSOC](?annotation, up:substitution, ?substitution) [#202K]
│ │ `─ Scan[PSO](?isoform, rdf:value, ?seq) [#19.7M]
│ `─ Bind(STRLEN(?seq_txt) AS ?seq_length) [#19.7M]
│ `─ Scan[PSOC](?isoform, rdf:value, ?seq_txt) [#19.7M]
`─ Bind(Str(?annotation) AS ?feature_identifier) [#771.6M]
`─ Scan[POSC](?annotation, rdf:type, ?type) [#771.6M]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment