BH12.12/MDBStanzaQuery

提供:TogoWiki

移動: 案内, 検索

目次

グラフ構成

このページのSPARQLは以下のグラフ構成で動作する。
MicrobeDBエンドポイントグラフ構成


Gene関連スタンザ

searchGeneFromRefSeqByFreeText

searchText「polymerase」での検索
空白区切りの複数単語での検索にも対応する
synonymの結果は "|"か";"で区切られたシノニムから重複をアプリケーションで省く
クエリの遅さが気になった場合には、gene単位のttlを作成する必要があるs

DEFINE sql:select-option "order"

PREFIX	obo:	<http://purl.obolibrary.org/obo/> 
PREFIX	faldo:	<http://biohackathon.org/resource/faldo#>
PREFIX	idorg:	<http://rdf.identifiers.org/database/> 
PREFIX	insdc:	<http://insdc.org/owl/> 

SELECT 
 ?gene_label 
 (sql:GROUP_DIGEST(?synonym1, ', ', 1000, 1)) AS ?synonym
 (sql:GROUP_DIGEST(?product1, ', ', 1000, 1))  AS ?products
 (sql:GROUP_DIGEST(?note1, ', ', 1000, 1))  AS ?notes
FROM <http://microbedb.jp/refseq/>
WHERE
{
  {
    SELECT distinct(?uuid) as ?gene_uuid
    {
      {
        ?uuid ?p ?gene .
        FILTER (?p IN ( insdc:feature_gene, insdc:feature_gene_synonym, insdc:feature_product, insdc:feature_note)) .
        ?gene bif:contains '"polymerase"' .  
      }
    }
  }
  ?gene_uuid insdc:feature_gene ?gene_label.
  OPTIONAL {?gene_uuid insdc:feature_gene_synonym ?synonym1 . }
  OPTIONAL {?gene_uuid insdc:feature_product ?product1 . }
  OPTIONAL {?gene_uuid insdc:feature_note ?note1 .}
} GROUP BY ?gene_label

selectAnnotationFromGeneSymbol

geneSymbol 「dnaX」で検索

DEFINE sql:select-option "order"

PREFIX	obo:	<http://purl.obolibrary.org/obo/> 
PREFIX	faldo:	<http://biohackathon.org/resource/faldo#>
PREFIX	idorg:	<http://rdf.identifiers.org/database/> 
PREFIX	insdc:	<http://insdc.org/owl/> 

SELECT DISTINCT ?tax ?taxlabel ?locus_tag CONCAT(?cds_product, ?gene_product) AS ?products ?seq_type_label 
FROM <http://microbedb.jp/refseq/>
FROM <http://microbedb.jp/so/>
WHERE
{
 ?gene_uuid insdc:feature_gene ?symbol .
 ?symbol bif:contains '"dnaX"' .
 ?gene_uuid rdfs:label ?locus_tag .
 ?gene_uuid obo:so_part_of ?seq_uuid .
 ?seq_uuid rdf:type ?seq_type FILTER(?seq_type = obo:SO_0000340 || ?seq_type = obo:SO_0000155 ) .
 ?seq_type rdfs:label ?seq_type_label .
 ?seq_uuid rdfs:seeAlso ?tax .
 ?tax a idorg:Taxonomy . 
 OPTIONAL 
 {
  {
   ?cds_uuid obo:so_part_of ?gene_uuid .
   ?cds_uuid insdc:feature_product ?cds_product . 
  }
  UNION 
  { ?gene_uuid insdc:feature_product ?gene_product . }
 }
 ?seq_uuid insdc:source_organism ?taxlabel .
 ?seq_uuid insdc:sequence_version ?genome_ver .
}

selectOrthologFromGeneSymbol

?proteinはMDBのrefseqのページにリンク
?gtps_noはMDBのgtpsのページにリンク
?groupはMDBのorthologのページにリンク
それ以外は別タグで外部ページへリンク(?descriptionを除く)

PREFIX orth: <http://mbgd.genome.ad.jp/owl/ortholog.owl#>
PREFIX mbgd: <http://mbgd.genome.ad.jp/owl/mbgd.owl#>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX insdc: <http://insdc.org/owl/>

SELECT 
  ?gene ?organism ?description ?group
  REPLACE(STR(?protein), "http://www.ncbi.nlm.nih.gov/protein/", "") AS ?protein_no 
  ?uniprot
  REPLACE(STR(?gtps), "http://gtps.ddbj.nig.ac.jp/feature/", "") AS ?gtps_no 
FROM <http://microbedb.jp/mbgd/>
WHERE
{
  ?group rdfs:label "sigB"^^xsd:string ;
    a orth:OrthologGroup ;
    orth:member ?member .
  ?member mbgd:gene ?gene ;
    mbgd:organism ?organism .
  OPTIONAL { ?gene mbgd:description ?description . }
  OPTIONAL { ?gene mbgd:protein ?protein . }
  OPTIONAL { ?gene mbgd:uniprot ?uniprot . }
  OPTIONAL { ?gene mbgd:gtps ?gtps . }
}

RefSeq関連スタンザ

selectRefSeqGenomeLabel

genomeVersion 「NC_003869.1」での検索

PREFIX	insdc:	<http://insdc.org/owl/> 

SELECT ?label
FROM <http://microbedb.jp/refseq/>
WHERE
{
 ?seq_uuid insdc:sequence_version "NC_000911.1" ;
   rdfs:label ?label.
}

selectRefSeqGenomeDataByGenoVer

旧ファイル名「selectRefSeqGenomeDataByGenoVer.rq」
genomeVersion 「NC_003869.1」での検索

PREFIX	insdc:	<http://insdc.org/owl/> 
PREFIX	faldo:	<http://biohackathon.org/resource/faldo#>

SELECT ?p IF(?p = faldo:location, ?position , ?obj) as ?o ?label
FROM <http://microbedb.jp/refseq/>
FROM <http://microbedb.jp/so/>
WHERE
{
 ?seq_uuid insdc:sequence_version "NC_003869.1";
   ?p ?obj.
 OPTIONAL {?obj insdc:location ?position }
 OPTIONAL {?obj rdfs:label ?label }
}ORDER BY ?p

selectRefSeqFeatureDataByLocusTag

旧ファイル名「selectRefSeqFeatureDataByGenoVer.rq」
locusTag 「BSU04730」での検索

PREFIX	obo:	<http://purl.obolibrary.org/obo/> 
PREFIX	faldo:	<http://biohackathon.org/resource/faldo#>
PREFIX	idorg:	<http://rdf.identifiers.org/database/> 
PREFIX	insdc:	<http://insdc.org/owl/> 

SELECT ?gene_type_label ?p IF(?p = faldo:location, ?position , ?obj) as ?o ?label
FROM <http://microbedb.jp/refseq/>
FROM <http://microbedb.jp/so/>
WHERE
{
 ?gene_uuid insdc:feature_locus_tag  "BSU04730" ;
   a ?type ;
   ?p ?obj FILTER (!?p = obo:so_part_of).
 ?type rdfs:label ?gene_type_label .
 OPTIONAL {?obj insdc:location ?position }
 OPTIONAL {?obj rdfs:label ?label }
}

selectRefSeqLocusByGenoVerAndProtId

proteinID「NP_439899.1」での検索 (Orthologからのリンク)

これだけをスタンザにするのではなく、proteinIDを引数にrefseqページに渡ってきた際に、locus_tagとversionを求めて、それを元に他のスタンザを表示する。

DEFINE sql:select-option "order"

PREFIX obo: <http://purl.obolibrary.org/obo/> 
PREFIX insdc: <http://insdc.org/owl/>
PREFIX ncbiprotein: <http://identifiers.org/ncbiprotein/>

SELECT ?locus_tag ?version
FROM <http://microbedb.jp/refseq/>
WHERE
{
  ?cds ?p ncbiprotein:NP_439899.1;
    insdc:feature_locus_tag ?locus_tag ;
    obo:so_part_of/obo:so_part_of/insdc:sequence_version ?version .
}

GTPS関連スタンザ

SelectGtpsGenomeVersionByGtpsId

gtpsID 「AAEO_VF5:ST755」で検索
ここsequence versionを抽出する

prefix ddbj_item:<http://sabi.ddbj.nig.ac.jp/core/item/>
SELECT ?locus_version as ?label
FROM <http://microbedb.jp/gtps/>
WHERE 
{
 ?s rdfs:label ?o0.
 ?o0  bif:contains '"AAEO_VF5:ST755"'.
 ?s2 ?p2 ?s.
 ?s2 ddbj_item:version ?locus_version.
}

SelectGtpsGenomeDataByGtpsId

gtpsID 「AAEO_VF5:ST755」で検索

PREFIX ddbj_item:<http://sabi.ddbj.nig.ac.jp/core/item/>
SELECT ?p ?o 
FROM <http://microbedb.jp/gtps/>
WHERE 
{
  ?s rdfs:label ?o0.
  ?o0  bif:contains '"AAEO_VF5:ST755"' .
  ?s2 ?p2 ?s.
  ?s2 ?p ?o.
  FILTER (?p != ddbj_item:feature)
}


SelectGtpsFeatureDataByGtpsId

gtpsID 「AAEO_VF5:ST755」で検索

SELECT ?p ?o  
FROM <http://microbedb.jp/gtps/>
WHERE 
{
  ?s rdfs:label ?o0.
  ?o0  bif:contains '"AAEO_VF5:ST755"' .
  ?s ?p ?o.
}


SelectGtpsEnvironmentByGenomeVersion

gtpsID 「Vfis_ES114:01ST19」での検索

PREFIX ddbj_item:<http://sabi.ddbj.nig.ac.jp/core/item/>
PREFIX mccv: <http://purl.jp/bio/01/mccv#>
PREFIX meo: <http://purl.jp/bio/11/meo/>

SELECT DISTINCT ?meoid ?meolabel
FROM <http://microbedb.jp/gtps/>
FROM <http://microbedb.jp/gold/>
FROM <http://microbedb.jp/meo/>
WHERE 
{
  ?feature rdfs:label ?feature_label.
  ?feature_label bif:contains '"Vfis_ES114:01ST19"' .
  ?chromosome ddbj_item:feature ?feature .
  ?chromosome rdfs:seeAlso ?taxid .
  ?gold mccv:MCCV_000020 ?taxid .
  ?gold meo:MEO_0000437 ?meoid .
  ?meoid rdfs:label ?meolabel .
}

SelectGtpsTaxonomyTreeByGenomeVersion

gtpsID 「AAEO_VF5:ST755」での検索

PREFIX ddbj_item:<http://sabi.ddbj.nig.ac.jp/core/item/>
PREFIX taxo: <http://ddbj.nig.ac.jp/ontologies/taxonomy#>
PREFIX taxid: <http://identifiers.org/taxonomy/>

SELECT 
  REPLACE(STR(?tax) ,"http://identifiers.org/taxonomy/" ,"" ) AS ?tax_no 
  ?tax AS ?tax_link 
  ?tax_label 
  REPLACE(STR(?rank) ,"http://ddbj.nig.ac.jp/ontologies/taxonomy#" ,"" ) AS ?rank 
FROM <http://microbedb.jp/gtps/>
FROM <http://microbedb.jp/taxonomy/>
WHERE 
{
  ?feature rdfs:label ?feature_label.
  ?feature_label bif:contains '"AAEO_VF5:ST755"' .
  ?chromosome ddbj_item:feature ?feature .
  ?chromosome rdfs:seeAlso ?taxid .
  ?taxid rdfs:subClassOf ?tax OPTION (transitive, t_direction 1, t_min(0), t_step("step_no") as ?step) .
  ?tax rdfs:label ?tax_label .
  OPTIONAL { ?tax taxo:rank ?rank . }
  FILTER(?tax != taxid:1)
} ORDER BY DESC(?step)

selectLinkByGenomeVersion

gtpsID 「AAEO_VF5:ST755」での検索
selectGoldLinkByGenomeVersionの結果と合わせてlink一覧を作成する

PREFIX ddbj_item:<http://sabi.ddbj.nig.ac.jp/core/item/>
PREFIX obo:<http://purl.obolibrary.org/obo/>

SELECT DISTINCT ?xref ?label
FROM <http://microbedb.jp/gtps/>
FROM <http://microbedb.jp/refseq/>
WHERE 
{
  values ?so { obo:SO_0000340 obo:SO_0000155 }
  ?feature rdfs:label ?feature_label.
  ?feature_label bif:contains '"AAEO_VF5:ST755"' .
  ?chromosome ddbj_item:feature ?feature .
  ?chromosome rdfs:seeAlso ?taxid .
  ?seq rdfs:seeAlso ?taxid .
  ?seq a ?so .
  ?seq rdfs:seeAlso ?xref .
  ?xref rdfs:label ?label .
}

selectGoldLinkByGenomeVersion

genomeVersion 「NC_003869.1」での検索
※GTPSで使用されているGenomeVersion(CP000512.1)とtaxを紐付けるデータを作成後、書き直し

PREFIX ddbj_item:<http://sabi.ddbj.nig.ac.jp/core/item/>
PREFIX mccv: <http://purl.jp/bio/01/mccv#>

SELECT DISTINCT "GOLD" AS ?link_type ?gold AS ?link 
FROM <http://microbedb.jp/gtps/>
FROM <http://microbedb.jp/gold/>
WHERE 
{
  ?feature rdfs:label ?feature_label.
  ?feature_label bif:contains '"AAEO_VF5:ST755"' .
  ?chromosome ddbj_item:feature ?feature .
  ?chromosome rdfs:seeAlso ?taxid .
  ?gold mccv:MCCV_000020 ?taxid .
}

selectOrthologByGtpsId

?proteinはMDBのrefseqのページにリンク
?gtps_noはMDBのgtpsのページにリンク
?groupはMDBのorthologのページにリンク
それ以外は別タグで外部ページへリンク(?descriptionを除く)

PREFIX orth: <http://mbgd.genome.ad.jp/owl/ortholog.owl#>
PREFIX mbgd: <http://mbgd.genome.ad.jp/owl/mbgd.owl#>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX insdc: <http://insdc.org/owl/>

SELECT
  ?gene ?organism ?description ?group
  REPLACE(STR(?protein), "http://www.ncbi.nlm.nih.gov/protein/", "") AS ?protein_no 
  ?uniprot
  REPLACE(STR(?gtps), "http://gtps.ddbj.nig.ac.jp/feature/", "") AS ?gtps_no 
FROM <http://microbedb.jp/mbgd/>
WHERE
{
  ?refmember mbgd:gene/mbgd:gtps <http://gtps.ddbj.nig.ac.jp/feature/Aaeo_VF5:ST119> .
  ?group orth:member ?refmember, ?member ;
    a orth:OrthologGroup .
  ?member mbgd:gene ?gene ;
    mbgd:organism ?organism .
  OPTIONAL { ?gene mbgd:description ?description . }
  OPTIONAL { ?gene mbgd:protein ?protein . }
  OPTIONAL { ?gene mbgd:uniprot ?uniprot . }
  OPTIONAL { ?gene mbgd:gtps ?gtps . }
}

Taxonomy関連スタンザ

searchTaxonomyFromNCBItaxOwlByFreeText

searchText「Streptococcus glycerinaceus」で検索

PREFIX taxo: <http://ddbj.nig.ac.jp/ontologies/taxonomy#>
PREFIX taxid: <http://identifiers.org/taxonomy/>

SELECT ?taxid ?scientificName (sql:GROUP_DIGEST(?names, ', ', 1000, 1)) AS ?other_names
FROM <http://microbedb.jp/taxonomy/>
WHERE
{
  {
    SELECT DISTINCT ?taxid
    {
      ?taxid ?p ?name .
      ?p rdfs:subPropertyOf taxo:name .
      ?name bif:contains '"Streptococcus" AND "glycerinaceus"' .
    }
  }
  ?taxid taxo:scientificName ?scientificName .
  ?taxid ?name_property ?names .
  ?name_property rdfs:subPropertyOf taxo:name .
}

selectTaxonomyNameFromTaxId

taxonomyID「1148」で検索

PREFIX taxo: <http://ddbj.nig.ac.jp/ontologies/taxonomy#>
PREFIX taxid: <http://identifiers.org/taxonomy/>

SELECT  ?name
FROM <http://microbedb.jp/taxonomy/>
WHERE 
{
 taxid:1148 taxo:scientificName ?name
}

GenomeInformationFromTaxId

DEFINE sql:select-option "order"
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX insdc: <http://insdc.org/owl/>
PREFIX idorg: <http://rdf.identifiers.org/database/>
PREFIX idtax: <http://identifiers.org/taxonomy/>

SELECT  ?bioproject ?bioproject_id ?refseq_version ?desc ?replicon_type ?sequence_length
 count(?gene_locus_tag) as ?gene_cnt
 count(?trna_locus_tag) as ?trna_cnt
 count(?rrna_locus_tag) as ?rrna_cnt
 count(?other_locus_tag) as ?other_cnt
FROM <http://microbedb.jp/refseq/>
FROM <http://microbedb.jp/so/>
WHERE
{
  ?seq rdfs:seeAlso idtax:1148 ;
    rdfs:label ?desc ;
    rdfs:seeAlso ?bioproject ;
    insdc:sequence_version ?refseq_version ;
    insdc:sequence_length ?sequence_length ;
    rdfs:seeAlso ?refseq_link ;
    a ?so FILTER (?so =  obo:SO_0000340 || ?so = obo:SO_0000155) .
  ?so rdfs:label ?replicon_type .
  ?bioproject a idorg:BioProject ;
    rdfs:label ?bioproject_id .
  ?refseq_link a idorg:RefSeq .
  {
    ?gene obo:so_part_of ?seq ;
      a obo:SO_0000704 ;
      insdc:feature_locus_tag ?gene_locus_tag .
  }
  UNION
  {
    ?trna obo:so_part_of ?seq ;
      a obo:SO_0000253 ;
    insdc:feature_locus_tag ?trna_locus_tag .
  }
  UNION
  {
    ?rrna obo:so_part_of ?seq ;
      a obo:SO_0000252 ;
      insdc:feature_locus_tag ?rrna_locus_tag .
  }
  UNION
  {
    ?other obo:so_part_of ?seq ;
      a ?obotype ;
      insdc:feature_locus_tag ?other_locus_tag
        FILTER (?obotype != obo:SO_0000704 && ?obotype != obo:SO_0000253 && ?obotype != obo:SO_0000252) .
  }
}

selectTaxonomyTreeFromTaxId

taxonomyID「1148」で検索 TogoStanza側クエリ

PREFIX taxo: <http://ddbj.nig.ac.jp/ontologies/taxonomy#>
PREFIX taxid: <http://identifiers.org/taxonomy/>

SELECT
 REPLACE(STR(?tax) ,"http://identifiers.org/taxonomy/" ,"" ) AS ?tax_no
 ?tax AS ?tax_link
 ?tax_label
 REPLACE(STR(?rank) ,"http://ddbj.nig.ac.jp/ontologies/taxonomy#" ,"" ) AS ?rank
FROM <http://microbedb.jp/taxonomy/>
WHERE
{
  ?search_tax rdfs:label ?o FILTER (?search_tax = taxid:1148 ) .
  ?search_tax rdfs:subClassOf ?tax OPTION (transitive, t_direction 1, t_min(0), t_step("step_no") as ?step) .
  ?tax rdfs:label ?tax_label .
  OPTIONAL { ?tax taxo:rank ?rank . }
  FILTER(?tax != taxid:1)
} ORDER BY DESC(?step)	

selectStrainNbrcFromTaxId

taxonomyID「228599」で検索 Taxonomy related のラベルはa=""name by NCBI" b1="name by sequence" b2="name by DB link" c="name by text matching"

PREFIX mccv: <http://purl.jp/bio/01/mccv#>
PREFIX taxid: <http://identifiers.org/taxonomy/>

SELECT ?strain_id ?strain_number ?strain_name ?isolated_from ?opt_temp ?min_temp ?max_temp ?application ?taxid_a ?taxid_b1 ?taxid_b2 ?taxid_c
FROM <http://microbedb.jp/mccv/>
FROM <http://microbedb.jp/brc/>
WHERE 
{
  { SELECT DISTINCT ?strain_id
    {
      VALUES ?related_type  { mccv:MCCV_000056 mccv:MCCV_000022 mccv:MCCV_000057 mccv:MCCV_000023}
      ?strain_id ?related_type  taxid:228599 .
    }
  }
  OPTIONAL { ?strain_id mccv:MCCV_000010 ?strain_number . }
  OPTIONAL { ?strain_id mccv:MCCV_000012 ?strain_name . }
  OPTIONAL { ?strain_id mccv:MCCV_000030 ?isolated_from . }
  OPTIONAL { ?strain_id mccv:MCCV_000014 ?opt_temp . }
  OPTIONAL { ?strain_id mccv:MCCV_000015 ?min_temp . }
  OPTIONAL { ?strain_id mccv:MCCV_000016 ?max_temp . }
  OPTIONAL { ?strain_id mccv:MCCV_000033 ?application . }
  OPTIONAL { ?strain_id mccv:MCCV_000056 ?taxid_a FILTER (STRSTARTS(STR(?taxid_a), "http://identifiers.org")) . }
  OPTIONAL { ?strain_id mccv:MCCV_000022 ?taxid_b1 FILTER (STRSTARTS(STR(?taxid_b1), "http://identifiers.org")) . }
  OPTIONAL { ?strain_id mccv:MCCV_000057 ?taxid_b2 FILTER (STRSTARTS(STR(?taxid_b2), "http://identifiers.org")) . }
  OPTIONAL { ?strain_id mccv:MCCV_000023 ?taxid_c FILTER (STRSTARTS(STR(?taxid_c), "http://identifiers.org")) . }
}

BodyParts3D

FMAマッピング後のクエリ

DEFINE sql:select-option "order"

PREFIX fma: <http://sig.uw.edu/fma#>
PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX taxid: <http://identifiers.org/taxonomy/>

SELECT ?meo_id ?bodyparts_label ?fma_id AVG(?hit_value) AS ?value  
FROM <http://microbedb.jp/meta16S_human/>
FROM <http://microbedb.jp/meta16S_env/>
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/meo/>
FROM <http://microbedb.jp/fma/>
WHERE
{
  ?srs meo:MEO_0000429 ?blank .
  ?blank ?p taxid:1301 .
  ?blank meo:MEO_0000430 ?hit_value .
  ?srs meo:MEO_0000440 ?meo_id .
  ?meo_id rdfs:label ?bodyparts_label .
  OPTIONAL
  {
    ?meo_id ?p_body_match ?fma FILTER (?p_body_match IN(msv:exactMatch, msv:nearlyLocated)) .
    ?fma fma:FMAID ?fma_id .
  }
} GROUP BY ?meo_id ?bodyparts_label ?fma_id ORDER BY DESC 4

カラーレンジは は0.0(青) 0.1(赤)
fma_idが空白のものは、BodyParts3Dにはデータがないので、名称の後ろにMilk(unvisualized) と明記して、チェックボックスをdisable状態にする
meo_idは今のところ使用しない

phenotype_information

TOGOStanza側クエリ

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX idtax: <http://purl.uniprot.org/taxonomy/>
 
SELECT ?mpo ?phenotype (GROUP_CONCAT(?value; SEPARATOR = " , ") AS ?value)
FROM <http://microbedb.jp/mpo/>
FROM <http://microbedb.jp/gold/>
WHERE 
{
  idtax:383372 ?mpo ?o .
  ?mpo rdfs:label ?phenotype .
  FILTER (lang(?phenotype) = "en") .
  OPTIONAL 
  {
    ?o rdfs:label ?o2 .
    FILTER (lang(?o2) = "en") .
  }
  BIND( IF(bound(?o2) ,?o2 , ?o) as ?value )
} GROUP BY ?mpo ?phenotype ORDER BY ?mpo

pathogen_information

TOGOStanza側クエリ
taxidはMDBへリンクを貼る

PREFIX pdo: <http://purl.jp/bio/11/pdo/>
PREFIX taxid: <http://identifiers.org/taxonomy/>

SELECT REPLACE(STR(?tax_id),"http://identifiers.org/taxonomy/","") AS ?tax_no
 ?bacterialName (GROUP_CONCAT(?diseaseName; SEPARATOR = ", ") AS ?diseaseNameSet) ?infectiousType ?strainType
FROM <http://microbedb.jp/pdo/>
FROM <http://microbedb.jp/pdo_mapping/>
FROM <http://microbedb.jp/taxonomy/>
WHERE
{
  { ?tax_id rdfs:subClassOf+ taxid:1763 }
  UNION
  { ?tax_id rdfs:label ?o FILTER (?tax_id = taxid:1763) }
  ?tax_id rdfs:label ?bacterialName ;
    pdo:isAssociatedTo ?blank .
  ?blank ?p ?disease FILTER (?p IN(pdo:mayCaused, pdo:isRelatedTo)).
  ?disease rdfs:label ?diseaseName .
  OPTIONAL { ?tax_id pdo:isAssociatedTo/pdo:infectiousType ?infectiousType . }
  OPTIONAL { ?tax_id pdo:isAssociatedTo/pdo:strainType ?strainType . }
}

taxon_cross_referencee

TOGOStanza側クエリ

PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX  insdc: <http://insdc.org/owl/>
PREFIX  idtax: <http://identifiers.org/taxonomy/>

SELECT DISTINCT ?label ?xref
FROM <http://microbedb.jp/refseq/>
WHERE
{
  values ?tax_id { idtax:1148 }
  values ?so { obo:SO_0000340 obo:SO_0000155 }
  ?seq rdfs:seeAlso ?tax_id .
  ?seq a ?so .
  ?seq rdfs:seeAlso ?xref .
  ?xref rdfs:label ?label .
} ORDER BY ?label
  • GOLDを取得
PREFIX mccv: <http://purl.jp/bio/01/mccv#>
PREFIX  idtax: <http://identifiers.org/taxonomy/>
 
SELECT REPLACE(str(?gold),"http://www.genomesonline.org/cgi-bin/GOLD/GOLDCards.cgi\\?goldstamp=", "GOLD:" ) as ?label ?gold as ?link 
FROM <http://microbedb.jp/gold/>
WHERE 
{
  ?gold mccv:MCCV_000020 idtax:1148 .
}

environment_composition_via_16S

まずtaxidで該当データがあるか調べる。

DEFINE sql:select-option "order"
PREFIX meo:<http://purl.jp/bio/11/meo/>
PREFIX taxid:<http://identifiers.org/taxonomy/>

SELECT COUNT(?srs)
FROM <http://microbedb.jp/meta16S_human/>
FROM <http://microbedb.jp/meta16S_env/>
WHERE
{
  VALUES ?srs_tax {meo:MEO_0000436 meo:MEO_0000435 meo:MEO_0000434 meo:MEO_0000433 meo:MEO_0000432 meo:MEO_0000431} 
  ?blank ?srs_tax taxid:2 .
  ?srs meo:MEO_0000429 ?blank .
}

上記クエリで該当データがなければ、Taxonomy上位層(genus)のデータがあるか検索する。
上位層でもヒットしなければNo dataとして扱い、ヒットすれば以下の但し書きをグラフ上部につけて表示。
Displaying the graph of genus level taxonomy. [ Streptosporangium(=?tax_label) ] ?tax_noでMDBへリンクを貼る

DEFINE sql:select-option "order"
PREFIX taxo: <http://ddbj.nig.ac.jp/ontologies/taxonomy#>
PREFIX taxid: <http://identifiers.org/taxonomy/>
PREFIX meo:<http://purl.jp/bio/11/meo/>

SELECT DISTINCT
 REPLACE(STR(?tax) ,"http://identifiers.org/taxonomy/" ,"" ) AS ?tax_no
 ?tax AS ?tax_link
 ?tax_label
 REPLACE(STR(?rank) ,"http://ddbj.nig.ac.jp/ontologies/taxonomy#" ,"" ) AS ?rank
FROM <http://microbedb.jp/taxonomy/>
FROM <http://microbedb.jp/meta16S_human/>
FROM <http://microbedb.jp/meta16S_env/>
WHERE
{
  taxid:251778 rdfs:subClassOf+ ?tax .
  ?blank meo:MEO_0000431 ?tax . 
  ?tax rdfs:label ?tax_label .
  OPTIONAL { ?tax taxo:rank ?rank . }
}


taxid "2"で検索

DEFINE sql:select-option "order"

PREFIX meo:<http://purl.jp/bio/11/meo/>
PREFIX taxid:<http://identifiers.org/taxonomy/>

SELECT ?second_rank_env ?env_label SUM(?hit)
FROM <http://microbedb.jp/meta16S_human/>
FROM <http://microbedb.jp/meta16S_env/>
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/meo/>
WHERE
{
  VALUES ?srs_tax {meo:MEO_0000436 meo:MEO_0000435 meo:MEO_0000434 meo:MEO_0000433 meo:MEO_0000432 meo:MEO_0000431} 
  VALUES ?p_env { meo:MEO_0000437 meo:MEO_0000440 }
  ?blank ?srs_tax taxid:2 .
  ?blank meo:MEO_0000430 ?hit .
  ?srs meo:MEO_0000429 ?blank .
  ?srs ?p_env ?env .
  ?env rdfs:subClassOf* ?second_rank_env .
  ?second_rank_env meo:MEO_0000442 "2".
  ?second_rank_env rdfs:label ?env_label
} GROUP BY ?second_rank_env ?env_label ORDER BY DESC 3

各環境下におけるサンプルの数が違うため、補正を掛ける。
以下結果の各行(rate/rateの合計)が補正係数になるので、上のクエリのSUM(?hit)に掛ける。

DEFINE sql:select-option "order"
PREFIX meo:<http://purl.jp/bio/11/meo/>

SELECT ?second_rank_env SUM(?env_gravity) AS ?rate
FROM <http://microbedb.jp/meo/>
FROM <http://microbedb.jp/meta16S_human/>
FROM <http://microbedb.jp/meta16S_env/>
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/srs/meo_normalize/>
WHERE
{
  VALUES ?p_env { meo:MEO_0000437 meo:MEO_0000440 }
  ?second_rank_env meo:MEO_0000442 "2".
  ?env rdfs:subClassOf* ?second_rank_env .
  ?srs ?p_env ?env .
  ?srs meo:srs_normalize ?env_gravity .
  ?srs meo:MEO_0000429 ?blank .
} GROUP BY ?second_rank_env

Environment関連スタンザ

searchEnvironmentFromMeoOwlByFreeText

"hot spring"で検索

DEFINE sql:select-option "order"
PREFIX meo:<http://purl.jp/bio/11/meo/> 

SELECT
 REPLACE(STR(?meo),"http://purl.jp/bio/11/meo/","") AS ?meo_no
 ?label
 ?definition
 GROUP_CONCAT(?synonym; SEPARATOR = ", ") AS ?synonyms
FROM <http://microbedb.jp/meo/> 
WHERE
{
  {
    SELECT DISTINCT ?meo
    {
      ?meo ?p ?text FILTER (?p IN(rdfs:label, meo:MEO_0000443, meo:MEO_0000775, meo:MEO_0000776, meo:MEO_0000777, meo:MEO_0000778)).
      ?text bif:contains '"hot" AND "spring"' .
    }
  }
  OPTIONAL { ?meo rdfs:label ?label }
  OPTIONAL { ?meo meo:MEO_0000443 ?definition }
  OPTIONAL { ?meo ?synonym_p ?synonym FILTER (?synonym_p IN(meo:MEO_0000775, meo:MEO_0000776, meo:MEO_0000777, meo:MEO_0000778)).}
} GROUP BY ?meo ?label ?definition

environment_attributes

"MEO_0000029"で検索
?meo_superclass_term_labelに?meo_superclass_idでリンクを貼る(MDBのenvironmentページへ)

DEFINE sql:select-option "order"
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX meo: <http://purl.jp/bio/11/meo/>

SELECT 
 REPLACE(STR(?meo_id),"http://purl.jp/bio/11/meo/","") AS ?meo_no ?meo_term_label ?meo_definition 
 REPLACE(STR(?meo_superclass_id),"http://purl.jp/bio/11/meo/","") AS ?meo_superclass_no ?meo_superclass_term_label
 (sql:GROUP_DIGEST(?broad_synonym, ', ', 1000, 1)) AS ?broad_synonyms
 (sql:GROUP_DIGEST(?exact_synonym, ', ', 1000, 1)) AS ?exact_synonyms
 (sql:GROUP_DIGEST(?narrow_synonym, ', ', 1000, 1)) AS ?narrow_synonyms
 (sql:GROUP_DIGEST(?related_synonym, ', ', 1000, 1)) AS ?related_synonyms
FROM <http://microbedb.jp/meo/>
WHERE
{
  meo:MEO_0000029 rdfs:label ?meo_term_label .
  ?meo_id rdfs:label ?meo_term_label .
  OPTIONAL { ?meo_id meo:MEO_0000443 ?meo_definition . }
  OPTIONAL 
  { 
    ?meo_id rdfs:subClassOf ?meo_superclass_id . 
    ?meo_superclass_id rdfs:label ?meo_superclass_term_label .
  }
  OPTIONAL { ?meo_id meo:MEO_0000775 ?broad_synonym . }
  OPTIONAL { ?meo_id meo:MEO_0000776 ?exact_synonym . }
  OPTIONAL { ?meo_id meo:MEO_0000777 ?narrow_synonym . }
  OPTIONAL { ?meo_id meo:MEO_0000778 ?related_synonym . }
} GROUP BY ?meo_id ?meo_term_label ?meo_definition ?meo_superclass_id ?meo_superclass_term_label

meta16s_sample_list

"MEO_0000029"で検索
?srs_noでMDBのサンプルページへのリンクを貼る(ttp://microbedb.jp/MDB/sample/?sampleid=SRSNNNNN)

DEFINE sql:select-option "order"
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>
PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX msv: <http://purl.jp/bio/11/msv/>

SELECT
 REPLACE(STR(?srs_id), "http://www.ncbi.nlm.nih.gov/sra/", "") AS ?srs_no 
 ?srs_id ?title ?name 
 (GROUP_CONCAT(?meo_label ; SEPARATOR = ", ")AS ?environment)
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/srs_metadata/>
FROM <http://microbedb.jp/meo/>
FROM <http://microbedb.jp/taxonomy/>
WHERE
{
  VALUES ?meo_mapping { meo:MEO_0000437 meo:MEO_0000440 }
  {
    SELECT DISTINCT ?srs_id 
    WHERE
    {
      ?meo_id rdfs:subClassOf* meo:MEO_0000029 .
      ?srs_id ?meo_mapping ?meo_id .
      ?srs_id msv:investigationType "meta 16S" .
    }
  }
  OPTIONAL { ?srs_id msv:sampleTitle ?title . }
  OPTIONAL { ?srs_id msv:scientificName ?name . }
  OPTIONAL 
  {
    ?srs_id ?meo_mapping ?meo .
    ?meo rdfs:label ?meo_label .
  }
}GROUP BY ?srs_id ?title ?name 

meta16s_taxonomy_compositon

オントロジー検索をした場合に速度が出ないため、予め集計結果のグラフを作成する。 集計データ作成
以下クエリは"MEO_0000029"、rank"MEO_0000434"で検索
ランク毎にSPARQLを発行して値を取り、GoogleChartで円グラフを描画する
meo:MEO_0000436(Domain 単位)集計)
meo:MEO_0000435(Phylum 単位)集計)
meo:MEO_0000434(Class 単位)集計)
meo:MEO_0000433(Order 単位)集計)
meo:MEO_0000432(Family 単位)集計)
meo:MEO_0000431(Genus 単位)集計)

DEFINE sql:select-option "order"
PREFIX meo:<http://purl.jp/bio/11/meo/>

SELECT ?tax_id ?label ?tax_cnt
FROM <http://microbedb.jp/meta16S_env_ontology/> 
FROM <http://microbedb.jp/meta16S_human_ontology/>
FROM <http://microbedb.jp/taxonomy/>
WHERE
{
  meo:MEO_0000029 meo:tax_comp_via16s_ontology ?blank .
  ?blank meo:MEO_0000434 ?tax_id .
  ?blank meo:comp_sum ?tax_cnt .
  ?tax_id rdfs:label ?label .
} ORDER BY DESC 3

metagenome_sample_list

"MEO_0000054"で検索
?srs_noでMDBのサンプルページへのリンクを貼る(ttp://microbedb.jp/MDB/sample/?sampleid=SRSNNNNN)

DEFINE sql:select-option "order"
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>
PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX msv: <http://purl.jp/bio/11/msv/>

SELECT
 REPLACE(STR(?srs_id), "http://www.ncbi.nlm.nih.gov/sra/", "") AS ?srs_no 
 ?srs_id ?title ?name 
 (GROUP_CONCAT(?meo_label ; SEPARATOR = ", ")AS ?environment)
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/srs_metadata/>
FROM <http://microbedb.jp/meo/>
FROM <http://microbedb.jp/taxonomy/>
WHERE
{
  VALUES ?meo_mapping { meo:MEO_0000437 meo:MEO_0000440 }
  {
    SELECT DISTINCT ?srs_id 
    WHERE
    {
      ?meo_id rdfs:subClassOf* meo:MEO_0000054 .
      ?srs_id ?meo_mapping ?meo_id .
      ?srs_id msv:investigationType "metagenome" .
    }
  }
  OPTIONAL { ?srs_id msv:sampleTitle ?title . }
  OPTIONAL { ?srs_id msv:scientificName ?name . }
  OPTIONAL 
  {
    ?srs_id ?meo_mapping ?meo .
    ?meo rdfs:label ?meo_label .
  }
}GROUP BY ?srs_id ?title ?name 

selectGoldByEnvId

meoID「MEO_0000004」で検索

?goldは別タグリンクを貼る。項目名はIDとEnvironments。

PREFIX mccv: <http://purl.jp/bio/01/mccv#>
PREFIX meo: <http://purl.jp/bio/11/meo/>

SELECT ?gold REPLACE(STR(?gold) ,"http://www.genomesonline.org/cgi-bin/GOLD/GOLDCards.cgi\\?goldstamp=" ,"" ) AS ?gold_no 
  (GROUP_CONCAT(?meo_label ; SEPARATOR = ", ")AS ?environment)
FROM <http://microbedb.jp/gold/>
FROM <http://microbedb.jp/meo/>
{
  VALUES ?meo_mapping { meo:MEO_0000437 meo:MEO_0000440 }
  ?meo_id rdfs:subClassOf* meo:MEO_0000004 .
  ?gold ?meo_mapping ?meo_id .
  ?meo_id rdfs:label ?meo_label
} GROUP BY ?gold

selectTaxCompsitionByEnvIdViaGold

"MEO_0000004"、rank"Superkingdom"で検索
以下の6つのランクのSPARQLを投げ、帰ってきた結果を元に、GoogleChartで円グラフを描画する
Superkingdom、Phylum、Class、Order、Family、Genus

DEFINE sql:select-option "order"
PREFIX mccv: <http://purl.jp/bio/01/mccv#>
PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX taxo: <http://ddbj.nig.ac.jp/ontologies/taxonomy#>
PREFIX taxid: <http://identifiers.org/taxonomy/>

SELECT ?parent_tax ?tax_label count(?parent_tax) AS ?cnt 
FROM <http://microbedb.jp/gold/>
FROM <http://microbedb.jp/meo/>
FROM <http://microbedb.jp/gold/>
FROM <http://microbedb.jp/taxonomy/>
WHERE 
{
  {
    SELECT DISTINCT ?gold ?taxid
    {
      VALUES ?meo_mapping { meo:MEO_0000437 meo:MEO_0000440 }
      ?meo_id rdfs:subClassOf* meo:MEO_0000004 .
      ?gold ?meo_mapping ?meo_id .
      ?gold mccv:MCCV_000020 ?taxid FILTER (STRSTARTS(STR(?taxid), "http://identifiers.org/taxonomy" )).
    }
  }
  ?taxid rdfs:subClassOf* ?parent_tax .
  ?parent_tax taxo:rank taxo:Superkingdom .
  ?parent_tax rdfs:label ?tax_label
}GROUP BY ?parent_tax ?tax_label ORDER BY DESC 3

environment_strain_list

"MEO_0000029"で検索
画面の仕様はsearch_strain_listと同様。Taxonomy related のラベルはa=""name by NCBI" b1="name by sequence" b2="name by DB link" c="name by text matching"

DEFINE sql:select-option "order"

PREFIX mccv: <http://purl.jp/bio/01/mccv#>
PREFIX meo: <http://purl.jp/bio/11/meo/>

SELECT ?strain_id ?strain_number ?strain_name ?isolated_from ?opt_temp ?min_temp ?max_temp ?application ?taxid_a ?tax_label_a ?taxid_b1 ?tax_label_b1 ?taxid_b2 ?tax_label_b2 ?taxid_c ?tax_label_c
FROM <http://microbedb.jp/brc/>
FROM <http://microbedb.jp/meo/>
FROM <http://microbedb.jp/taxonomy/>
{
  {
    SELECT DISTINCT (?strain) as ?strain_id
    {
      VALUES ?meo_mapping { mccv:MCCV_000059 mccv:MCCV_000060 }
      ?meo_id rdfs:subClassOf* meo:MEO_0000029 .
      ?strain ?meo_mapping ?meo_id.
      ?strain rdf:type mccv:MCCV_000001.
    }
  }
  OPTIONAL { ?strain_id mccv:MCCV_000010 ?strain_number . }
  OPTIONAL { ?strain_id mccv:MCCV_000012 ?strain_name . }
  OPTIONAL { ?strain_id mccv:MCCV_000030 ?isolated_from . }
  OPTIONAL { ?strain_id mccv:MCCV_000014 ?opt_temp . }
  OPTIONAL { ?strain_id mccv:MCCV_000015 ?min_temp . }
  OPTIONAL { ?strain_id mccv:MCCV_000016 ?max_temp . }
  OPTIONAL { ?strain_id mccv:MCCV_000033 ?application . }
  OPTIONAL { ?strain_id mccv:MCCV_000056 ?taxid_a FILTER (STRSTARTS(STR(?taxid_a), "http://identifiers.org")) . ?taxid_a rdfs:label ?tax_label_a . }
  OPTIONAL { ?strain_id mccv:MCCV_000022 ?taxid_b1 FILTER (STRSTARTS(STR(?taxid_b1), "http://identifiers.org")) . ?taxid_b1 rdfs:label ?tax_label_b1 . }
  OPTIONAL { ?strain_id mccv:MCCV_000057 ?taxid_b2 FILTER (STRSTARTS(STR(?taxid_b2), "http://identifiers.org")) . ?taxid_b2 rdfs:label ?tax_label_b2 . }
  OPTIONAL { ?strain_id mccv:MCCV_000023 ?taxid_c FILTER (STRSTARTS(STR(?taxid_c), "http://identifiers.org")) . ?taxid_c rdfs:label ?tax_label_c . }
}

MeoOntologyViewer

PREFIX meo: <http://purl.jp/bio/11/meo/>

SELECT ?meo_id ?label ?definition ?parent 
FROM <http://microbedb.jp/meo/>
WHERE 
{
 ?meo_id a owl:Class .
 OPTIONAL {?meo_id rdfs:label ?label}
 OPTIONAL {?meo_id meo:MEO_0000443 ?definition}
 OPTIONAL {?meo_id rdfs:subClassOf ?parent}
}

Environment linage

”MEO_0000029"の系統」
上位層と下位層をつなげて、選択Environmentの背景色を変える。
work4のtaxonomy_linage(or organism_information)を参照
上位層

PREFIX meo: <http://purl.jp/bio/11/meo/>

SELECT REPLACE(STR(?meo), "http://purl.jp/bio/11/meo/", "") AS ?meo_no ?meo_label
FROM <http://microbedb.jp/meo/>
WHERE
{
  ?search_meo rdfs:label ?o FILTER (?search_meo = meo:MEO_0000029 ) .
  ?search_meo rdfs:subClassOf ?meo OPTION (transitive, t_direction 1, t_min(0), t_step("step_no") as ?step) .
  ?meo rdfs:label ?meo_label .
} ORDER BY DESC(?step)

下位層

PREFIX meo: <http://purl.jp/bio/11/meo/>

SELECT REPLACE(STR(?meo), "http://purl.jp/bio/11/meo/", "") AS ?meo_no ?meo_label
FROM <http://microbedb.jp/meo/>
WHERE
{
  ?search_meo rdfs:label ?o FILTER (?search_meo = meo:MEO_0000029 ) .
  ?meo rdfs:subClassOf ?search_meo .
  ?meo rdfs:label ?meo_label .
}

Environmental ortholog

「MEO_0000029(hot spring)」環境のOrtholog一覧とヒット率。

DEFINE sql:select-option "order"
PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX mbgd: <http://mbgd.genome.ad.jp/owl/mbgd.owl#>

SELECT ?ortholog STR(?ortholog_label) AS ?label STR(?ortholog_description) AS ?description SUM(?ortholog_cnt) AS ?hit_count
FROM <http://microbedb.jp/srs_ortholog_human/>
FROM <http://microbedb.jp/srs_ortholog_env/>
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/mbgd/>
WHERE
{
  VALUES ?p_env { meo:MEO_0000437 meo:MEO_0000440 }
  ?srs_id ?p_env meo:MEO_0000029 .
  ?srs_id msv:containedOrtholog ?blank .
  ?blank msv:assignedMBGDOrtholog ?ortholog .
  ?blank msv:MBGDOrthologCount ?ortholog_cnt .
  OPTIONAL { ?ortholog mbgd:description ?ortholog_description . }
  OPTIONAL { ?ortholog rdfs:label ?ortholog_label . }
} GROUP BY ?ortholog ?ortholog_label ?ortholog_description ORDER BY DESC 4

Sample関連スタンザ

sample_definition_info

sample_metadata_info

ラベルが同じ場合は一行にまとめて出力。各要素は改行する
"taxon ID"があれば、MDBのTaxonomyページへリンクさせる

PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>
SELECT ?metadata_category AS ?category CONCAT(?metadata_value, ?units) AS ?values

FROM <http://microbedb.jp/srs_metadata/>
FROM <http://microbedb.jp/msv/>
WHERE
{
  srs:ERS000862 ?msv_term ?blank FILTER (!?msv_term IN (msv:hasSRPID, msv:hasSRAID, msv:hasSRRID, msv:hasSRPID, msv:hasSRXID, msv:hasPubMedID)).
  ?msv_term rdfs:label ?label .
  OPTIONAL
  {
    ?blank msv:value ?value .
    ?blank msv:units ?units .
  }
  OPTIONAL
  {
    ?blank msv:tag ?tag .
  }
  BIND ( COALESCE ( ?tag, ?label ) AS ?metadata_category )
  BIND ( COALESCE ( ?value, ?blank ) AS ?metadata_value )
}ORDER BY ( ?metadata_category )

sample_taxonomy_composition_16s

sampleid"SRS004231",rank"MEO_0000434"で検索。
ランク毎にSPARQLを発行して値を取り、GoogleChartで円グラフを描画する
meo:MEO_0000436(Domain 単位)集計)
meo:MEO_0000435(Phylum 単位)集計)
meo:MEO_0000434(Class 単位)集計)
meo:MEO_0000433(Order 単位)集計)
meo:MEO_0000432(Family 単位)集計)
meo:MEO_0000431(Genus 単位)集計)

?tax_noでMDBのtaxonomyページへのリンクを貼る

PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>
PREFIX meo:<http://purl.jp/bio/11/meo/>

SELECT REPLACE(STR(?tax),"http://identifiers.org/taxonomy/","") AS ?tax_no ?label ?tax_cnt
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/meta16S_env/>
FROM <http://microbedb.jp/meta16S_human/>
FROM <http://microbedb.jp/taxonomy/>
{
  {
    SELECT
      ?tax SUM(?count) AS ?tax_cnt
    WHERE
    {
      ?srs meo:MEO_0000429 ?blank FILTER(?srs = srs:SRS004231) .
      ?blank meo:MEO_0000434 ?tax FILTER (STRSTARTS(STR(?tax), "http://identifiers.org/taxonomy/")).
      ?blank meo:MEO_0000430 ?count.
    } GROUP BY ?tax
  }
  ?tax rdfs:label ?label
}ORDER BY DESC 2

sample_taxonomy_composition_metagenome

sampleid"SRS150404",rank"Superkingdom"で検索。
ランク毎にSPARQLを発行して値を取り、GoogleChartで円グラフを描画する
Superkingdom、Phylum、Class、Order、Family、Genus

?tax_noでMDBのtaxonomyページへのリンクを貼る

PREFIX meo: <http://purl.jp/bio/11/meo/> 
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/> 
PREFIX taxo: <http://ddbj.nig.ac.jp/ontologies/taxonomy#>

SELECT ?parent_tax ?tax_label sum(xsd:double(?sum)) as ?count
FROM <http://microbedb.jp/metagenome_tax_mapping/> 
FROM <http://microbedb.jp/taxonomy/>
WHERE 
{
  srs:SRS150404 meo:mapSum ?blank. 
  ?blank meo:taxonomy ?tax_id; 
  meo:mappedReadsSum ?sum.
  ?tax_id rdfs:subClassOf* ?parent_tax .
  ?parent_tax taxo:rank taxo:Superkingdom .
  ?parent_tax rdfs:label ?tax_label
} GROUP BY ?parent_tax ?tax_label ORDER BY DESC 3

sample_cross_reference

テーブル形式で、SRS IDで一行、PUBMED IDで一行として、各要素はカンマ区切りで羅列。
最後のスラッシュより後ろの文字列を表示し、リンクを貼る
一部URLがないものは後日削除

PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>

SELECT ?type ?link 
FROM <http://microbedb.jp/srs_metadata/>
WHERE
{
  {
    VALUES ?id_mapping { msv:hasSRPID msv:hasSRAID msv:hasSRRID msv:hasSRXID msv:hasSRRID }
    srs:ERS000862 ?id_mapping ?link . 
    BIND ("SRS ID" AS ?type) .
  }
  UNION
  { 
    srs:ERS000862 msv:hasPubMedID ?link .
    BIND ("PUBMED ID" AS ?type) .
  }
}

sample_temperature_list

Environmentページで表示するべきか?

PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>

SELECT ?srs_id ?value ?units
FROM <http://microbedb.jp/srs_metadata/>
WHERE
{
  ?srs_id msv:temperature ?blank .
  ?blank msv:value ?value .
  ?blank msv:units ?units .
} ORDER BY ?value

sample_temperature_chart

PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>

SELECT ?srs_id ?value ?units
FROM <http://microbedb.jp/srs_metadata/>
WHERE
{
  ?srs_id msv:temperature ?blank .
  ?blank msv:value ?value 
  FILTER ( datatype( ?value ) = xsd:double ) .
  ?blank msv:units ?units .
} ORDER BY ?value

sample_ph_list

Environmentページで表示するべきか?

PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>

SELECT ?srs_id ?value ?units
FROM <http://microbedb.jp/srs_metadata/>
WHERE
{
  ?srs_id msv:pH ?blank .
  ?blank msv:value ?value .
  ?blank msv:units ?units .
}

sample_ph_chart

PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>

SELECT ?srs_id ?value ?units
FROM <http://microbedb.jp/srs_metadata/>
WHERE
{
  ?srs_id msv:pH ?blank .
  ?blank msv:value ?value 
  FILTER ( datatype( ?value ) = xsd:double ) .
  ?blank msv:units ?units .
} ORDER BY ?value

numeric_metadata_histogram

msv:acetateConcentration値の内、最大使用単位のデータを抽出。

DEFINE sql:select-option "order"
PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>

SELECT ?srs_id ?value ?units
FROM <http://microbedb.jp/srs_metadata/>
WHERE
{
  {
    SELECT ?units (COUNT(?srs_id) AS ?cnt)
    WHERE
    {
      ?srs_id msv:acetateConcentration ?blank .
      ?blank msv:value ?value FILTER ( datatype( ?value ) = xsd:double ) .
      ?blank msv:units ?units .
    } GROUP BY ?units ORDER BY DESC 2 LIMIT 1
  }
  ?srs_id msv:acetateConcentration ?blank .
  ?blank msv:value ?value FILTER ( datatype( ?value ) = xsd:double ) .
  ?blank msv:units ?units .
} ORDER BY ?value

sample_function

KO

DEFINE sql:select-option "order"
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>
PREFIX ncbi_refseq: <http://www.ncbi.nlm.nih.gov/nuccore/>
PREFIX ko: <http://www.genome.jp/dbget-bin/www_bget?>
PREFIX path: <http://www.genome.jp/dbget-bin/www_bget?>

SELECT ?KO as ?parent_tax ?KOLabel as ?tax_label  ?KOCount as ?cnt
FROM <http://microbedb.jp/srs_function/>
WHERE
{
  srs:ERS006550 msv:containedKO ?blank .
  ?blank msv:assignedKO ?KO .
  ?blank msv:KOCount ?KOCount .
  ?KO rdfs:label ?KOLabel.
}ORDER BY DESC(?KOCount)

Pathway

DEFINE sql:select-option "order"
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>
PREFIX ncbi_refseq: <http://www.ncbi.nlm.nih.gov/nuccore/>
PREFIX ko: <http://www.genome.jp/dbget-bin/www_bget?>
PREFIX path: <http://www.genome.jp/dbget-bin/www_bget?>

SELECT ?pathway as ?parent_tax ?pathway_label as ?tax_label ?pathwayCount as ?cnt
FROM <http://microbedb.jp/srs_function/>
WHERE
{
  srs:ERS006550 msv:containedPathway [
    msv:assignedPathway ?pathway;
    msv:pathwayCount ?pathwayCount;
  ].
  ?pathway rdfs:label ?pathway_label.
}ORDER BY DESC(?pathwayCount)

Genome

DEFINE sql:select-option "order"
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>
PREFIX ncbi_refseq: <http://www.ncbi.nlm.nih.gov/nuccore/>
PREFIX ko: <http://www.genome.jp/dbget-bin/www_bget?>
PREFIX path: <http://www.genome.jp/dbget-bin/www_bget?>

SELECT ?Genome as ?parent_tax ?organismCount as ?cnt
 REPLACE(STR(?Genome),"http://www.ncbi.nlm.nih.gov/nuccore/","") AS ?tax_label
FROM <http://microbedb.jp/srs_function/>
WHERE
{
  srs:ERS006550 msv:containedOrganism [
    msv:assignedGenome ?Genome;
    msv:organismCount ?organismCount;
  ].
} ORDER BY DESC(?organismCount)

Strain関連スタンザ

searchStrainFromStrainByFreeText

"Bifidobacterium"で検索
Taxonomy related のラベルはa=""name by NCBI" b1="name by sequence" b2="name by DB link" c="name by text matching"

DEFINE sql:select-option "order"

PREFIX mccv: <http://purl.jp/bio/01/mccv#>

SELECT ?strain_id ?strain_number ?strain_name ?isolated_from ?opt_temp ?min_temp ?max_temp ?application ?taxid_a ?tax_label_a ?taxid_b1 ?tax_label_b1 ?taxid_b2 ?tax_label_b2 ?taxid_c ?tax_label_c
FROM <http://microbedb.jp/brc/>
FROM <http://microbedb.jp/taxonomy/>
{
  {
    SELECT distinct(?sid) as ?strain_id
    {
      ?sid rdf:type mccv:MCCV_000001.
      ?sid ?p ?text FILTER(?p = mccv:MCCV_000010 || mccv:MCCV_000012 || mccv:MCCV_000030 || mccv:MCCV_000033) .
      ?text bif:contains '"Bifidobacterium"' .
    }
  }
  OPTIONAL { ?strain_id mccv:MCCV_000010 ?strain_number . }
  OPTIONAL { ?strain_id mccv:MCCV_000012 ?strain_name . }
  OPTIONAL { ?strain_id mccv:MCCV_000030 ?isolated_from . }
  OPTIONAL { ?strain_id mccv:MCCV_000014 ?opt_temp . }
  OPTIONAL { ?strain_id mccv:MCCV_000015 ?min_temp . }
  OPTIONAL { ?strain_id mccv:MCCV_000016 ?max_temp . }
  OPTIONAL { ?strain_id mccv:MCCV_000033 ?application . }
  OPTIONAL { ?strain_id mccv:MCCV_000056 ?taxid_a FILTER (STRSTARTS(STR(?taxid_a), "http://identifiers.org")) . ?taxid_a rdfs:label ?tax_label_a .}
  OPTIONAL { ?strain_id mccv:MCCV_000022 ?taxid_b1 FILTER (STRSTARTS(STR(?taxid_b1), "http://identifiers.org")) . ?taxid_b1 rdfs:label ?tax_label_b1 . }
  OPTIONAL { ?strain_id mccv:MCCV_000057 ?taxid_b2 FILTER (STRSTARTS(STR(?taxid_b2), "http://identifiers.org")) . ?taxid_b2 rdfs:label ?tax_label_b2 . }
  OPTIONAL { ?strain_id mccv:MCCV_000023 ?taxid_c FILTER (STRSTARTS(STR(?taxid_c), "http://identifiers.org")) . ?taxid_c rdfs:label ?tax_label_c . }
}

selectStrainNameByStrainId

「NBRC 100496」や「JCM 7096」で検索。

PREFIX mccv: <http://purl.jp/bio/01/mccv#>

SELECT  ?id ?name
FROM <http://microbedb.jp/brc/>
WHERE
{ 
  ?strain_id mccv:MCCV_000010 "NBRC 100496" ;
    mccv:MCCV_000010 ?id ; 
    mccv:MCCV_000012 ?name .
} 

selectStrainMetadataByStrainId

PREFIX mccv: <http://purl.jp/bio/01/mccv#>
SELECT ?p_label ?p ?o ?o_label
FROM <http://microbedb.jp/brc/>
FROM <http://microbedb.jp/mccv/>
FROM <http://microbedb.jp/taxonomy/>
FROM <http://microbedb.jp/meo/>
FROM <http://microbedb.jp/gazetteer/>
{
  VALUES ?p { mccv:MCCV_000017 mccv:MCCV_000033 mccv:MCCV_000027 mccv:MCCV_000030 mccv:MCCV_000032 mccv:MCCV_000058 mccv:MCCV_000059 mccv:MCCV_000060 mccv:MCCV_000028 mccv:MCCV_000014 mccv:MCCV_000015 mccv:MCCV_000016 mccv:MCCV_000018 mccv:MCCV_000056 mccv:MCCV_000022 mccv:MCCV_000057 mccv:MCCV_000023}
  ?strainid mccv:MCCV_000010 "JCM 7096" .
  ?strainid ?p ?o . FILTER (!(STRSTARTS(STR(?o), "http://purl.uniprot.org/taxonomy/") || STRSTARTS(STR(?o), "http://www.ncbi.nlm.nih.gov/taxonomy/"))) .
  ?p rdfs:label ?p_label FILTER (lang(?p_label) = "en") .
  OPTIONAL { ?o rdfs:label ?o_label }
}

?o の表示は以下の通り
ttp://purl.jp/bio/11/meo/ → ?o_labelを表示し、MDBのMEOページへのリンクを貼る
ttp://identifiers.org/taxonomy/ → ?o_labelを表示し、MDBのTAXONOMYページへのリンクを貼る
ttp://purl.obolibrary.org/obo/ → ?o_labelを表示する。リンクはなし
ttp://www.jcm.riken.go.jp/cgi-bin/jcm/jcm_grmd?GRMD=13 → 「GRMD=13」の部分を表示し、別タグでURLにリンクを貼る

表示順序は次の通り。項目名の最初は大文字にする
MCCV_000017, MCCV_000033, MCCV_000027, MCCV_000030, MCCV_000032, MCCV_000058, MCCV_000059, MCCV_000060,
MCCV_000028, MCCV_000014 - MCCV_000016※, MCCV_000018 ※optimal(min -max) 項目名はgrowth temperature

strain_reference_info

PREFIX mccv: <http://purl.jp/bio/01/mccv#>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX prism: <http://prismstandard.org/namespaces/2.0/basic/>

SELECT ?blank ?id ?ref_link ?title ?author ?publication_name ?volume ?starting_page ?ending_page ?publication_date 
FROM <http://microbedb.jp/brc/>
{
  ?strainid mccv:MCCV_000010 "JCM 1002" .
  ?strainid dcterms:references ?blank .
  OPTIONAL 
  { 
    ?blank mccv:MCCV_000047 ?id . 
    ?strainid2 dcterms:references ?blank .
    ?strainid2 mccv:MCCV_000010 ?strain_no2 .
    BIND (IF(STRSTARTS(?strain_no2, "JCM"), CONCAT("http://www.jcm.riken.go.jp/cgi-bin/jcm/jcm_ref?REF=", ?id), IF(STRSTARTS(?strain_no2, "NBRC"), CONCAT("http://www.nbrc.nite.go.jp/NBRC2/NBRCReferenceDetailServlet?NO=", ?id), "")) AS ?ref_link) .
  }
  OPTIONAL { ?blank dc:title ?title . }
  OPTIONAL { ?blank dc:creator ?author . }
  OPTIONAL { ?blank dc:publisher ?publisher . }
  OPTIONAL { ?blank prism:publicationName ?publication_name . }
  OPTIONAL { ?blank prism:volume ?volume . }
  OPTIONAL { ?blank prism:startingPage ?starting_page . }
  OPTIONAL { ?blank prism:endingPage ?ending_page . }
  OPTIONAL { ?blank prism:publicationDate ?publication_date . }
}

selectStrainOtherCollectionNoByStrainId

PREFIX mccv: <http://purl.jp/bio/01/mccv#>

SELECT ?label ?link
FROM <http://microbedb.jp/brc/>
{
  ?strainid mccv:MCCV_000010 "JCM 1002" .
  ?strainid mccv:MCCV_000024 ?blank .
  ?blank mccv:MCCV_000026 ?label .
  OPTIONAL { ?blank mccv:MCCV_000025 ?link . }
}

Disease関連スタンザ

search_disease_list

"abnormally temperature"で検索(指定箇所2箇所有り)

DEFINE sql:select-option "order"
PREFIX pdo:<http://purl.jp/bio/11/pdo/> 
PREFIX obo:<http://purl.obolibrary.org/obo/>
PREFIX skos:<http://www.w3.org/2004/02/skos/core#> 
PREFIX oboowl: <http://www.geneontology.org/formats/oboInOwl#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>


SELECT
 REPLACE(STR(?pdo_id),"http://purl.jp/bio/11/pdo/","") AS ?pdo_no
 ?label
 ?definition
 (sql:GROUP_DIGEST(?synonym, ', ', 1000, 1)) AS ?synonyms
 (sql:GROUP_DIGEST(?symptom_label, ', ', 1000, 1)) AS ?symptoms
 (sql:GROUP_DIGEST(?symptom_definition, ', ', 1000, 1)) AS ?symptom_definitions
 (sql:GROUP_DIGEST(?symptom_synonym, ', ', 1000, 1)) AS ?symptom_synonyms
FROM <http://microbedb.jp/pdo/>
FROM <http://microbedb.jp/csso/>
FROM <http://microbedb.jp/pdo_mapping/>
WHERE
{
  {
    SELECT DISTINCT ?pdo_id
    {
      {
        GRAPH <http://microbedb.jp/pdo/> 
        {
          ?pdo_id ?p ?text FILTER (?p IN(rdfs:label, obo:IAO_0000115, skos:altLabel)) .
          ?text bif:contains '"abnormally" AND "temperature"' .
        }
      }
      UNION
      {
        ?pdo_id pdo:hasSymptomOf ?csso_id .
        GRAPH <http://microbedb.jp/csso/> 
        { 
          ?csso_id ?p ?text FILTER (?p IN(rdfs:label, obo:IAO_0000115, skos:altLabel)) .
          ?text bif:contains '"abnormally" AND "temperature"' .
        }
      }
    }
  }
  ?pdo_id rdfs:label ?label . 
  OPTIONAL { ?pdo_id obo:IAO_0000115 ?definition . }
  OPTIONAL { ?pdo_id ?p_synonym ?synonym FILTER (?p_synonym = skos:altLabel || ?p_synonym = oboowl:hasRelatedSynonym) . }
  OPTIONAL
  {
    ?pdo_id pdo:hasSymptomOf ?csso_id .
    GRAPH <http://microbedb.jp/csso/> 
    { 
      ?csso_id rdfs:label ?symptom_label . 
      OPTIONAL { ?csso_id obo:IAO_0000115 ?symptom_definition . }
      OPTIONAL { ?csso_id ?p_synonym2 ?symptom_synonym FILTER (?p_synonym2 = skos:altLabel || ?p_synonym2 = oboowl:hasRelatedSynonym) . }
    }
  }
} GROUP BY ?pdo_id ?label ?definition

disease_attributes

"PDO_000173"で検索
environment_attributesと同様の画面

DEFINE sql:select-option "order"
PREFIX pdo: <http://purl.jp/bio/11/pdo/> 
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX csso: <http://purl.jp/bio/11/csso/>
PREFIX oboowl: <http://www.geneontology.org/formats/oboInOwl#>

SELECT 
  REPLACE(STR(?pdo_id),"http://purl.jp/bio/11/pdo/","") AS ?pdo_no ?diseaseName
  REPLACE(STR(?pdo_superclass_id),"http://purl.jp/bio/11/pdo/","") AS ?pdo_superclass_no ?pdo_superclass_laebl
  (sql:GROUP_DIGEST(?synonym, ', ', 1000, 1)) AS ?synonyms
  ?definition
FROM <http://microbedb.jp/pdo/>
FROM <http://microbedb.jp/csso/>
FROM <http://microbedb.jp/pdo_mapping/> 
WHERE
{
  ?pdo_id rdfs:label ?diseaseName. FILTER (?pdo_id = pdo:PDO_000173) .
  OPTIONAL { ?pdo_id obo:IAO_0000115 ?definition . }
  OPTIONAL { ?pdo_id ?p_synonym ?synonym FILTER (?p_synonym = skos:altLabel || ?p_synonym = oboowl:hasRelatedSynonym) . }
  OPTIONAL
  {
    ?pdo_id rdfs:subClassOf+ ?pdo_superclass_id.
    ?pdo_superclass_id rdfs:subClassOf pdo:PDO_000001.
    ?pdo_superclass_id rdfs:label ?pdo_superclass_laebl.
  }
} GROUP BY ?pdo_id ?diseaseName ?definition ?pdo_superclass_laebl ?pdo_superclass_id

disease_symptoms

"PDO_000173"で検索

DEFINE sql:select-option "order"
PREFIX pdo:<http://purl.jp/bio/11/pdo/> 
PREFIX obo:<http://purl.obolibrary.org/obo/>
PREFIX skos:<http://www.w3.org/2004/02/skos/core#> 
PREFIX oboowl: <http://www.geneontology.org/formats/oboInOwl#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>

SELECT
 REPLACE(STR(?csso_id),"http://purl.jp/bio/11/csso/","") AS ?csso_no
 ?label
 ?definition
 (sql:GROUP_DIGEST(?synonym, ', ', 1000, 1)) AS ?synonyms
FROM <http://microbedb.jp/csso/>
FROM <http://microbedb.jp/pdo_mapping/>
WHERE
{
  pdo:PDO_000173 pdo:hasSymptomOf ?csso_id .
  GRAPH <http://microbedb.jp/csso/>
  {
    ?csso_id rdfs:label ?label . 
    OPTIONAL { ?csso_id obo:IAO_0000115 ?definition . }
    OPTIONAL { ?csso_id ?p_synonym ?synonym FILTER (?p_synonym = skos:altLabel || ?p_synonym = oboowl:hasRelatedSynonym) . }
  }
} GROUP BY ?csso_id ?label ?definition

disease_taxonomy_list

"PDO_000193"で検索
tax_noはMDBのtaxonomyページへリンクを貼る

DEFINE sql:select-option "order"
PREFIX pdo: <http://purl.jp/bio/11/pdo/> 
PREFIX csso: <http://purl.jp/bio/11/csso/>
PREFIX taxo: <http://ddbj.nig.ac.jp/ontologies/taxonomy#>

SELECT  
 REPLACE(STR(?tax_id),"http://identifiers.org/taxonomy/","") AS ?tax_no ?bacterialName 
 ?diseaseNameSet ?infectiousType ?strainType ?speciesName
FROM <http://microbedb.jp/pdo/>
FROM <http://microbedb.jp/pdo_mapping/>
FROM <http://microbedb.jp/taxonomy/> 
WHERE
{
  {
    SELECT DISTINCT ?tax_id ?bacterialName (GROUP_CONCAT(?diseaseName; SEPARATOR = ",") AS ?diseaseNameSet) ?speciesName
    WHERE
    {
      ?tax_id pdo:isAssociatedTo/pdo:mayCaused pdo:PDO_000193.
      ?tax_id pdo:isAssociatedTo ?blank .
      ?blank ?p_pdo ?disease FILTER (?p_pdo = pdo:mayCaused || ?p_pdo = pdo:isRelatedTo).
      ?disease rdfs:label ?diseaseName.
      ?tax_id rdfs:label ?bacterialName.
      OPTIONAL
      {
        ?tax_id rdfs:subClassOf+ ?upperClass.
        ?upperClass taxo:rank taxo:Species.
        ?upperClass rdfs:label ?speciesName.
      }
    }
  }
  OPTIONAL { ?tax_id pdo:isAssociatedTo/pdo:infectiousType ?infectiousType . }
  OPTIONAL { ?tax_id pdo:isAssociatedTo/pdo:strainType ?strainType . }
}

disease_strain_list

このスタンザはボツ。作成不要

Ortholog関連スタンザ

ortholog_attributes

ortholog_cluster_id"40"を引数として検索

PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX mbgd: <http://mbgd.genome.ad.jp/owl/mbgd.owl#>
PREFIX mbgddata: <http://mbgd.genome.ad.jp/rdf/dataset/2013-01_default/cluster/>
PREFIX mbgdowl: <http://mbgd.genome.ad.jp/owl/mbgd.owl#>

SELECT  ?label ?description ?function_mbgd
FROM <http://microbedb.jp/mbgd/>
WHERE
{
  mbgddata:40 rdfs:label ?label  ;
    mbgdowl:description ?description ;
    mbgdowl:funcMbgd ?function_mbgd .
}

ortholog_group_members

ortholog_cluster_id"40"を引数として検索。最後のスラッシュ以降を文字列として、リンクは別タグで開くようにする。

PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX mbgd: <http://mbgd.genome.ad.jp/owl/mbgd.owl#>
PREFIX mbgddata: <http://mbgd.genome.ad.jp/rdf/dataset/2013-01_default/cluster/>
PREFIX mbgdowl: <http://mbgd.genome.ad.jp/owl/ortholog.owl#>

SELECT  DISTINCT ?member
FROM <http://microbedb.jp/mbgd/>
WHERE
{
  mbgddata:40 mbgdowl:member/mbgd:gene ?member .
}

ortholog_environment

ortholog_cluster_id"40"を引数として検索。

DEFINE sql:select-option "order"
PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX mbgd: <http://mbgd.genome.ad.jp/owl/mbgd.owl#>
PREFIX mbgddata: <http://mbgd.genome.ad.jp/rdf/dataset/2013-01_default/cluster/>

SELECT ?meo_rank2 ?meo_rank2_label SUM(?ortholog_cnt) AS ?hit_count
FROM <http://microbedb.jp/srs_ortholog_human/>
FROM <http://microbedb.jp/srs_ortholog_env/>
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/meo/>
WHERE
{
  VALUES ?p_env { meo:MEO_0000437 meo:MEO_0000440 }
  ?blank msv:assignedMBGDOrtholog mbgddata:40 .
  ?blank msv:MBGDOrthologCount ?ortholog_cnt .
  ?srs_id msv:containedOrtholog ?blank .
  ?srs_id ?p_env ?meo .
  ?meo rdfs:subClassOf* ?meo_rank2  .
  ?meo_rank2 meo:MEO_0000442 "2" .
  ?meo_rank2 rdfs:label ?meo_rank2_label .
} GROUP BY ?meo_rank2 ?meo_rank2_label ORDER BY DESC (?hit_count)

各環境下におけるサンプルの数が違うため、補正を掛ける。
以下結果の各行(rate/rateの合計)が補正係数になるので、上のクエリの?hit_countに掛ける。

DEFINE sql:select-option "order"
PREFIX msv: <http://purl.jp/bio/11/msv/>
PREFIX meo: <http://purl.jp/bio/11/meo/>

SELECT ?meo_rank2 ?label SUM(?env_gravity) AS ?rate
FROM <http://microbedb.jp/srs_ortholog_human/>
FROM <http://microbedb.jp/srs_ortholog_env/>
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/meo/>
FROM <http://microbedb.jp/srs/meo_normalize/>
WHERE
{
  VALUES ?p_env { meo:MEO_0000437 meo:MEO_0000440 }
  
  ?meo_rank2 meo:MEO_0000442 "2" .
  ?meo rdfs:subClassOf* ?meo_rank2  .
  ?srs_id ?p_env ?meo .
  ?srs_id meo:srs_normalize ?env_gravity .
  ?srs_id msv:containedOrtholog ?blank .
  ?meo_rank2 rdfs:label ?label
} GROUP BY ?meo_rank2 ORDER BY DESC 3

MiGAP関連スタンザ

search_migap_list

locus_tag単位での検索。 MiGAP形式のデータを確認してから、推敲予定。ひとまずサンプルデータでの検索。
ログインしている場合は非公開データ + 公開可能データを足した結果を出力する。

  • 非公開データ

FROM句のグラフ名にログインユーザが所属するグループIDのグラフを列挙する。
group_idをTAuthのgroup_nameと結びつけて各項目に表示する。

DEFINE sql:select-option "order"

PREFIX obo: <http://purl.obolibrary.org/obo/> 
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX idorg: <http://rdf.identifiers.org/database/> 
PREFIX insdc:  <http://insdc.org/owl/>
PREFIX mdb: <http://microbedb.jp/>
PREFIX ddbjbpj: <http://ddbj.nig.ac.jp/ontologies/bioproject/>
PREFIX gref: <http://genome.microbedb.jp/ontologies/genomerefine#>

SELECT DISTINCT
 ?locus_tag ?gene_label
 (sql:GROUP_DIGEST(?synonym1, ', ', 1000, 1)) AS ?synonym
 (sql:GROUP_DIGEST(?product1, ', ', 1000, 1))  AS ?products
 (sql:GROUP_DIGEST(?note1, ', ', 1000, 1))  AS ?notes
 ?migap_project_id ?group_id 
FROM <http://microbedb.jp/migap/group_235/>
FROM <http://microbedb.jp/migap/visibility/>
FROM <http://microbedb.jp/migap/metadata/>
WHERE
{
  {
    SELECT distinct(?uuid) as ?gene_uuid
    {
      {
        ?uuid ?p ?text .  
        FILTER (?p IN ( insdc:gene, insdc:locus_tag, insdc:gene_synonym, insdc:product, insdc:note)) .
        ?text bif:contains '"rpoE"' .
      }
    }
  }
  ?gene_uuid insdc:locus_tag ?locus_tag.
  OPTIONAL {?gene_uuid rdfs:label ?gene_label.}
  OPTIONAL {?gene_uuid insdc:gene_synonym ?synonym1 . }
  OPTIONAL {?gene_uuid insdc:product ?product1 . }
  OPTIONAL {?gene_uuid insdc:note ?note1 .}
  ?gene_uuid obo:so_part_of+ ?seq .
  ?seq owl:sameAs/gref:collection ?seq_collection .
  ?migap_project_id gref:sequences ?seq_collection .
  ?migap_project_id mdb:visibility mdb:private .
  ?migap_project_id ddbjbpj:group_id ?group_id .
} GROUP BY ?gene_label ?locus_tag ?migap_project_id ?group_id
  • 公開データ

group_idを常に-1で返すので、グループ名表示は"public"とする。

DEFINE sql:select-option "order"

PREFIX obo: <http://purl.obolibrary.org/obo/> 
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX idorg: <http://rdf.identifiers.org/database/> 
PREFIX insdc:  <http://insdc.org/owl/>
PREFIX mdb: <http://microbedb.jp/>
PREFIX ddbjbpj: <http://ddbj.nig.ac.jp/ontologies/bioproject/>
PREFIX gref: <http://genome.microbedb.jp/ontologies/genomerefine#>

SELECT DISTINCT
 ?locus_tag ?gene_label
 (sql:GROUP_DIGEST(?synonym1, ', ', 1000, 1)) AS ?synonym
 (sql:GROUP_DIGEST(?product1, ', ', 1000, 1))  AS ?products
 (sql:GROUP_DIGEST(?note1, ', ', 1000, 1))  AS ?notes
 ?migap_project_id ?group_id 
WHERE
{
  {
    SELECT distinct(?uuid) as ?gene_uuid
    {
      {
        ?uuid ?p ?text .  
        FILTER (?p IN ( insdc:gene, insdc:locus_tag, insdc:gene_synonym, insdc:product, insdc:note)) .
        ?text bif:contains '"rpoE"' .
      }
    }
  }
  ?gene_uuid insdc:locus_tag ?locus_tag.
  OPTIONAL {?gene_uuid rdfs:label ?gene_label.}
  OPTIONAL {?gene_uuid insdc:gene_synonym ?synonym1 . }
  OPTIONAL {?gene_uuid insdc:product ?product1 . }
  OPTIONAL {?gene_uuid insdc:note ?note1 .}
  ?gene_uuid obo:so_part_of+ ?seq .
  ?seq owl:sameAs ?migap_seq_id .
  ?seq owl:sameAs/gref:collection ?seq_collection .
  ?migap_project_id gref:sequences ?seq_collection .
  ?migap_project_id mdb:visibility mdb:public .
  ?migap_project_id ddbjbpj:group_id ?group_id .
} GROUP BY ?gene_label ?locus_tag ?migap_project_id ?group_id

migap_definition_info

MiGAP関連ページへの引数はローカスタグ「GR15_118170」とグループID「235」。
グループID引数は任意で、非公開データの場合にだけ渡され、公開データの場合には渡されない。
グループIDが指定された場合にはTAuthのログインユーザIDとマッチしているかチェックし、マッチしなければNot Foundで返す。

  • 非公開データ

FROM句のグラフ名にが引数のグループIDのグラフを指定する(ログイングループIDではない)。

DEFINE sql:select-option "order"
PREFIX obo: <http://purl.obolibrary.org/obo/> 
PREFIX idorg: <http://rdf.identifiers.org/database/> 
PREFIX insdc: <http://insdc.org/owl/> 
PREFIX gref: <http://genome.microbedb.jp/ontologies/genomerefine#>

SELECT DISTINCT ?label ?seq_version
FROM <http://microbedb.jp/migap/group_235/>
FROM <http://microbedb.jp/migap/metadata/>
WHERE
{
  ?gene insdc:locus_tag "GR15_118170" .
  ?gene a ?type .
  ?gene obo:so_part_of+ ?seq .
  ?seq owl:sameAs/gref:collection ?seq_collection .
  ?migap_project_id gref:sequences ?seq_collection .
  ?seq rdfs:label ?label .
  ?seq insdc:sequence_version ?seq_version .
}
  • 公開データ
DEFINE sql:select-option "order"
PREFIX obo: <http://purl.obolibrary.org/obo/> 
PREFIX idorg: <http://rdf.identifiers.org/database/> 
PREFIX insdc: <http://insdc.org/owl/>
PREFIX gref: <http://genome.microbedb.jp/ontologies/genomerefine#>
PREFIX mdb: <http://microbedb.jp/>

SELECT DISTINCT ?label ?seq_version
WHERE
{
  ?gene insdc:locus_tag "GR15_118170" .
  ?gene a ?type .
  ?gene obo:so_part_of+ ?seq .
  ?seq owl:sameAs/gref:collection ?seq_collection .
  ?migap_project_id gref:sequences ?seq_collection .
  ?migap_project_id mdb:visibility mdb:public .
  ?seq rdfs:label ?label .
  ?seq insdc:sequence_version ?seq_version .
}

グループ名を取得する

PREFIX insdc: <http://insdc.org/owl/> 

SELECT DISTINCT ?g
WHERE
{
  GRAPH ?g { ?gene insdc:locus_tag "GR12_10050" . }
}

migap_genome_info

引数の条件と処理はmigap_definition_infoと同一。
画面のつくりはrefseq_genome_infoと同様。

  • 非公開データ

TAuthのログインユーザIDとマッチしているかチェックし、マッチしなければNot Foundで返す。 FROM句のグラフ名にが引数のグループIDのグラフを指定する(ログイングループIDではない)。

DEFINE sql:select-option "order"
PREFIX obo: <http://purl.obolibrary.org/obo/> 
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX idorg: <http://rdf.identifiers.org/database/> 
PREFIX insdc: <http://insdc.org/owl/> 
PREFIX mdb: <http://microbedb.jp/>
PREFIX ddbjbpj: <http://ddbj.nig.ac.jp/ontologies/bioproject/>
PREFIX gref: <http://genome.microbedb.jp/ontologies/genomerefine#>

SELECT DISTINCT ?p IF(?p = faldo:location, ?position , ?obj) as ?o ?label
FROM <http://microbedb.jp/migap/group_235/>
FROM <http://microbedb.jp/migap/metadata/>
FROM <http://microbedb.jp/so/>
WHERE
{
  ?gene insdc:locus_tag "GR15_118170" .
  ?gene a ?type .
  ?gene obo:so_part_of+ ?seq .
  ?seq owl:sameAs/gref:collection ?seq_collection .
  ?migap_project_id gref:sequences ?seq_collection .
  ?seq ?p ?obj.
  OPTIONAL {?obj insdc:location ?position }
  OPTIONAL {?obj rdfs:label ?label }
} ORDER BY ?p
  • 公開データ
DEFINE sql:select-option "order"
PREFIX obo: <http://purl.obolibrary.org/obo/> 
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX idorg: <http://rdf.identifiers.org/database/> 
PREFIX insdc: <http://insdc.org/owl/> 
PREFIX mdb: <http://microbedb.jp/>
PREFIX ddbjbpj: <http://ddbj.nig.ac.jp/ontologies/bioproject/>
PREFIX gref: <http://genome.microbedb.jp/ontologies/genomerefine#>

SELECT DISTINCT ?p IF(?p = faldo:location, ?position , ?obj) as ?o ?label
WHERE
{
  ?gene insdc:locus_tag "GR15_118170" .
  ?gene a ?type .
  ?gene obo:so_part_of+ ?seq .
  ?seq owl:sameAs/gref:collection ?seq_collection .
  ?migap_project_id gref:sequences ?seq_collection .
  ?migap_project_id mdb:visibility mdb:public .
  ?seq ?p ?obj.
  OPTIONAL {?obj insdc:location ?position }
  OPTIONAL {?obj rdfs:label ?label }
} ORDER BY ?p

migap_feature_list

引数の条件と処理はmigap_definition_infoと同一。
画面のつくりはrefseq_feature_infoと同様。

  • 非公開データ

TAuthのログインユーザIDとマッチしているかチェックし、マッチしなければNot Foundで返す。 FROM句のグラフ名にが引数のグループIDのグラフを指定する(ログイングループIDではない)。

DEFINE sql:select-option "order"
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX obo: <http://purl.obolibrary.org/obo/> 
PREFIX idorg: <http://rdf.identifiers.org/database/> 
PREFIX insdc: <http://insdc.org/owl/>
PREFIX mdb: <http://microbedb.jp/> 

SELECT DISTINCT ?gene_type_label ?p IF(?p = faldo:location, ?position , ?obj) as ?o ?label
FROM <http://microbedb.jp/migap/group_235/>
FROM <http://microbedb.jp/so/>
WHERE
{
  ?gene insdc:locus_tag "GR15_118170";
    a ?type ;
    ?p ?obj FILTER (!?p = obo:so_part_of).
  ?type rdfs:label ?gene_type_label .
  OPTIONAL {?obj insdc:location ?position }
  OPTIONAL {?obj rdfs:label ?label }
}
  • 公開データ
DEFINE sql:select-option "order"
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX obo: <http://purl.obolibrary.org/obo/> 
PREFIX idorg: <http://rdf.identifiers.org/database/> 
PREFIX insdc: <http://insdc.org/owl/>
PREFIX mdb: <http://microbedb.jp/>
PREFIX gref: <http://genome.microbedb.jp/ontologies/genomerefine#>

SELECT DISTINCT ?gene_type_label ?p IF(?p = faldo:location, ?position , ?obj) as ?o ?label
WHERE
{
  ?gene insdc:locus_tag "GR15_118170";
    a ?type ;
    ?p ?obj FILTER (!?p = obo:so_part_of).
  ?type rdfs:label ?gene_type_label .
  OPTIONAL {?obj insdc:location ?position }
  OPTIONAL {?obj rdfs:label ?label }
  ?gene obo:so_part_of+ ?seq .
  ?seq owl:sameAs/gref:collection ?seq_collection .
  ?migap_project_id gref:sequences ?seq_collection .
  ?migap_project_id mdb:visibility mdb:public .
}

migap_project_information

PREFIX  mdb: <http://microbedb.jp/>
PREFIX  mdbgr: <http://genome.microbedb.jp/ontologies/genomerefine#>

SELECT DISTINCT ?canonical_name ?division ?mol_type ?molecule_type ?topology ?taxonomy_id ?classification
 (REPLACE(STR(?visibility),"http://microbedb.jp/","") AS ?visibility)
FROM <http://microbedb.jp/migap/metadata/>
FROM <http://microbedb.jp/migap/visibility/>
WHERE
{
  ?gr_project_id ?p ?o FILTER (?gr_project_id = <http://genome.microbedb.jp/235/GR15> ) .
  ?gr_project_id mdbgr:canonical_name ?canonical_name ;
    mdbgr:division ?division ;
    mdbgr:mol_type ?mol_type ;
    mdbgr:molecule_type ?molecule_type ;
    mdbgr:topology ?topology ;
    mdbgr:taxonomy_id ?taxonomy_id ;
    mdbgr:classification ?classification ;
    mdb:visibility ?visibility.
}

migap_project_sequences

PREFIX  mdb: <http://microbedb.jp/>
PREFIX  mdbgr: <http://genome.microbedb.jp/ontologies/genomerefine#>

SELECT ?sequences ?label ?accession ?length
FROM <http://microbedb.jp/migap/metadata/>
FROM <http://microbedb.jp/migap/group_235/>
WHERE
{
  <http://genome.microbedb.jp/235/GR15> mdbgr:sequences ?seq_collection .
  ?sequences mdbgr:collection ?seq_collection .
  ?sequences rdfs:label ?label .
  ?sequences mdbgr:sequence_accession ?accession .
  ?sequences mdbgr:sequence_length ?length .
} ORDER BY ?accession

migap_sequence_genes

別途ページが必要なので保留

PREFIX  mdb: <http://microbedb.jp/>
PREFIX  mdbgr: <http://genome.microbedb.jp/ontologies/genomerefine#>
PREFIX  obo: <http://purl.obolibrary.org/obo/>
PREFIX  insdc: <http://insdc.org/owl/>
PREFIX  faldo: <http://biohackathon.org/resource/faldo#>
SELECT DISTINCT ?locus_tag ?label ?begin_pos ?end_pos
FROM <http://microbedb.jp/migap/group_228/>
WHERE
{
   ?seq owl:sameAs <http://genome.microbedb.jp/228/GR12/GR12-Chr1> .
   ?child obo:so_part_of ?seq;
     a obo:SO_0000704 ;
     insdc:locus_tag ?locus_tag ;
     rdfs:label ?label ;
     faldo:location ?faldo .
   ?faldo faldo:begin/faldo:position ?begin_pos .
   ?faldo faldo:end/faldo:position ?end_pos .
} ORDER BY ?begin_pos

計算用クエリ

Envitonment mapping Data

SRS - RefSeq のマッピング結果のヒートマップ図を作成するためのクエリ

Tax-BioProject複数データ取得

一つのTaxonomyIDに複数のBioProjectが紐付くリスト

DEFINE sql:select-option "order"

PREFIX idorg:<http://rdf.identifiers.org/database/>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX insdc: <http://insdc.org/owl/> 

SELECT ?tax (COUNT(DISTINCT ?bioproject) AS ?cnt)
(sql:GROUP_DIGEST(?bioproject, ', ', 1000, 1)) AS ?bioprojects
FROM <http://microbedb.jp/refseq/>
WHERE
{
  ?tax a idorg:Taxonomy .
  ?seq rdfs:seeAlso ?tax ;
    rdfs:seeAlso ?bioproject .
  ?bioproject a idorg:BioProject .
} GROUP BY ?tax ORDER BY DESC 2

一つのBioProjectに複数のTaxonomyIDが紐付くリスト

DEFINE sql:select-option "order"

PREFIX idorg:<http://rdf.identifiers.org/database/>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX insdc: <http://insdc.org/owl/> 

SELECT ?bioproject (COUNT(DISTINCT ?tax) AS ?cnt)
(sql:GROUP_DIGEST(?tax, ', ', 1000, 1)) AS ?taxs
FROM <http://microbedb.jp/refseq/>
WHERE
{
  ?tax a idorg:Taxonomy .
  ?seq rdfs:seeAlso ?tax ;
    rdfs:seeAlso ?bioproject .
  ?bioproject a idorg:BioProject .
} GROUP BY ?bioproject ORDER BY DESC 2


シーケンスリスト取得

Chromosomeのplasmidのシーケンスバージョンとtaxidを取得

DEFINE sql:select-option "order"

PREFIX idorg:<http://rdf.identifiers.org/database/>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX insdc: <http://insdc.org/owl/> 

SELECT ?tax ?bioproject ?version ?nuccore ?length ?seq_type_label
FROM <http://microbedb.jp/refseq/>
FROM <http://microbedb.jp/so/>
WHERE
{
  ?tax a idorg:Taxonomy .
  ?seq rdfs:seeAlso ?tax ;
    rdfs:seeAlso ?nuccore ;
    rdfs:seeAlso ?bioproject ;
    insdc:sequence_length ?length ;
    insdc:sequence_version ?version ;
    a ?seq_type FILTER (?seq_type = obo:SO_0000340 || ?seq_type = obo:SO_0000155 ).
  ?nuccore a idorg:RefSeq .
  ?bioproject a idorg:BioProject .
  ?seq_type rdfs:label ?seq_type_label .
}

Geneロケーション取得

シーケンス毎にgeneのポジションリストを取得

DEFINE sql:select-option "order"

PREFIX idorg:<http://rdf.identifiers.org/database/>
PREFIX insdc: <http://insdc.org/owl/> 
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX obo: <http://purl.obolibrary.org/obo/>

SELECT ?version ?locus_tag ?gene_type_label ?start_pos ?end_pos ?description
FROM <http://microbedb.jp/refseq/>
FROM <http://microbedb.jp/so/>
WHERE
{
  VALUES ?gene_type { obo:SO_0000704 obo:SO_0000252 obo:SO_0000253 }
  ?seq rdfs:seeAlso <http://identifiers.org/refseq/NC_007509.1> ;
    insdc:sequence_version ?version .
  ?gene obo:so_part_of ?seq ;
    a ?gene_type ;
    insdc:feature_locus_tag ?locus_tag ;
    faldo:location ?faldo_location .
  ?faldo_location faldo:begin ?begin_location ;
    faldo:end ?end_location .
  ?begin_location faldo:position ?start_pos .
  ?end_location faldo:position ?end_pos .
  OPTIONAL
  {
    ?cds obo:so_part_of ?gene .
    ?cds insdc:feature_product ?description . 
  }
  ?gene_type rdfs:label ?gene_type_label .
}

第二ランクMEOリスト取得

PREFIX meo: <http://purl.jp/bio/11/meo/>

select ?meo ?label
FROM <http://microbedb.jp/meo/>
WHERE
{
  ?meo meo:MEO_0000442 "2" FILTER (!?meo IN(meo:MEO_0000404, meo:MEO_0000632, meo:MEO_0000423, meo:MEO_0000424, meo:MEO_0000635, meo:MEO_0000420)) .
  ?meo rdfs:label ?label .
  ?meo rdfs:subClassOf ?parent_meo .
} ORDER BY ?parent_meo

各サンプルの環境(第二階層)を取得する

PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX srs: <http://www.ncbi.nlm.nih.gov/sra/>

select ?sample_id ?parent_meo ?parent_meo_label
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/meo/>
WHERE
{
 ?sample_id ?p ?meo FILTER (?sample_id = srs:SRS025463 && (?p = meo:MEO_0000437 || ?p = meo:MEO_0000440) ) .
 ?meo rdfs:subClassOf* ?parent_meo .
 ?parent_meo meo:MEO_0000442 "2" .
 ?meo rdfs:label ?meo_label .
 ?parent_meo rdfs:label ?parent_meo_label . 
} GROUP BY ?parent_meo

環境の第一階層と第二階層を取得する

PREFIX meo:<http://purl.jp/bio/11/meo/>

select ?meo_rank1 ?meo_rank1_label ?meo_rank2 ?meo_rank2_label
FROM <http://microbedb.jp/meo/>
WHERE
{
  ?meo_rank2 meo:MEO_0000442 "2"  FILTER (!?meo_rank2 IN(meo:MEO_0000404, meo:MEO_0000632, meo:MEO_0000423, meo:MEO_0000424, meo:MEO_0000635, meo:MEO_0000420)) .
  ?meo_rank2 rdfs:subClassOf ?meo_rank1 .
  ?meo_rank1  meo:MEO_0000442 "1" .
  ?meo_rank1 rdfs:label ?meo_rank1_label .
  ?meo_rank2 rdfs:label ?meo_rank2_label .
} ORDER BY ?meo_rank1 

meta16s_taxonomy_compositonのオントロジー集計結果

オントロジー検索で上位階層(0000004)が指定された場合に遅くなるため、あらかじめ計算結果を集計したグラフを作成する。

MEO一覧取得

MEOのクラス一覧を取得する。

SELECT ?meo_id
FROM <http://microbedb.jp/meo/>
WHERE
{
 ?meo_id a <http://www.w3.org/2002/07/owl#Class>
}

オントロジー検索結果取得

"meo:MEO_0000029"で検索。階層のMEOを含んだ集計結果のトリプルを返す。 MEO一覧で取得したクラス毎にループで取得する。

DEFINE output:format "NT"
PREFIX meo:<http://purl.jp/bio/11/meo/>

CONSTRUCT
{ 
  meo:MEO_0000029 meo:tax_comp_via16s_ontology 
  [
    ?tax_rank ?taxon;
    meo:comp_sum ?tax_cnt;
  ]. 
}
FROM <http://microbedb.jp/srs/>
FROM <http://microbedb.jp/meta16S_env/> 
FROM <http://microbedb.jp/meo/>
WHERE
{
  SELECT ?taxon SUM(?count) AS ?tax_cnt ?tax_rank 
  FROM <http://microbedb.jp/srs/>
  FROM <http://microbedb.jp/meta16S_env/> 
  FROM <http://microbedb.jp/meo/>
  WHERE
  {
    values ?tax_rank { meo:MEO_0000431 meo:MEO_0000432 meo:MEO_0000433 meo:MEO_0000434 meo:MEO_0000435 meo:MEO_0000436 }
    VALUES ?p_env { meo:MEO_0000437 meo:MEO_0000440 }
    ?meo_id rdfs:subClassOf* meo:MEO_0000029 .
    ?srs ?p_env ?meo_id .
    ?srs meo:MEO_0000429 ?blank .
    ?blank ?tax_rank ?taxon FILTER ((STRSTARTS(STR(?taxon), "http://identifiers.org/taxonomy/"))).
    ?blank meo:MEO_0000430 ?count.
  }GROUP BY ?taxon ?tax_rank 
}

※上記CONSTRUCT文で、FROM <http://microbedb.jp/meta16S_env/> を FROM <http://microbedb.jp/meta16S_human/>に変えたものを作成する。
それぞれ、<http://microbedb.jp/meta16S_env_ontology/> <http://microbedb.jp/meta16S_human_ontology/> グラフにロードする。

Gazetteer latitude longitude Data

アプリケーションでgazetteerIDからgeocoodinした場合、件数制限に引っかかってしまうため、あらかじめ緯度経度のttlを準備する。
次のファイルの更新があった場合に更新に注意する。

  • srs/srs/SRS-MEO_mapping_XXXX
  • brc/nbrc/8meo.ttl
  • brc/nbrc/NBRC_mapping_XXXX
  • ontology/gold/gold2ontology_XXXX

使用しているgazetteerIDのリスト取得

DEFINE sql:select-option "order"

prefix meo: <http://purl.jp/bio/11/meo/>
PREFIX msv: <http://purl.jp/bio/11/msv/>
prefix mccv: <http://purl.jp/bio/01/mccv#>

select DISTINCT ?gazetteer_id ?gazetteer_label ?lat ?lon
FROM <http://microbedb.jp/gazetteer/>
FROM <http://microbedb.jp/brc/>
FROM <http://microbedb.jp/gold/>
FROM <http://microbedb.jp/srs/>
WHERE
{
  { GRAPH <http://microbedb.jp/brc/> { ?s ?p ?gazetteer_id FILTER ( ?p = dc:identifier || ?p = mccv:MCCV_000032 ).  } }
  UNION 
  { GRAPH <http://microbedb.jp/gold/> { ?s meo:MEO_0000438 ?gazetteer_id } }
  UNION 
  { GRAPH <http://microbedb.jp/srs/> { ?s meo:MEO_0000438 ?gazetteer_id } }
  ?gazetteer_id rdfs:label ?gazetteer_label
  OPTIONAL { ?gazetteer_id msv:latitude ?lat . }
  OPTIONAL { ?gazetteer_id msv:longitude ?lon . }
}

使用しているgazetteerIDのうち緯度経度情報がないリスト取得

DEFINE sql:select-option "order"

prefix meo: <http://purl.jp/bio/11/meo/>
PREFIX msv: <http://purl.jp/bio/11/msv/>
prefix mccv: <http://purl.jp/bio/01/mccv#>

select DISTINCT ?gazetteer_id ?gazetteer_label ?lat ?lon
FROM <http://microbedb.jp/gazetteer/>
FROM <http://microbedb.jp/brc/>
FROM <http://microbedb.jp/gold/>
FROM <http://microbedb.jp/srs/>
WHERE
{
  { GRAPH <http://microbedb.jp/brc/> { ?s ?p ?gazetteer_id FILTER ( ?p = dc:identifier || ?p = mccv:MCCV_000032 ).  } }
  UNION 
  { GRAPH <http://microbedb.jp/gold/> { ?s meo:MEO_0000438 ?gazetteer_id } }
  UNION 
  { GRAPH <http://microbedb.jp/srs/> { ?s meo:MEO_0000438 ?gazetteer_id } }
  ?gazetteer_id rdfs:label ?gazetteer_label
  OPTIONAL { ?gazetteer_id msv:latitude ?lat . }
  OPTIONAL { ?gazetteer_id msv:longitude ?lon . }
  FILTER ((!BOUND(?lat)) || (!BOUND(?lon)))
}

出力トリプルは以下のような形式(前回からpredicateのPREFIXをmeo→msvに変更)

@prefix msv: <http://purl.jp/bio/11/msv/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://purl.obolibrary.org/obo/GAZ_00077768>   msv:latitude    "27.6648274"^^xsd:decimal .
<http://purl.obolibrary.org/obo/GAZ_00077768>   msv:longitude   "-81.5157535"^^xsd:decimal .
<http://purl.obolibrary.org/obo/GAZ_00000462>   msv:latitude    "-82.86275189999999"^^xsd:decimal .
<http://purl.obolibrary.org/obo/GAZ_00000462>   msv:longitude   "-135"^^xsd:decimal .


ファイルロードコマンド

DB.DBA.TTLP_MT (file_to_string_output ('/usr/local/virtuoso_vos7mdb/var/lib/virtuoso/db/backup/gazetteer_lonlat.ttl'),'' , 'http://microbedb.jp/gazetteer/');

Envitonment Normalization

1サンプル複数のMEOマッピング

PREFIX meo:<http://purl.jp/bio/11/meo/>

CONSTRUCT
{ 
  ?srs meo:srs_normalize ?cnt .
}
WHERE
{
  SELECT ?srs 1.0/COUNT(DISTINCT ?env) AS ?cnt
  FROM <http://microbedb.jp/srs/>
  WHERE
  {
    VALUES ?p_env { meo:MEO_0000437 meo:MEO_0000440 }
    ?srs ?p_env ?env .
  } GROUP BY ?srs ORDER BY 2
}
個人用ツール