Loading
PDBj
メニューPDBj@FacebookPDBj@TwitterPDBj@YouTubewwPDB FoundationwwPDB
RCSB PDBPDBeBMRBAdv. SearchSearch help

Restインターフェース例

このページの他言語版もあります: English

curlの例

HEM化合物の構造データファイルをmmCIFフォーマットで取得する際にUNIX系システムで使用されるcurlコマンドの例を示します。

$ curl -F "id=HEM" -F "format=mmcif" https://pdbj.org/rest/downloadCOMPfile > HEM.cif.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4703  101  4463  120   240  22121   1189 --:--:-- --:--:-- --:--:--  207k

$ zcat HEM.cif.gz | head
data_HEM
# 
_chem_comp.id                                    HEM 
_chem_comp.name                                  "PROTOPORPHYRIN IX CONTAINING FE" 
_chem_comp.type                                  NON-POLYMER 
_chem_comp.pdbx_type                             HETAIN 
_chem_comp.formula                               "C34 H32 Fe N4 O4" 
_chem_comp.mon_nstd_parent_comp_id               ? 
_chem_comp.pdbx_synonyms                         HEME 
_chem_comp.pdbx_formal_charge                    0

Pythonの例

次の例は詳細検索で、クライアント側のインターフェース内に 同等のページがあります。 このスクリプトは、2014年1月1日以降に公開された、分解能が1.8Å以下のすべてのX線エントリーを検索します。 検索クエリは、pdbid、構造のタイトル、分解能を取得し、最後に分解能で結果を並べ替えます。

import urllib, json

url = "https://pdbj.org/rest/newweb/search/pdb"
params = "rdate_after=2014-01-01&method=1&res_max=1.8&sortBy=8"

json_data = urllib.request.urlopen(url+"?"+params).read()
data = json.loads(json_data)

total = data["total"]
results = data["results"]
print("Total number of results:", total)
print("Printing the first 10 results:")
for i in range(10): print(results[i][0], results[i][1], results[i][13])

上記のコードでは、クエリの結果を取得し(9行目)、JSONデコーダを使用して結果を読み込みます(10行目)。 JSONデコーダーによってデータが読み込まれた後、データはPythonのネイティブオブジェクトとしてアクセス可能になります(19行目と20行目などを参照)。 最後に、スクリプトは結果の総数と最初の10件の結果を(画面に)出力します。

Perlの例

以下の例は、ステータス検索で、クライアント側のインターフェース内にも 同等のページがあります。 このスクリプトは、2021年1月1日以前に登録されたすべての未公開エントリー(HPUB)を検索します。 このクエリは、すべての列(pdbid、author_list、title、status_code、author_release_sequence、date_hold_coordinates、initial_deposition_date) を取得し、最後に登録の古い順に結果を並べ替えます。


use LWP::Simple;
use JSON qw(decode_json);

$url = "https://pdbj.org/rest/newweb/search/status";
$params = "status_code=HPUB&ddate_before=2021-01-01&sortBy=4";

$json_data = get($url . "?" . $params);
$data = decode_json($json_data);

$total = $data->{"total"};
my @results = @{$data->{"results"}};

print "Total number of results: " . $total . "\n";
print "Printing the first 10 results:\n";

foreach my $r (@results[0..10]) {
  foreach my $i (@$r) {
    print $i . ",";
  }
  print "\n";
}

上記のコードでは、クエリの結果を取得し(7行目)、JSONデコーダを使って結果を読み込んでいます(8行目)。 JSONデコーダでデータが読み込まれた後、データはPerlのネイティブ・オブジェクトとしてアクセスできるようになります(13行目と14行目を参照)。 最後に、スクリプトは結果の総数と最初の10件の結果を(画面に)出力します。

上記のコードには、CPANリポジトリ経由でインストール可能なjsonパーサー(JSON)が必要です。

Rの例

次の例はmine 2 sql検索で、クライアント側のインターフェイスにも 同等のページ があります。さらに、PDBjのchemieサービスでも関連PDBエントリータブに全く同じクエリを使用しています。 このスクリプトは、指定された化合物ID(ここでは「K」)に関連する全てのPDBエントリーを検索します。 この検索では、 brief_summaryテーブルのカラム(pdbid, struct_title, deposit_author, citation_title_pri, citation_journal_pri, citation_year_pri, citation_volume_pri, db_pubmed, db_doi, deposition_date, release_date, modification_date, exptl_method, resolution, pdbx_descriptor) の一部を取得しています。


library(RCurl)
library(rjson)

url <- "https://pdbj.org/rest/newweb/search/sql"
params <- "q=select%20distinct%20on%20(chem_comp.pdbid)%20brief_summary.pdbid%2C%20struct_title%2C%20deposit_author%2C%20citation_title_pri%2C%20citation_journal_pri%2C%20citation_year_pri%2C%20citation_volume_pri%2C%20db_pubmed%2C%20db_doi%2C%20deposition_date%2C%20release_date%2C%20modification_date%2C%20exptl_method%2C%20resolution%2C%20pdbx_descriptor%20from%20brief_summary%20inner%20join%20chem_comp%20on%20chem_comp.pdbid%20%3D%20brief_summary.pdbid%20where%20chem_comp.id%3D%27K%27"

json_data <- getURLContent(paste(url,params, sep="?"))
data <- fromJSON(json_data)

total <- data["total"]
results <- data["results"][[1]]

print(paste("total number of results:", total))
print("Printing the first 10 results:")

for (r in head(results, 10)) {
  print(paste(r[[1]], r[[2]], sep=" - "))
}

上記のコードでは、クエリの結果を取得し(7行目)、JSONデコーダを使用して結果をロードします(8行目)。 JSONデコーダによってデータが読み込まれた後、データはRのネイティブ・オブジェクトとしてアクセス可能になります(13行目と14行目などを参照)。 最後に、スクリプトは結果の総数と最初の10件の結果を(画面に)出力します。

上記のコードには、jsonパーサー(rjson)とHTTP取得モジュール(RCurl)が必要で、どちらもCRANリポジトリからダウンロードできます。


作成日: 2021-06-17 (最終更新日: more than 1 year ago)2022-04-20

225946

件を2024-10-09に公開中

PDB statisticsPDBj update infoContact PDBjnumon