BioWiki

EBIからPDBのHEADERとTITLEを取得する

PHP

EBIのCGIベースのWebサービスを使い、$idで指定したPDBエントリの名前やタイトルだけを取得する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);