-
Notifications
You must be signed in to change notification settings - Fork 0
/
corrgenecell.php
41 lines (35 loc) · 1.05 KB
/
corrgenecell.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
include "common.php";
$query = json_decode(getdef($_GET,'q','{}'),TRUE);
$geneid = getdef($query, 'geneset', array("ENSMUSG00000000126","ENSMUSG00000000028"));
$datasets = getdef($query, 'datasets', array("ola_a2i"));
$graphw = filteralpha(getdef($query, 'graphw', 500));
$cmd = "echo 'genes <- c();";
foreach($geneid as $s){
$cmd=$cmd . "genes <- c(genes,\"" . filteralpha($s) . "\");";
}
$cmd = $cmd . "datasets <- c();";
foreach($datasets as $s){
$cmd=$cmd . "datasets <- c(datasets,\"" . filteralpha($s) . "\");";
}
$cmd = $cmd . "graphw<-" . $graphw . ";";
$cmd = $cmd . "source(\"corrgenecell.R\")' | /usr/bin/R --vanilla --slave";
$handle = popen($cmd, "r");
$ret = "";
do{
$data = fread($handle, 8192);
if(strlen($data) == 0){
break;
}
$ret .= $data;
}
while(true);
pclose($handle);
header("Cache-Control: no-cache, must-revalidate");
if(strlen($ret)<100){ #for any errors?
echo "error running " . $cmd;
} else {
header("Content-type:image/png");
echo $ret;
}
?>