linked data for integrating life-science databases
TRANSCRIPT
ライフサイエンスデータベースのRDF化による統合と
ゲノム情報解析への応用
川島秀一
ライフサイエンス分野のデータベースの特徴
• データ量が多い(各種オーム解析の一般化や、新型シーケンサーの普及等)
• データの種類が多様(遺伝子/アミノ酸配列、タンパク質立体構造、トランスクリプトーム、プロテオーム、タンパク質ドメイン、細胞内パスウェイ、分類、生理学、進化系統、顕微鏡写真、生息地、遺伝学、病気、病理、薬、農作物のブランド、etc)
• データの指しているものの同一性を決めるのが困難(基本、生物は全て別のものだし、その遺伝子も別のものだが、実際は異なるレベルの抽象化が行われて運用されている)
• 頻繁に更新されている(毎日~)
遺伝子配列データベースGenBankの成長(塩基数)
B
38B
75B
113B
150B
1982 1986 1990 1994 1998 2002 2006 2010
塩基配列の数
初めての完全ゲノム配列Haemophilus influenzae
(1995)
ヒトドラフトゲノム公開(2000)
相次ぐ次世代シーケンサーの発売(2005~)
B=10億次世代シーケンサーの普及
次次世代(第三世代)シーケンサーの発売(現在~)
次世代シーケンサー
ABI 3730xl
Illumina
2Mb/Day
40Gb/7Day
単純計算で2857倍
最初のヒトゲノム計画2800人以上の研究者2700億円, 13年(1990~2003)
ワトソン博士のゲノム454を使って1億円, 4ヶ月(2007)
2008年 千人ゲノム計画 (2010年終了)2008年 国際がんゲノムコンソーシアム発足
(25,000人分のがんゲノム)
解読されたゲノム配列の数
• 例えば、KEGG GENES には、 1,692 ゲノムの遺伝子情報が収録されている(2011年7月22日現在)
• 真核生物160 (うち動物56)
• 真性細菌1324
• 古細菌109
個体
データベース内の転写産物
遺伝子座
個体毎の転写産物
オーソログ情報
Gene Ontology, EC番号 etc
タンパク質
異なる物質が似たようなIDをもっていて、場合によって区別されたりされなかったり曖昧な場合がある
ライフサイエンスデータベース分野でのRDF化
•一部で注目されているが現状ではあまり進んでいない。
•大手では、UniProt が頑張っている。
•日本でも、PDBJ、DDBJなどで取り組みはじめている。
•Bio2RDF、BioGatewayなどが、サードパーティとしてRDF化を進めている。
UniProt RDF化の背景
• UniProtは、タンパク配列とアノテーションのリポジトリで、データのマネジメント、自動およびマニュアルアノテーション等の作業を行うのにソフトウェア開発が常に必要
• 複雑なデータ構造が増えるに従って、ソフトウェアの開発コストが問題になってきた
• UniProtのデータの特性を鑑みるに、RDFでデータをもつことで、ソフトウェア開発のコストを下げることができると考えた
UniProtデータセット
Name Description Source File size #triples
uniprot Protein annotation data UniProt consortium 14G 3.3 B
uniref Clusters of proteins with similar sequences UniProt consortium 7G 900M
uniparc Non-redundant archive of UniProt sequences UniProt consortium 65G 1B
citations Literature citations UniProt consortium 1355M 10,177,308
taxonomy Classification of organisms UniProt consortium 421M 5,041,437
journals Journals UniProt consortium 3M 34,850
pathways Pathways UniProt consortium 1000K 8,865
keywords Keywords UniProt consortium 940K 8,449
locations Subcellular locations UniProt consortium 468K 4,476
tissues TIssues UniProt consortium 572K 7439
components Cellular components (Organelles) UniProt consortium 6K 43
go Gene onotology SBI 25M 263,944
enzymes Classification of enzymes GO consortium 4M 4,476
core.owl Classes and properties for UniProt RDF UniProt consortium 152K
トリプルストア
トリプルストア 開発言語 #triples
Sesame Java 70 M
4store C 15 B
5store C
Virtuoso C 15.4 B
Jena Java 1.7 B
Bigdata Java 12.7 B
ARC PHP
AllegroGraph Lisp 1 B
http://esw.w3.org/LargeTripleStores より
データセット間の関係
<owl:ObjectProperty rdf:about="encodedIn"> <rdfs:label rdf:datatype="&xsd;string">encoded in</rdfs:label> <rdfs:comment rdf:datatype="&xsd;string" >The subcellular location where a protein is encoded.</rdfs:comment> <rdfs:domain rdf:resource="Protein"/> <rdfs:range rdf:resource="Subcellular_Location"/></owl:ObjectProperty>
例えば、あるProtein をコードしている遺伝子がどこにコードされているかは、UniProt データセットのエントリーとComponents データセットのエントリーが、 encodedIn プロパティによって、関連付けられていることで記述される。以下は、core.owlの該当箇所。
名前空間
RDFリソースを表現するのに、名前空間として次の様な purl
http://purl.uniprot.org/{database}/{identifier}
を定義した。また、UniProtで定義したクラスやプロパティに関しては
http://purl.uniprot.org/core/
以下で定義されている。例えば、Geneクラスのリソース であれば次のURI
http://purl.uniprot.org/core/Gene
で示されるtypeをもつ。
PDBJ, DDBJでのRDF化
• PDBJ(タンパク質の立体構造データベース)では、約7万件のデータベースエントリーから47億(4.7B)のトリプルが生成された
• http://www.pdbj.org/rdf で、IDやキーワードによるトリプルの取得は可能
• DDBJ(塩基配列のリポジトリデータベース/INSD: International Nucleotide
Sequence Database の一つ)では、1.2 億のデータベースエントリーから76
億(7.6B)トリプルが生成された
• mulgara (http://mulgara.org/)上で構築( 公開はされてないよう)
今回構築したRDFのデータ量
データソース 情報の種類 トリプルの数
KEGG Taxonomy 系統分類 23,238
KEGG GENES Cyanobacteria 遺伝子配列 708,745
KEGG OC オーソログ情報 10,384,602
hmmer Pfam-A vs Cyano ドメイン情報 11,881,212
hmmer Pfam-B vs Cyano ドメイン情報 7,007,154
Kazusa Annotatioin アノテーション 2,807,879
ラン藻ゲノムでのクエリー例1
• ラン藻ゲノムにコードされたタンパク配列のなかで、
• Synechococcus属に限って
• 1.0e-20を閾値として
• 同じタンパク配列上に現れる異なるPfamドメインのペア、、を列挙せよ
クエリー例1のSPARQL
SPARQL PREFIX hmmer: <http://hmmer.janelia.org/>PREFIX kegg: <http://www.kegg.jp/>PREFIX kg: <http://www.kegg.jp/entry/>PREFIX pfam: <http://pfam.sanger.ac.uk/>PREFIX kt: <http://www.kegg.jp/taxon/>SELECT ?pfam1, ?pfam2, COUNT(DISTINCT(?org))WHERE { GRAPH <hmmer_pfam_a_cyano> { ?gene hmmer:hit ?n1 . ?gene hmmer:hit ?n2 . ?n1 pfam:pfam_id ?pfam1 . ?n1 hmmer:i-evalue ?eval1 . ?n2 pfam:pfam_id ?pfam2 . ?n2 hmmer:i-evalue ?eval2 . } GRAPH <http://www.kegg.jp/genes> { ?gene kegg:belongs_to ?org . } GRAPH <http://www.kegg.jp/taxonomy> { ?org kegg:belongs_to kt:Synechococcus . } FILTER (?eval1 < 1.0e-10 && ?eval2 < 1.0e-10 && ?pfam1 != ?pfam2)};
生物種が多い順に結果の上位10の結果
Domain I Domain II #genes #speciesRNA_pol_Rpb2
_3RNA_pol_Rpb2
_19 9
G6PD_N G6PD_C 9 9
5_3_exonuc_N 5_3_exonuc 9 9
HIT DcpS_C 9 9Glyco_hydro_38 Glyco_hydro_38
C9 9
RNA_pol_Rpb2_6
RNA_pol_Rpb2_3
9 9GARS_N GARS_C 9 9DSHCT DEAD 9 9
adh_short KR 12 9EFG_C EFG_IV 10 9
....以下171ペアが9種のSynechococcusに存在していた
ラン藻ゲノムでのクエリー例2
• KEGGのオーソログクラスター(OC)の中で
• Cyanobacteriaの遺伝子を含むもののうち
• Kazusa AnnotationによってPumMedの文献情報が付加されているものを
• KO(KEGG Othology)情報とともに、、列挙せよ
クエリー例2のSPARQLSPARQLPREFIX kegg: <http://www.kegg.jp/>PREFIX kg: <http://www.kegg.jp/entry/>PREFIX kt: <http://www.kegg.jp/taxon/>PREFIX kns: <http://a.kazusa.or.jp/ns/>SELECT ?oc, ?gene, ?ko, COUNT(DISTINCT(?pm))WHERE { GRAPH <http://www.kegg.jp/oc> { ?gene kegg:belongs_to ?oc . } GRAPH <http://www.kegg.jp/genes> { ?gene kegg:belongs_to ?taxon . ?gene kegg:linked_to ?cb_gene . OPTIONAL { ?gene kg:ortholog ?ko . } } GRAPH <http://www.kegg.jp/taxonomy> { ?taxon kegg:belongs_to kt:Cyanobacteria . } GRAPH <http://kazusa.or.jp/cyanobase> { ?cb_gene ?p1 ?bm . ?bm ?p2 ?pm . }};
PumMed IDが多い順に結果の上位10位
OC #gene with PMID #PMIDGenes_537709 3 1296Genes_565278 3 761Genes_710476 2 527Genes_189668 1 497Genes_710587 1 479Genes_710480 1 416Genes_711471 1 407Genes_71824 1 393Genes_75617 5 381Genes_711511 1 376
まとめ :Semantic Web の長所
• データをURIで表現することで、ユニーク性が担保され統合しやすくなる
• データの表現方法が統一される。構造もシンプル
• いいオントロジーが構築されれば、推論など高度な検索が可能になる
• W3C勧告の規格なので、足並みが揃いやすいかも
まとめ:Semantic Web の短所
• SPARQLは難しい(普通の人には書けない)。 複雑なクエリーを(よく考えずに)問い合わせると、答えが返ってくるのに時間がかかりすぎる。-> 優れたユーザインターフェースの開発が重要。実際に生物研究者が問い合せたいような疑問のテンプレートも必要。
• まだデータが少ない -> 臨界点を超えたら、一気に整備されるかもしれない。
• 様々なオントロジーが構築中であるが、まだ利用するには敷居が高い。
• トリプルストアの性能が未知数 -> 生命科学のデータは異常に量が多い。ベンダーに期待。