SPARQLthon27/TogoGenome
提供:TogoWiki
目次 |
ゲノム RDF 真核対応
課題
データ作成
- 課題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 . }