BH16.12/LinkDB

提供:TogoWiki

(版間での差分)
移動: 案内, 検索
(UniProtのidmappingにPDB chain と insd protein_id の対応があるが、少し注意を要する。)
(SPARQL queries)
52行: 52行:
</pre>
</pre>
(rdfs:seeAlso はURLベタ書きの必要あり。このポータルでは、rdfs:はhttpsではなくてhttpで定義されているため。)
(rdfs:seeAlso はURLベタ書きの必要あり。このポータルでは、rdfs:はhttpsではなくてhttpで定義されているため。)
 +
 +
* BioSample - Nucleotide - INSDC Protein - PDBのリンクを取り出す
 +
<pre>
 +
PREFIX insdc: <http://ddbj.nig.ac.jp/ontologies/nucleotide/>
 +
PREFIX obo:  <http://purl.obolibrary.org/obo/>
 +
SELECT
 +
distinct ?biosample ?s as ?sequence ?protein ?pdb
 +
WHERE
 +
{
 +
  ?pdb <https://www.w3.org/2000/01/rdf-schema#seeAlso> ?protein.
 +
  FILTER(regex(?pdb,'^http://rdf.wwpdb.org/pdb'))
 +
  ?s a insdc:Entry.
 +
  #filter(?s = <http://identifiers.org/insdc/CP002459.1>)
 +
  ?s insdc:dblink ?biosample.
 +
  ?biosample a <http://ddbj.nig.ac.jp/ontologies/nucleotide/BioSample>.
 +
  ?s insdc:sequence ?seq.
 +
  ?feature obo:so_part_of+ ?seq.
 +
  ?feature rdfs:seeAlso ?protein.
 +
  ?protein a insdc:Protein.
 +
  #?pdb <https://www.w3.org/2000/01/rdf-schema#seeAlso> ?protein.
 +
  #filter(?feature != ?pdb)
 +
  #?seq ?p ?o.
 +
}
 +
limit 100 offset 1
 +
</pre>

2016年12月13日 (火) 12:05時点における版

目次

PDBjとDDBJをつなぐ

UniProtのidmappingにPDB chain と insd protein_id の対応があるが、少し注意を要する。

いわゆるchain IDには auth_asym_idlabel_asym_id の2種類がある。

  • auth_asym_id -> 伝統的なchain IDで、登録者が勝手に決める。必ずしも A から始まらない。例: 2HKH (抗体) の L (light chain), H (heavy chain)
  • label_asym_id -> PDB側で統一的に定めたchain ID で必ず A, B, C ... の順で割り振られる。2HKHでは auth_asym_id = L -> label_asym_id = A; auth_asym_id H -> label_asym_id = B になる。

auth_asym_id は分子をuniqueに定めない

例えば、ヘモグロビン 1HBB (ヘモグロビン)の場合、アルファ鎖のひとつは auth_asym_id = Aだが、それに結合しているヘム及び水分子もauth_asym_id = Aになる。label_asym_id は A (蛋白質)、E(ヘム)、I(水)となる。

したがって、auth_asym_id ではPDBエントリーの蛋白質分子に固有のURLが定まらない。(これが便利な場合もある:タンパク質とそのリガンドを同時に指定したい場合など。)

化合物固有のID entity_id

なおPDBには分子の化合物のIDとしてentity_id がある。上記 1HBBの場合、ヘモグロビンのα鎖は2分子含まれており、 label_asym_id = AとCが割り当てられているが、それらのentity_idは共に"1"にである。

- http://rdf.wwpdb.org/pdb/1HBB/struct_asym/A
- http://rdf.wwpdb.org/pdb/1HBB/struct_asym/C
- http://rdf.wwpdb.org/pdb/1HBB/entity/1

chain IDによる指定はある意味"redundant"になる。これが良いか悪いかは目的次第だが、今回はredandancyを除いて entity_id を用いることにする。

伝統的chain IDと化合物IDの対応

[PDBj Mine SQL]サービスを使うと対応が取れる。

SELECT UPPER(e.pdbid), e.entity_id, UNNEST(string_to_array(e.pdbx_strand_id,',')) AS auth_asym_id
FROM entity_poly e

[結果] (TSVでダウンロードできます。[REST API]もあります。)

label_asym_idとの対応も含めたい場合、

SELECT UPPER(e.pdbid), e.entity_id, a.id AS label_asym_id, UNNEST(string_to_array(e.pdbx_strand_id,',')) AS auth_asym_id
FROM entity_poly e
JOIN struct_asym a ON a.pdbid = e.pdbid AND a.entity_id = e.entity_id

[結果]

まとめ

このBHでは、PDBの化合物IDとINSDのprotein IDの対応をUniProt の提供する idmapping_selected.tab.gz から生成した。

SPARQL queries

RDF Portal のDDBJグラフにリンク情報を入れてもらった。

  • PDB関連のリンクを取り出す。
SELECT ?s ?o
WHERE {?s <https://www.w3.org/2000/01/rdf-schema#seeAlso> ?o 
          FILTER(regex(?s,'^http://rdf.wwpdb.org/pdb'))
      } LIMIT 100

(rdfs:seeAlso はURLベタ書きの必要あり。このポータルでは、rdfs:はhttpsではなくてhttpで定義されているため。)

  • BioSample - Nucleotide - INSDC Protein - PDBのリンクを取り出す
PREFIX insdc: <http://ddbj.nig.ac.jp/ontologies/nucleotide/>
PREFIX obo:   <http://purl.obolibrary.org/obo/>
SELECT
distinct ?biosample ?s as ?sequence ?protein ?pdb
WHERE
{
  ?pdb <https://www.w3.org/2000/01/rdf-schema#seeAlso> ?protein.
  FILTER(regex(?pdb,'^http://rdf.wwpdb.org/pdb'))
  ?s a insdc:Entry.
  #filter(?s = <http://identifiers.org/insdc/CP002459.1>)
  ?s insdc:dblink ?biosample.
  ?biosample a <http://ddbj.nig.ac.jp/ontologies/nucleotide/BioSample>.
  ?s insdc:sequence ?seq.
  ?feature obo:so_part_of+ ?seq.
  ?feature rdfs:seeAlso ?protein.
  ?protein a insdc:Protein.
  #?pdb <https://www.w3.org/2000/01/rdf-schema#seeAlso> ?protein.
  #filter(?feature != ?pdb)
  #?seq ?p ?o.
}
limit 100 offset 1
個人用ツール