SPARQLthon27/TogoGenome

提供:TogoWiki

移動: 案内, 検索

目次

ゲノム RDF 真核対応

SPARQLthon26(前回)

課題

データ作成

  • 課題1:有効なシーケンスデータが対象外になっている可能性がある

ロードするRefseqID(Nucleotide)を選定する際に、Identifiers.orgに記載されているRefSeqIDのIdentifier patternに準拠したIDだけでフィルタしているが、その中に有効そうなIDが含まれている(416件)
例:NZ_CM001142.1(NZ_にアルファベット2文字続くが、Identifiers.orgのパターンでは"(NZ\_[A-Z]{4}\d+))"と4文字必要な正規表現になっている)

--> Identifiers.orgのパターンの方が間違えているようなので、"NZ_CM001142.1"も含めるようにする。

  • 課題2:NT_で始まる品質の悪いID(Contig or scaffold, clone-based or WGS)も登録される

RefSeqIDのPrefixリスト
現状ではNTが含まれるのは4ゲノム

180454/PRJNA163/NT_078265,NT_078266,NT_078267,NT_078268(Anopheles gambiae str. PEST ハマダラ蚊) リンク
7227/PRJNA164/NT_033777,NT_033778,NT_033779,NT_037436(Drosophila melanogaster ミバエ) リンク
7240/PRJNA29993/NT_167061,NT_167066,NT_167067,NT_167068(Drosophila simulans オナジショウジョウバエ) リンク
7245/PRJNA29999/NT_167062,NT_167063,NT_167064,NT_167065(Drosophila yakuba ヤクバショウジョウバエ) リンク

--> 品質が悪くても仕方ないことなので含めたままにする。

  • 課題3:TogoWSから取得できないnucleotideデータがある

何度繰り返しても502 Proxy Errorになるデータ

http://togows.dbcls.jp/entry/nucleotide/NC_008801
http://togows.dbcls.jp/entry/nucleotide/NC_008802
http://togows.dbcls.jp/entry/nucleotide/NC_008803
http://togows.dbcls.jp/entry/nucleotide/NC_008804


--> やり直したら取得できたので追加する。

  • 課題4:複数のTaxIDが含まれるBioProject

ミトコンドリアだけがChromosomeのTaxIDと異なるケース等がみられた。リスト

--> BioProject自体は複数のTaxIDを含む場合はある。同一AccessionIDの場合には問題になるので再検証する。

テキスト検索

検索用クエリの作成

Protein names

元クエリ 元クエリでは一つのIDで絞ったプロテインにOPTIONALで情報を足している。
各OPTINALのトリプルパターンに中でテキスト検索にヒットするProteinIDを求めることになる。

Protein nameのひとつめのクエリの対応するテキスト検索クエリ

OPTIONALの中のトリプルパターンの構成が同等なので、VALUESを使ってまとめてテキスト検索が書ける。

DEFINE sql:select-option "order"
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX taxonomy: <http://purl.uniprot.org/taxonomy/>

SELECT DISTINCT ?gene_name ?id_upid ?gene_tax # ?synonyms_name ?locus_name ?orf_name
FROM <http://togogenome.org/graph/uniprot/>
FROM <http://togogenome.org/graph/tgup/>
WHERE {
 VALUES ?prop { up:locusName skos:altLabel up:locusName up:orfName }
  ?gene ?prop ?gene_name .
  ?gene_name bif:contains "all1455" .
  ?protein up:encodedBy ?gene .
  ?protein a <http://purl.uniprot.org/core/Protein> .
  ?id_upid rdfs:seeAlso ?protein .
  ?gene_tax rdfs:seeAlso ?id_upid .
}

Protein nameの2つ目のクエリの対応するテキスト検索クエリ

OPTIONALの中のトリプルパターンの構成がバラバラで、「いずれかの項目に検索対象テキストにマッチするProtein」を探す場合には、それぞれに検索してUNIONで繋げるか、SPARQLを分ける必要がある。
速度を考慮すると、個々にSPARQLを分けた方がよい。

  • parent_taxonomy_names("nostocaceae*" )
DEFINE sql:select-option "order"
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX taxonomy: <http://purl.uniprot.org/taxonomy/>

SELECT DISTINCT ?parent_taxonomy_names ?gene
FROM <http://togogenome.org/graph/uniprot/>
FROM <http://togogenome.org/graph/tgup/>
WHERE {
 ?parent_taxonomy up:scientificName ?parent_taxonomy_names .
 ?parent_taxonomy_names bif:contains '"nostocaceae*"' .
 ?tax_id rdfs:subClassOf* ?parent_taxonomy .
 ?protein up:organism ?tax_id .
 ?protein a <http://purl.uniprot.org/core/Protein> .
 ?id_upid rdfs:seeAlso ?protein .
 ?gene ?p ?id_upid .
}
  • ec_name("1.18.1*" )
DEFINE sql:select-option "order"
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX taxonomy: <http://purl.uniprot.org/taxonomy/>

SELECT ?ec_name ?gene
FROM <http://togogenome.org/graph/uniprot/>
FROM <http://togogenome.org/graph/tgup/>
WHERE {
 ?recommended_name_node up:ecName ?ec_name .
 ?ec_name bif:contains '"1.18.1*"' .
 ?protein up:recommendedName ?recommended_name_node .
 ?protein up:organism ?tax_id .
 ?protein a <http://purl.uniprot.org/core/Protein> .
 ?id_upid rdfs:seeAlso ?protein .
 ?gene ?p ?id_upid .
}
  • recommended_name("Nitrogenas*")
DEFINE sql:select-option "order"
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX taxonomy: <http://purl.uniprot.org/taxonomy/>

SELECT ?recommended_name ?gene
FROM <http://togogenome.org/graph/uniprot/>
FROM <http://togogenome.org/graph/tgup/>
WHERE {
 ?recommended_name_node up:fullName ?recommended_name .
 ?recommended_name bif:contains '"Nitrogenas*"' .
 ?protein up:recommendedName ?recommended_name_node .
 ?protein a <http://purl.uniprot.org/core/Protein> .
 ?id_upid rdfs:seeAlso ?protein .
 ?gene ?p ?id_upid .
}
  • alternative_names("Nitrogenas*")
DEFINE sql:select-option "order"
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX taxonomy: <http://purl.uniprot.org/taxonomy/>

SELECT ?alternative_names ?gene
FROM <http://togogenome.org/graph/uniprot/>
FROM <http://togogenome.org/graph/tgup/>
WHERE {
 ?alternative_names_node up:fullName ?alternative_names .
 ?alternative_names bif:contains '"Nitrogenas*"' .
 ?protein up:alternativeName ?alternative_names_node .
 ?protein a <http://purl.uniprot.org/core/Protein> .
 ?id_upid rdfs:seeAlso ?protein .
 ?gene ?p ?id_upid .
}
  • organism_name("Nostoc*")
DEFINE sql:select-option "order"
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX taxonomy: <http://purl.uniprot.org/taxonomy/>

SELECT ?organism_name ?gene
FROM <http://togogenome.org/graph/uniprot/>
FROM <http://togogenome.org/graph/tgup/>
WHERE {
 ?tax_id up:scientificName ?organism_name . 
 ?organism_name bif:contains '"Nostoc*"' .
 ?protein up:alternativeName ?alternative_names_node .
 ?protein a <http://purl.uniprot.org/core/Protein> .
 ?id_upid rdfs:seeAlso ?protein .
 ?gene ?p ?id_upid .
}
個人用ツール