BH12.12/MBGD
提供:TogoWiki
目次 |
RDF化
変更点
- URI内に、Release Date、Ortholog Table ID を組み込む
- <http://.*/orthogroup/¥d+> → <http://.*/2012-01/default/cluster/¥d+>
- オーソログクラスターにOrtholog Table IDをひも付けておいた
- mbgd:clusterOf <http://.*/2012-01/default/cluster>
- オーソログクラスターにOrtholog Table IDをひも付けておいた
- <http://.*/homcluster/¥d+> → <http://.*/2012-01/default/homcluster/¥d+>
- <http://.*/gene/.*/¥d+> → <http://.*/2012-01/default/domain/.*/¥d+>
- <http://.*/orthogroup/¥d+> → <http://.*/2012-01/default/cluster/¥d+>
- その他の変更
- mbgd:from, mbgd:to → mbgd:start, mbgd:end
- mbgd:Orthogroup → mbgd:Cluster
- <http://.*/rdf-schema#> → <http://.*/mbgd.owl#>
- URIのポート番号を除いた
追加データ
- 様々な生物種セットについて、オーソログテーブルを作成
- いくつかのオーソログテーブルを、ロードしてテストした
- tax9(ブフネラ・アフィディコラ, 12 genomes)
- tax809 (クラミジア科, 8 genomes)
Syntenic Core について
- <SyntenicCore50> :member <Cluster100_1>
- <Cluster100_1> :next <Cluster56>
- <Cluster56> :next <Cluster33>
- <Cluster100> :member <Cluster100_1>
SPARQL
- 特定のオーソログクラスタリング結果を指定して (tax9: クラミジア科, 8 genomes)、rpoBのオーソログメンバーを取得
prefix mbgd: <http://mbgd.genome.ad.jp/rdf/2012-02/mbgd.owl#> select $cluster $gene where { $cluster mbgd:clusterOf <http://mbgd.genome.ad.jp/rdf/2012-02/tax9> . $cluster mbgd:gene "rpoB" . $cluster mbgd:member $domain . $domain mbgd:domainOf $gene . }
- Enterobacteriaceae (Taxonomy ID 543) で保存されているオーソログを知りたい
25 生物種のうち何生物種が持っているかを、オーソログごとに調べ、多い順にソートするSPARQL
define input:inference "http://localhost:8890/DAV/owl/rule_set" PREFIX mbgd: <http://mbgd.genome.ad.jp:8036/rdf/rdf-schema#> PREFIX tax: <http://purl.org/obo/owl/NCBITaxon#> select $cluster count(distinct $genome) as $count where { $cluster mbgd:member $domain. $domain mbgd:domainOf $gene. $gene mbgd:geneOf $genome . $genome a tax:NCBITaxon_543 . } order by desc ($count)
20種(80%)以上が持っている:1,044個のオーソログクラスター
15種(60%)以上が持っている:2,115個のオーソログクラスター
時間:14.7 sec
- 様々なオーソログクラスターのメンバー遺伝子の、アノテーションを取得する
- (注)以下のエンドポイント mbgd.genome.ad.jp:8048 は、Virtuosoのデフォルト設定なので、10,000行までしか出力されない
#!/Users/chiba/bin/sparqling-v mbgd.genome.ad.jp:8048 json prefix mbgd: <http://mbgd.genome.ad.jp:8036/rdf/rdf-schema#> select $cluster $gene $geneDescr where { $cluster mbgd:member $domain . $domain mbgd:domainOf $gene . $gene mbgd:geneDescr $geneDescr . }
http://sparqlbin.com/#0020255c1de383d9e5ecf8f7982c0e73
- メンバー数が10個から20個のクラスターに限定して、遺伝子のアノテーションを取得
#!/Users/chiba/bin/sparqling-v mbgd.genome.ad.jp:8047 json prefix mbgd: <http://mbgd.genome.ad.jp:8036/rdf/rdf-schema#> select $cluster $gene $geneDescr where { $cluster mbgd:member $domain . $domain mbgd:domainOf $gene . $gene mbgd:geneDescr $geneDescr . { select $cluster count(distinct $domain) as $count where { $cluster mbgd:member $domain . } } . Filter(($count >= 10) && ($count <= 20)) } order by $cluster
Emacs sparqling-mode
sparqling-mode.el
(defun sparqling-buffer () "Submit the current buffer as a query to a SPARQL HTTP endpoint." (interactive) (let (tmp beg end command-line-text mode-text) (setq tmp (point)) ;; check if the first line is shebang line (if (string= "#!" (buffer-substring-no-properties 1 (min 3 (point-max)))) (progn ;; get the command line (goto-char (point-min)) (forward-char 2) (setq beg (point)) (end-of-line) (setq end (point)) (setq command-line-text (buffer-substring-no-properties beg end)) (backward-word) (setq beg (point)) (setq mode-text (buffer-substring-no-properties beg end)) ;; execute (save-buffer) (delete-other-windows) (shell-command (concat command-line-text " " (buffer-file-name)) nil nil) (message (concat "Shell Command Executed: " command-line-text " " (buffer-file-name))) (other-window 1) (if (string= (buffer-name) "*Shell Command Output*") (progn (fundamental-mode) (if (string= "json" mode-text) (if (fboundp 'js2-mode) (js2-mode) (java-mode))) (if (string= "xml" mode-text) (xml-mode)) (if (string= "html" mode-text) (html-mode)) (setq truncate-lines t) (other-window 1) )) )) (goto-char tmp) )) (define-derived-mode sparqling-mode shell-script-mode "Sparqling" (define-key sparqling-mode-map [\C-\return] 'sparqling-buffer) ) (font-lock-add-keywords 'sparqling-mode '( ("\\?\\(\\w+\\)" . (1 font-lock-variable-name-face nil t)) ("\\$\\(ARG\\w+\\)" . (1 font-lock-function-name-face nil t)) ("\\$\\(\\w+\\)" . (1 font-lock-variable-name-face nil t)) ("select" . font-lock-keyword-face) ("construct" . font-lock-keyword-face) ("where" . font-lock-keyword-face) ("service" . font-lock-keyword-face) ))
Install
- sparqling-mode.ql をEmacs Lispのパスに入れ、下記を.emacsに追加する。
(autoload 'sparqling-mode "sparqling-mode" "Mode for editing SPARQL files" t) (setq auto-mode-alist (cons (cons "\\.rq$" 'sparqling-mode) auto-mode-alist))
- 同時に、sparqling-vもインストールしておけば、以下のように、SPARQLの実行までできるようになる。
Usage
- SPARQLファイル(ファイル名が *.rq)を開くと、自動的にsparqling-modeが起動する。
- SPARQLを編集する。自動でindentation、syntax highlightingが行われる。
- SPARQLのキーワードを sparqling-mode.el に登録しておくと、それらの色も変わる。
- (小文字の select, construct, where, service のみ、あらかじめ登録してある。)
- shebangラインに、SPARQLクライアントであるsparqling-vが指定されている場合、以下のようにしてSPARQLの実行までできる。
- SPARQLを編集後 Ctrl + return と叩くと、下に別ウィンドウが開いて、SPARQLクエリの実行結果が表示される。
- shebangラインの末尾にあるフォーマット(json, xml等)に応じて、実行結果のフォーマットは変わる。
- 実行結果のフォーマットに応じてモードが設定される。(json → js2-mode がインストールされていれば js2-mode, なければ java-modeで表示)
- SPARQLを編集後 Ctrl + return と叩くと、下に別ウィンドウが開いて、SPARQLクエリの実行結果が表示される。
Memo
- GWT (Google Web Toolkit) による、Webアプリケーションのユーザインターフェースの実装(ヨハンさん)
- あるファミリーでは、60%以上が持っており、別のあるファミリーでは、20%以下しか持っていない、そういうオーソログは?