"; #################### Output data from Mysql into text files ######################### $q1 = "select filetype,name from bedfile_real where bedfile_id = $bedfile_id1"; $q2 = "select filetype,name from bedfile_real where bedfile_id = $bedfile_id2"; $row = mysql_fetch_row(mysql_query ($q1)); $table1 = $row[0];$filename1 = $row[1]; // need table1 name $row = mysql_fetch_row(mysql_query ($q2)); $table2 = $row[0];$filename2 = $row[1]; // need table2 name print "Compared Files: (1)$filename1 (2)$filename2
"; print "Tables;$table1 $table2
"; $table1 = $table1."_real"; $q3 = "select chrom,chromstart,chromend,name,score,strand from $table1 where bedfile_id = $bedfile_id1 order by chrom,chromstart into outfile \"/var/www/DASR_2011/DASR_compare/temp/1_$filename1\""; $table2 = $table2."_real"; $q4 = "select chrom,chromstart,chromend,name,score,strand from $table2 where bedfile_id = $bedfile_id2 order by chrom,chromstart into outfile \"/var/www/DASR_2011/DASR_compare/temp/2_$filename2\""; mysql_query($q3) or die ("Error q3!"); mysql_query($q4) or die ("Error q4!"); #################### Run bedtool ######################### $temp = "temp/result.bed"; $action = "/var/www/DASR_2011/BEDTools-Version-2.11.2/bin/intersectBed -wao -a temp/1_$filename1 -b temp/2_$filename2 > $temp"; // original overlapped file system($action); // call BEDTools ############### Get cutoff processed file(combined columns)################ $random_number = genRandomString(); print "
Please Keep Your Retrieval ID: $random_number
"; $new_file = "temp/$random_number"."_combinedcolumns".".txt"; //combined columns overlaps_cut($new_file,$temp,$overlaps); function overlaps_cut($new_file,$temp,$overlaps) { $fh =fopen($temp,"r") or exit("Unable to open $temp!"); // read from an original overlapped file, $temp $fh1=fopen($new_file,"w") or exit("Unable to write $new_file!"); // write into a new overlapped file while(!feof($fh)) { $line = fgets($fh); $chr = explode("\t",$line); if ((int)$chr[sizeof($chr)-1] >= $overlaps) // according to some criteria { //print "
$chr $overlaps
"; fwrite($fh1,$line); } } fclose($fh); fclose($fh1); } ###############overlap_bedfile(overlap interval)################ $new_file1 = "temp/$random_number"."_overlapbedfile".".txt"; // overlap_bedfile $fh =fopen($new_file,"r") or exit("Unable to open $new_file!"); // read from an original overlapped file, $temp $fh1=fopen($new_file1,"w") or exit("Unable to write $new_file1!"); // write into a new overlapped file while(!feof($fh)) { $line = fgets($fh); $chr = explode("\t",$line); for ( $i=1; $i<=sizeof($chr)-1; $i++) { if ($chr[$i] == $chr[0]) { $i += 1; $low = max($chr[$i], $chr[1]); // low boundary of the overlap interval $high = min($chr[$i+1],$chr[2]); // high boundary of the overlap interval fwrite($fh1,"$chr[0]\t$low\t$high\n"); } } } fclose($fh); fclose($fh1); system("chmod a+x 777 $new_file"); system("chmod a+x 777 $new_file1"); #################### Plot Graphics ####################### $chromosome = chromosome_count($new_file); $fmt_xaxis = join("|",array_keys($chromosome)); $fmt_yaxis = join(",",array_values($chromosome)); //cht (chart type), chd (data), and chs (chart size) //print max(array_values($chromosome)); $chart1 = ""; print $chart1; print "
Figure 1: Overlap-counts distribute on all Chromosome.
"; $file1_percentage = get_percentage_array(chromosome_count($new_file),chromosome_count("temp/1_$filename1")); $file2_percentage = get_percentage_array(chromosome_count($new_file),chromosome_count("temp/2_$filename2")); $fmt_xaxis = join("|",array_keys($file1_percentage)); $fmt_yaxis_1 = join(",",array_values($file1_percentage)); $fmt_yaxis_2 = join(",",array_values($file2_percentage)); $chart2 = ""; print $chart2; print "
Figure 2: Overlaps-Per-Read(OPR) for $filename1 and $filename2.
"; print "
Intuitively, a higher OPR curve indicates that two samples overlaps better.
"; #################### Statistics On a genome basis ####################### $total_overlaps = array_sum(array_values($chromosome)); $total_file1_percentage = round($total_overlaps/array_sum(array_values(chromosome_count("temp/1_$filename1"))),4); $total_file2_percentage = round($total_overlaps/array_sum(array_values(chromosome_count("temp/2_$filename2"))),4); $total_statistics = array( "Overlap_chr"=>$chromosome, "Overlap_total"=>$total_overlaps, "OPR_file1"=>$file1_percentage, "OPR_file2"=>$file2_percentage, "OPR_total_file1"=>$total_file1_percentage, "OPR_total_file2"=>$total_file2_percentage ); #################### Remove the unnecessary files ####################### system("rm temp/result.bed temp/2_$filename2 temp/1_$filename1"); ######################################################################### print "
Format1-Combined Colummns:Download HERE"; print "
Format2-OverlapBedfile:Download HERE"; ###################### small functions ######################### function genRandomString() { $length = 10; $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $string = NULL; for ($p = 0; $p < $length; $p++) { $string .= $characters[mt_rand(0, strlen($characters))]; } return $string; } ?>

Go Back