org.pdb.query.simple.AdvancedKeywordQueryText Search$query"; $context = stream_context_create(array('http' => array( 'method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $xml)) ); $output = file_get_contents($restQueryUrl, false, $context); $n = strlen($output)/5; if ($n == 0) { $output = "ERROR: \"$query\" not found"; } else { if (strlen($query) == 4 && $n != 1) { $QQQQ = strtoupper($query); if (strpos("123456789", substr($QQQQ, 0, 1)) == 0 && strpos($output, $QQQQ) > 0) { $output = "$QQQQ\n".$output.str_replace("$QQQQ\n", "",$output); } } if ($n > 50) { $output = substr($output, 0, 250); } $output = str_replace("\n",",",$output); //http://www.rcsb.org/pdb/rest/customReport?pdbids=1crn,1d66,1blu,&customReportColumns=structureId,structureTitle $output = $restReportUrl."?pdbids=".$output."&customReportColumns=structureId,structureTitle"; $output = "".file_get_contents($output).""; } } } else if ($call == "getImageForFileLoad" || $call == "getImageFromDatabase") { // max size for image is 1000x1000 $imagefile = "/tmp/img".rand().".png"; $width = $_REQUEST[width]; $height = $_REQUEST[height]; if (!$width || $width > 1000) { $width = 300; } if (!$height || $height > 1000) { $height = 300; } if ($call == "getImageFromDatabase") { $cmd = $cmd.'"load \\"'.$database.$query.'\\"'.$postLoad.'" -g'.$width.'x'.$height.' -wPNG:'.$imagefile; } else { $file = $_REQUEST[file]; $params = $_REQUEST[params]; $cmd = $cmd.'"load \\"'.$file.'\\" '.$params.'" -g'.$width.'x'.$height.' -wPNG:'.$imagefile; } exec($cmd, $v); $imagedata = file_get_contents($imagefile); } else if ($call == "getRawDataFromDatabase") { $isBinary = (strpos(".gz", $query) >= 0); if ($database == '\\$') { // NCI -- needs post load if (substr($query, 0, 2) == '\\$') $cmd = $cmd.'"print load(\\"'.$database.$query.'\\")"'; else $cmd = $cmd.'"load \\"'.$database.$query.'\\"'.$postLoad.';write MOL"'; exec($cmd, $result); $output = implode("\n",$result); } else if ($database == ":") { // PubChem -- just get file, including charge data $cmd = $cmd.'"print load(\\"'.$database.$query.'\\")"'; exec($cmd, $result); $output = implode("\n",$result); } else { if ($database != "_") $query = $database.$query; if (strpos($query, '?POST?') > 0) { list($query,$data) = explode('?POST?', $query, 2); $context = stream_context_create(array('http' => array( 'method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $data)) ); $output = file_get_contents($query, false, $context); } else { $output = file_get_contents($query); } } } else if ($call == "saveFile") { $imagedata = $_REQUEST["data"];//getValueSimple($values, "data", ""); don't want to convert " to _ here $filename = getValueSimple($values, "filename", ""); $contentType = getValueSimple($values, "mimetype", "application/octet-stream"); if ($encoding == "base64") { $imagedata = base64_decode($imagedata); $encoding = ""; } } else { // just the test result -- penicillin $result = '{"mol":{"a":[{"x":78.474,"y":18.444,"z":3.67},{"x":64.958,"y":64.212006,"z":7.6419997},{"x":103.462,"y":26.569998,"z":-4.9280005},{"x":89.946,"y":72.338,"z":-0.956},{"x":109.19601,"y":53.517998,"z":-7.2460003},{"x":31.98,"y":28.406,"z":19.326},{"x":-84.273994,"y":-16.376001,"z":51.858},{"x":-115.051994,"y":-3.2080002,"z":14.070001},{"l":"H","x":-18.426,"y":13.716001,"z":17.006},{"x":59.22,"y":37.264,"z":9.952001},{"l":"O","x":-99.78,"y":-50.052002,"z":-24.666002},{"l":"O","x":-25.512001,"y":-33.281998,"z":-38.72},{"l":"O","x":22.08,"y":29.476002,"z":-26.811998},{"l":"O","x":-92.08,"y":-69.404,"z":14.316},{"x":-88.61001,"y":-49.4,"z":-3.246},{"x":13.762001,"y":25.081999,"z":-4.454},{"x":-70.782,"y":-26.126001,"z":3.75},{"x":-29.484001,"y":14.0,"z":-23.994},{"x":-37.694,"y":-14.437999,"z":-29.506},{"l":"H","x":-103.7,"y":-83.898,"z":8.932},{"l":"N","x":-11.774,"y":17.23,"z":-0.8759999},{"x":-59.156,"y":16.960001,"z":-17.647999},{"x":-85.96,"y":-6.886,"z":22.816},{"l":"S","x":-66.38,"y":23.898,"z":17.618},{"l":"N","x":-63.18,"y":-11.977999,"z":-20.772},{"l":"H","x":-52.845997,"y":-33.494,"z":13.710001},{"l":"H","x":-70.414,"y":29.387997,"z":-31.578003},{"l":"H","x":-93.138,"y":-36.222,"z":53.544},{"l":"H","x":-95.102005,"y":-2.47,"z":64.688},{"l":"H","x":-63.384,"y":-17.2,"z":58.034},{"l":"H","x":-115.588,"y":5.1380005,"z":-6.062},{"l":"H","x":-125.116005,"y":10.374001,"z":27.836},{"l":"H","x":-125.17799,"y":-22.512,"z":14.205999},{"l":"H","x":-22.886,"y":25.046001,"z":-41.592003},{"l":"H","x":23.692,"y":43.415993,"z":32.788},{"l":"H","x":33.742,"y":9.392,"z":29.842},{"l":"H","x":74.024,"y":-2.606,"z":5.568},{"l":"H","x":49.914,"y":78.914,"z":12.550001},{"l":"H","x":118.50201,"y":11.865999,"z":-9.842},{"l":"H","x":94.43,"y":93.39,"z":-2.7519999},{"l":"H","x":128.714,"y":59.865997,"z":-13.978}],"b":[{"b":10,"e":14,"o":2},{"b":13,"e":14},{"b":14,"e":16},{"b":16,"e":24},{"b":16,"e":22},{"b":21,"e":24},{"b":18,"e":24},{"b":6,"e":22},{"b":7,"e":22},{"b":22,"e":23},{"b":21,"e":23},{"b":17,"e":21},{"b":17,"e":18},{"b":11,"e":18,"o":2},{"b":17,"e":20},{"b":15,"e":20},{"b":5,"e":15},{"b":12,"e":15,"o":2},{"b":5,"e":9},{"b":0,"e":9,"o":2},{"b":1,"e":9},{"b":0,"e":2},{"b":1,"e":3,"o":2},{"b":2,"e":4,"o":2},{"b":3,"e":4},{"b":13,"e":19},{"b":16,"e":25},{"b":21,"e":26},{"b":6,"e":27},{"b":6,"e":28},{"b":6,"e":29},{"b":7,"e":30},{"b":7,"e":31},{"b":7,"e":32},{"b":17,"e":33},{"b":8,"e":20},{"b":5,"e":34},{"b":5,"e":35},{"b":0,"e":36},{"b":1,"e":37},{"b":2,"e":38},{"b":3,"e":39},{"b":4,"e":40}]}}'; $result = implode($result); $output = "{\"message\":\"$call - $query - $cmd\",\"values\":$values,\"content\":$result}"; } ob_start(); if ($myerror != "") { $output = $myerror; } else { if ($imagedata != "") { $output = $imagedata; header('Content-Type: '.$contentType); if ($filename != "") { header('Content-Description: File Transfer'); header("Content-Disposition: attachment; filename=\"$filename\""); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); } } else { header('Access-Control-Allow-Origin: *'); if ($isBinary) { header('Content-Type: text/plain; charset=x-user-defined'); } else { header('Content-Type: application/json'); } } if ($encoding == "base64") { $output = ";base64,".base64_encode($output); } } header('Last-Modified: '.date('r')); header('Accept-Ranges: bytes'); header('Content-Length: '.strlen($output)); print($output); ob_end_flush(); ?>