221_ddbj_to_uniparc

rq turtle/ttl

Using a "genome" identifier in INSDC use the DDBJ sparql endpoint to find the CDS identifiers and link these to UniParc records

Use at

PREFIX up: <http://purl.uniprot.org/core/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX insdc: <http://ddbj.nig.ac.jp/ontologies/nucleotide/>
PREFIX faldo: <http://biohackathon.org/resource/faldo#>

SELECT
 ?ddbj
 ?emblCds
 ?uniparc
WHERE {
  SERVICE <https://rdfportal.org/ddbj/sparql> {
    VALUES ?ddbj { <http://identifiers.org/insdc/OQ416313.1> }
    GRAPH <http://rdfportal.org/dataset/ddbj>{
      ?ddbj rdf:type insdc:Entry.
      ?ddbj insdc:sequence ?sequence .
      ?position faldo:reference ?sequence .
      ?region faldo:begin ?position .
      ?cds faldo:location ?region ;
        a insdc:Coding_Sequence ;
        rdfs:seeAlso ?potentialProtein .
      BIND(STR(?potentialProtein) AS ?potentialProteinStr)
      FILTER(STRSTARTS(?potentialProteinStr, 'http://identifiers.org/ncbiprotein/'))
      BIND(IRI(CONCAT('http://purl.uniprot.org/embl-cds/', SUBSTR(?potentialProteinStr, 36))) AS ?emblCds)
    }
  }
  ?uniparc up:sequenceFor ?emblCds .
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v6("?cds")
  v1("?ddbj"):::projected 
  v8("?emblCds"):::projected 
  v4("?position")
  v7("?potentialProtein")
  v8("?potentialProteinStr")
  v5("?region")
  v3("?sequence")
  v9("?uniparc"):::projected 
  c10([http://ddbj.nig.ac.jp/ontologies/nucleotide/Coding_Sequence]):::iri 
  c4([http://ddbj.nig.ac.jp/ontologies/nucleotide/Entry]):::iri 
  subgraph s1["https://rdfportal.org/ddbj/sparql"]
    style s1 stroke-width:4px;
    bind0[/VALUES ?ddbj/]
    bind0-->v1
    bind00(["insdc:OQ416313.1"])
    bind00 --> bind0
    f1[["starts-with(?potentialProteinStr,'http://identifiers.org/ncbiprotein/')"]]
    f1 --> v8
    v1 --"a"-->  c4
    v1 --http://ddbj.nig.ac.jp/ontologies/nucleotide/sequence-->  v3
    v4 --"faldo:reference"-->  v3
    v5 --"faldo:begin"-->  v4
    v6 --"faldo:location"-->  v5
    v6 --"a"-->  c10
    v6 --"rdfs:seeAlso"-->  v7
    bind2[/"str(?potentialProtein)"/]
    v7 --o bind2
    bind2 --as--o v8
    bind3[/"concat('http://purl.uniprot.org/embl-cds/',substring(?potentialProteinStr,'36^^xsd:integer'))"/]
    v8 --o bind3
    bind3 --as--o v8
  end
  v9 --"up:sequenceFor"-->  v8