BioWiki

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

ebiからpdbのヘッダとタイトルを取得する [2013/01/31 05:38] (現在)
ライン 1: ライン 1:
 +====== EBIからPDBのHEADERとTITLEを取得する ======
 +===== PHP =====
 +EBIの[[http://​www.ebi.ac.uk/​cgi-bin/​dbfetch|CGIベースのWebサービス]]を使い、$idで指定したPDBエントリの名前やタイトルだけを取得するPHPコード例
 +<code php>
 +/*
 + * Fetch and extract PDB header and title
 + * @license ​   GPL 2 (http://​www.gnu.org/​licenses/​gpl.html)
 + * @author ​    Ikuo Obataya<​ikuo_obataya[atmrk]symplus.co.jp>​
 + */
 +$id = "​1j7i";​
 +
 +$url = "​http://​www.ebi.ac.uk/​cgi-bin/​dbfetch?​db=pdb&​format=raw&​style=raw&​id="​.$id;​
 +
 +// Regex
 +$pdbRegex = "/​^HEADER\s+(.+)\s+(\d{1,​2}-[A-Z]+-\d{1,​2})\s+([a-zA-Z0-9]{4})|^TITLE\s+(\d+\s+)?​(.+)/";​
 +
 +$handle = @fopen($url,"​r"​);​
 +if (!$handle){
 +  echo "​Couldn'​t open";
 +  exit(0);
 +}
 +for ($i=0;​$i<​10;​$i++){
 +  $line = @fgets($handle);​
 +  if(preg_match($pdbRegex,​$line,​$match)){
 +    if (!empty($match[1])){
 +      $name = $match[1];
 +      $date = $match[2];
 +      $pdbID = $match[3];
 +    }else if(!empty($match[5])){
 +      if (!empty($title)) $title.="​ ";
 +      $title.= trim($match[5]);​
 +    }
 +  }
 +}
 +print "​Name\t$name\nDate\t$date\nID\t$pdbID\nTitle\t$title\n";​
 +@fclose($handle);​
 +</​code>​
 +
 +{{tag>​EBI}}