16 ) $seqname = substr( $seqname, 0, 16 ); //$wid = 600; $hei = 440; //+40; //$wid = 1100; $hei = 900; //+40; $k = imagecreate( $wid, $hei ); $white = imagecolorResolve($k,255,255,255); imagefilledrectangle( $k, 0, 0, $wid, $hei, $white ); //+$dx1 = 50+16; $dx2 = 10+10; $dx1 = 50+16+40; $dx2 = 10+10+10 + 5; //if( $iFS < 20 ) $dx1 -= 30; if( $iFS < $twoColLim ) $dx1 -= 30; $dy1 = 20+10; $dy2 = 20+10; $dx = ($wid - $dx1 - $dx2 ) / $iFS ; $dy = ($hei - $dy1 - $dy2 ) / $iFS ; $lgray = imagecolorResolve($k,222,222,222); $brown = imagecolorResolve($k,102, 51, 0); $green = imagecolorResolve($k, 0, 128, 0); $blue = imagecolorResolve($k, 0, 0, 255); f_imFrame( $k, $wid, $hei, $dx1, $dx2, $dy1, $dy2 ); imageString( $k, 3, 5, 3, $seqname, $green ); imageString( $k, 2, $wid - strlen($wm)*6 - 10, 3, $wm, $blue ); imageString( $k, 5, 150, 3,"CROSS-REFERENCE MAP OF THE FOUND SEQUENSES", $brown ); $keys = array_keys( $aFS ); $sfont = 2; $sdy = $dy * 0.4; if( $iFS > 19) { //-if( $iFS >= $twoColLim) { $sfont = 1; $sdy = 0; } // Diagonal for( $i = 0; $i < $iFS; $i++ ) { $x = $dx1+$dx*$i; $y = $dy1+$dy*$i; imagefilledrectangle( $k, $x, $y, $x + $dx, $y + $dy, $lgray ); //imageString( $k, 3, 5, $y + ($dy * 0.5), $keys[$i], $brown ); //+imageString( $k, 1, 5, $y + ($dy * 0.5), $aNumName[ $keys[$i] ], $brown ); //imageString( $k, 1, ( $i % 2 == 0 ? 5 : 45 ), $y + ($dy * 0.1), // $aNumName[ $keys[$i] ], $brown ); if( $iFS > 39) $iWk = ( $i % 2 == 0 ? 5 : 45 ) + 5; else $iWk = 5 + 5; if( isset($aNumName[ $keys[$i] ]) ) { $sn = $aNumName[ $keys[$i] ]; imageString( $k, $sfont, $iWk, $y + $sdy, $sn, $brown ); $ref = $SEQ_REF1 . $sn . $SEQ_REF2; $wk = ""; $m2mMap[$i] = $wk; //$wk = $SEQ_REF1 . $aSupName[ $i - 1 ] . $SEQ_REF2; //echo( "" } else imageString( $k, $sfont, $iWk, $y + $sdy, "*" . $keys[$i], $brown ); //$dxx = 2; // only for 5 in Hor ? //if( $i % 2 == 0 ) { // $wk = " " . ($i+1); //if( ($i+1) % 5 == 0 ) { //+if( $iFS > 19 && (($i+1) % 5 != 0) ) continue; // Skip last if prev has been displayed: if( $iFS > 19 && (($i+1) % 5 == 1) && ($i == ($iFS - 1)) ) continue; // Display only 1st and every 5th: if( $iFS > 19 && (($i+1) % 5 != 0) && $i > 0 && ($i != ($iFS - 1)) ) continue; $wk = " " . ($i+1); if( $i < 99 ) $wk = " " . $wk; if( $i < 9 ) $wk = " " . $wk; //if( $i > 8 ) $dxx = 0; // Vert: //imageString( $k, 1, $dx1 - 24, $y + ($dy * 0.1), $wk, $brown ); // 0.1 0.2 0.5 imageString( $k, 1, $dx1 - 24, $y , $wk, $brown ); // 0.1 0.2 0.5 imageString( $k, 1, $wid - $dx2 +4, $y , $i+1, $brown ); // 0.1 0.2 0.5 // Skip last hor if also 2nd prev has been displayed: if( $iFS > 19 && ((($i+1) % 5 == 1)||(($i+1) % 5 == 2))&& ($i == ($iFS - 1)) ) continue; // Hor: imageString( $k, 1, $x, $dy1 - 10 , $i+1, $brown ); // 0.1 0.2 0.5 imageString( $k, 1, $x, $hei - $dy2 + 2 , $i+1, $brown ); // 0.1 0.2 0.5 //} } $fmot = fopen( $F_M2M, "r" ); $i = 1; /** while( $buf = fgets( $fmot, 128 ) ) { if( substr( $buf, 0,5 ) == "Super" ) { f_smOut( $buf, $i++, "a" ); //echo $buf; break; } } **/ $i = 0; while( $buf = fgets( $fmot, 128 ) ) { if( substr( $buf, 0,5 ) == "Super" ) { //f_smOut( $buf, $i++, "a" ); //echo $buf; $parts = split( "[ ]+", $buf, 8 ); //$pos = strpos( $buf, ".dat" ); //$ix = $aFS[substr( $buf, $pos + 5, 6 )]; //$pos2 = strpos( $buf, ".dat", $pos + 10 ); //$iy = $aFS[substr( $buf, $pos2 + 5, 6 )]; //$power = substr( $buf, $pos2 + 12, 6 ); //+echo "part2=", $parts[2], "*
"; $ix = $aFS[ $parts[2] ]; $iy = $aFS[ $parts[4] ]; $power = $parts[5]; settype( $power, "double" ); if( $i == 0 ) { $pmin = $power; $pmax = $power; } else { if( $pmin > $power ) $pmin = $power; if( $pmax < $power ) $pmax = $power; //echo " pmm = ", $pmin, ",",$pmax, "
"; } //echo "p = *", $power, "*
"; $i++; // ? $wk = $ix . "," . $iy; $wk = "$ix,$iy"; if( !isset( $aSS[$wk] ) ) { $aSS[$wk] = $power; } else { $p = $aSS[$wk]; if( $power > $p ) $aSS[$wk] = $power; } //$x = $dx1+$dx*($ix - 1); //$y = $dy1+$dy*($iy - 1); //$ic = f_clr( $k, $power, 4, 15 ); //imagefilledrectangle( $k, $x, $y, $x + $dx, $y + $dy, $ic ); //$brown ); } } fclose( $fmot ); $keys = array_keys( $aSS ); $imedi = count( $keys ) * 0.5; settype( $imedi, "integer" ); $pmedi = $pmax; // init for( $i = 0; $i < count( $keys ); $i++ ) { $xy = $keys[$i]; $power = $aSS[ $xy ]; if( $i == $imedi ) $pmedi = $power; $pos = strpos( $xy, "," ); $ix = substr( $xy, 0, $pos ); $iy = substr( $xy, $pos + 1 ); settype( $ix, "integer" ); settype( $iy, "integer" ); $x = $dx1+$dx*($ix - 1); $y = $dy1+$dy*($iy - 1); $ic = f_clr( $k, $power, $pmax, $pmin ); //+imagefilledrectangle( $k, $x, $y, $x + $dx, $y + $dy, $ic ); //$brown ); //imageArc ( $k, $x + $dx * 0.5, $y + $dy * 0.5, $dx - 1, $dy - 1, 0, 360, $ic ); //$brown ); $xs = ($dx - 1) * $power / $pmax; if( $xs < 3 ) $xs = 3; $ys = ($dy - 1) * $power / $pmax; if( $ys < 3 ) $ys = 3; //+imageArc ( $k, $x + $dx * 0.5, $y + $dy * 0.5, $xs, $ys, 0, 360, $ic ); //$brown ); //+imageFill( $k, $x + $dx * 0.5, $y + $dy * 0.5, $ic ); // rect ? imagefilledrectangle( $k, $x, $y, $x + $dx, $y + $dy, $ic ); //$brown ); } // Lines: for( $i = 0; $i < $iFS + 1; $i++ ) { $x = $dx1+$dx*$i; $y = $dy1+$dy*$i; imageLine( $k, $dx1, $y , $wid - $dx2, $y , $lgray ); imageLine( $k, $x , $dy1, $x , $hei - $dy2 , $lgray ); //imageString( $k, 3, 5, $y + ($dy * 0.5), $keys[$i], $brown ); } // Internal frame ImageRectangle( $k, $dx1, $dy1, $wid - $dx2, $hei - $dy2, $brown); // Legends: $sp = 20; // leg.space $yleg = $hei - 20; ImageString( $k, 2, $dx1, $yleg, "Legends: ", $brown ); $xleg = $dx1 + 10*6; // + $sp; $ic = f_clr( $k, $pmax, $pmax, $pmin ); imagefilledrectangle( $k, $xleg, $yleg+2, $xleg + 14, $yleg + 13, $ic ); $xleg += (14 + 4); ImageString( $k, 2, $xleg, $yleg, $pmax . " (max power)", $brown ); $xleg += (18 * 6 + $sp); $ic = f_clr( $k, $pmedi, $pmax, $pmin ); imagefilledrectangle( $k, $xleg, $yleg+2, $xleg + 14, $yleg + 13, $ic ); $xleg += (14 + 4); ImageString( $k, 2, $xleg, $yleg, $pmedi, $brown ); $xleg += (6 * 6 + $sp); $ic = f_clr( $k, $pmin, $pmax, $pmin ); imagefilledrectangle( $k, $xleg, $yleg+2, $xleg + 14, $yleg + 13, $ic ); $xleg += (14 + 4); ImageString( $k, 2, $xleg, $yleg, $pmin . " (min)", $brown ); // Opt Line: ImageStringUp( $k, 1, $wid - 17, $hei - $dy2 - 2, $opt, $brown ); // ******************************************* //$er = imageGif( $k, $im_file ); // ************ Linux GIF $er = imagePng( $k, $im_file ); // ******************************************* } ?>