\n"; ?>
Processing your request...
"; } // Win File names: if( $Windows ) { //+$a["a"] = 1; //+if( !isset($a["b"]) ) echo " a[b] = FALSE
"; $title = "Sample 44"; $title = "Sample P10318"; //$title = "Sample P14942"; //-$seqname = ">P10318"; // ? //$SEQ = ">P10318 //$SEQ = ">P14942 //$SEQ = ">Sample 44 $SEQ = ">P10318 MTEYKLVVVG AGGVGKSALT IQLIQNHFVD EYDPTIEDSY RKQVVIDGET CLLDILDTAG QEEYSAMRDQ VFAINNSKSF ADINLYREQI KRVKDSDDVP MVLVGNKCDL PTRTVDTKQA HELAKSYGIP GVEDAFYTLV REIRQYRMKK LNSSDDGTQG CMGLPCVVM "; $F_PREF= "e:\vnickolaev\annot\\" . "44\\" . "44"; $F_PREF= "e:\vnickolaev\annot\\" . "p10318\\" . "p10318"; //$F_PREF= "e:\vnickolaev\annot\\" . "p14942\\" . "p14942"; /** $F_PRE = $F_PREF . ".pre"; $F_MOT = $F_PREF . ".mot"; //$F_MOT = $F_PREF . ".mot18"; //$F_MOT = $F_PREF . ".mot21"; //$F_MOT = $F_PREF . ".mot38"; //$F_MOT = $F_PREF . ".mot41"; //$F_MOT = $F_PREF . ".mot58"; //$F_MOT = $F_PREF . ".mot61"; $F_PRN = $F_PREF . ".prn"; $F_M2M = $F_PREF . ".m2m"; //$F_STA = $F_PREF . ".sta"; //$F_STA = $F_PREF . ".st2"; $F_STA = $F_PREF . ".sta"; $F_FRAG = $F_PREF . ".inf"; **/ $F_IMPREF = "run\\" ; dl( "php_gd" ); // Linux File names: (except $inp_file, see annexe.h) } else { // from annexe.h // $indir = "/hdisk1/g_mail/-m_in/"; // ************* Linux indir $indir = "/g_mail_in/-m_in/"; // ************* Linux indir $outdir = "/g_mail_out/m_out/"; // ************* outdir ? $pid = getmypid(); //$gif_file = "../trash/".$pid. $F_IM1 . $i . $F_IMEXT; // from annout_grali.h $F_IMPREF = "../trash/".$pid ; //++$res_file = $outdir.$pid."-.ht0"; // *** 10.05.2001 //++$F_PRE = $res_file.".pre"; // ************ Linux //++$F_M2M = $res_file.".m2m"; // ************ Linux $F_PREF = $outdir.$pid."-.ht0"; } /** $F_IM1 = "run\amot31_"; $F_IM2 = "run\am2m31_1"; //$F_IM2 = "am2m26_3"; $F_IM3 = "run\asta31_"; $F_IM4 = "run\aft31_0"; // FT fragments + DR keywords *** 07.22 **/ $F_IM1 = $F_IMPREF. "amot32_"; $F_IM2 = $F_IMPREF. "am2m32_1"; $F_IM3 = $F_IMPREF. "asta32_"; $F_IM4 = $F_IMPREF. "aft32_0"; // FT fragments + DR keywords *** 07.22 /** if( $Linux ) { //$F_IMEXT = ".gif"; // ************ Linux GIF $F_IMEXT = ".png"; // ************ Linux png } else { $F_IMEXT = ".png"; } **/ $F_IMEXT = ".png"; $F_PRE = $F_PREF . ".pre"; $F_MOT = $F_PREF . ".mot"; //$F_MOT = $F_PREF . ".mot18"; //$F_MOT = $F_PREF . ".mot21"; //$F_MOT = $F_PREF . ".mot38"; //$F_MOT = $F_PREF . ".mot41"; //$F_MOT = $F_PREF . ".mot58"; //$F_MOT = $F_PREF . ".mot61"; $F_PRN = $F_PREF . ".prn"; $F_M2M = $F_PREF . ".m2m"; //$F_STA = $F_PREF . ".sta"; //$F_STA = $F_PREF . ".st2"; $F_STA = $F_PREF . ".sta"; $F_FRAG = $F_PREF . ".inf"; // new file (FT frag & DR kw) *** 20.08.2001 $KW_REF = "http://expasy.pku.edu.cn/cgi-bin/kwdef.pl?"; // sasha //$SEQ_REF1 = "http://www.genebee.msu.su/cgi-bin/nph-scr_keyw.pl?KEYW="; // . $seq_name . $SEQ_REF1 = "/cgi-bin/nph-scr_keyw.pl?KEYW="; // . $seq_name . $SEQ_REF2 = "&P_BANKS=SPR&FIELDS=AC"; $EMAIL = $email; $TITLE = $title; if( $test ) { if( $email != "" ) { echo "email = ", $email,"
"; } else { echo "email = ","N/A
"; } //$Windows=1; //$Linux=0; echo 'OS=', PHP_OS, '
'; echo 'OS=', $HTTP_ENV_VARS['OS'], '
'; //echo "length= ", $length, "
"; } // Advanced if( isset( $SP_SEQ ) ) { // SP_SEQ - start position of seq // ... // Basic defaults } else { //+$SP_SEQ = 0; $FRAGMAX = 15; $DOMAINEXT = "ON"; $EXCLUFRAG[] = "CHAIN"; } $DOMAINEXT = strtoUpper( $DOMAINEXT ); // ? #____________________________________ find 'k' in array 'aA = { k }' function f_afind( $aA, $k ) { if( !isset( $aA ) ) return -2; // -------------------> array is unset for( $i = 0; $i < count( $aA ); $i++ ) { if( $aA[ $i ] == $k ) return $i; } return -1; // not found } // --------------------------------------- #--------------------------------------------------------SIMIL # Print parameter into resulting page. If ref != 0 # is given parameter name if arranged as reference #-------------------------------------------------------- function printPar( $name, $ref, $val ) { if( $ref == "" ) //echo "$name$val"; echo "$name$val"; else //echo "$name$val"; echo "$name$val"; return 0; } # ------------------------------------------------------------------------------ # Detect moleculare type for the given sequence. # //Returns: 1 - protein, 0 - nucleotide. (simil.php3) # Returns: 0 - protein, 1 - nucleotide. (like in C++ prog)*** # # in seqbase.h: enum { MQ_PROTEIN, MQ_DNARNA, MQ_BOTH }; # ------------------------------------------------------------------------------ $PROTEIN = 0; //1; $DNA = 1; //0; function getMolType( $seq ) { $upseq = strtoupper( $seq ); $len = strlen( $upseq ); $nlet = 0; $nnuc = 0; for( $i = 0; $i < $len; $i++ ) { #echo $seq[ $i ]." ".intval( $seq[ $i ] )."
"; #if( 64 < intval( $seq[ $i ] ) && intval( $seq[ $i ] ) < 91 ) { $nlet++; if( $seq[ $i ] == 'A' || $seq[ $i ] == 'C' || $seq[ $i ] == 'G' || $seq[ $i ] == 'N' || $seq[ $i ] == 'T' || $seq[ $i ] == 'U' ) $nnuc++; #} } // DNA PROT // $molType = ( 100*$nnuc > 80*$nlet ) ? 0 : 1; // simil $molType = ( 100*$nnuc > 80*$nlet ) ? 1 : 0; #echo $nlet." ".$nlet." ".$len." ".$molType."
"; return $molType; } // ---------------------------------------------------- // Get Base of a file name // ---------------------------------------------------- function f_fileBase( $fName ) { $iL = strlen ( $fName ); $point = strrpos( $fName, '.' ); if( $point < 1 ) $point = $iL; // -> fName.end $slash = strrpos ( $fName, '/' ); if( $slash < 1 ) $slash = strrpos ( $fName, '\\' ); if( $slash < 1 ) $slash = 0; // php3 & 4 ? $start = 0; //fName; if( $slash > 0 ) $start = $slash + 1; $len = $point - $start; //if( len > lenMax ) len = lenMax; return substr( $fName, $start, $len ); } if( $test ) { echo " Base of /some/two/base.matr = ", f_fileBase( "/some/two/base.matr" ), "
"; } # -------------------------------------------------------- # Check some conditions. # -------------------------------------------------------- /*****/ if( $SEQ == "" ) { echo "
I guess, you forgot to enter/paste your favorite sequence.
I can't read that guy out of your mind so far. Sorry...
"; exit; } // -------------------------------- split Fasta seq to: name, seq. //echo "SEQ = " , $seq, "
"; echo '
'; //$iPS = strpos ($SEQ, '\n'); //if( substr( $SEQ, $iPS, 1 ) == "\r" ) $iPS--; //$seqname = substr( $SEQ, 0, $iPS ); //$seqbody = substr( $SEQ, $iPS + 1); $parts = split( "[\r\n]+", $SEQ); $seqname = $parts[0]; if( $test ) { //echo "iPS = ", $iPS, "
"; echo "SEQ name = " , $seqname, "*
"; //echo "SEQ body = " , $seqbody, "*
"; } /*****/ # -------------------------------------------------------- # Creats lock-file for input file # -------------------------------------------------------- $T = 0; //++$T = 5*( count( $P_BANKS ) + count( $N_BANKS ) ); if( $T == 0 ) $T = 10; //5; // *** 25.05.2001 //echo "
Estimated time before completing your //request is approximately $T minutes...
"; //echo "Estimated time before completing your request is //approximately $T minutes..."; echo "Estimated time before completing your request is approximately $T minutes...

"; flush(); // ----------------------- // Set default parameters // ----------------------- /**/ // if( !isset() ) ... OK basic/advanced if( !isset( $ML_THRESH ) ) $ML_THRESH = 7; if( !isset( $MHP_THRESH ) ) $MHP_THRESH = 0.01; if( !isset( $C_RATIO ) ) $C_RATIO = 0.02; if( !isset( $W_WIDTH ) ) $W_WIDTH = 7; // ** 5 if( !isset( $NUM_COI ) ) $NUM_COI = 0; // ** 4 ? if( !isset( $P_SIZE ) ) $P_SIZE = 100; if( !isset( $MN_SHIFTS ) ) $MN_SHIFTS = 20; if( !isset( $MN_ALIGN ) ) $MN_ALIGN = 100; if( !isset( $MN_PRINT ) ) $MN_PRINT = 10; // Max supermotifs to print //if( !isset( $MN_PRINT2 ) ) $MN_PRINT2 = 15; if( !isset( $MN_KW ) ) $MN_KW = 12; // Max keywords in gr.alignment if( !isset( $SP_SEQ ) ) $SP_SEQ = 0; if( !isset( $EP_SEQ ) ) $EP_SEQ = 100000; if( !isset( $GAP_PEN ) ) $GAP_PEN = 1.0; if( !isset( $DOTHELIX ) ) $DOTHELIX = "Y"; if( !isset( $MFR ) ) $MFR = "Y"; if( !isset( $TRANS ) ) $TRANS = "N"; // Strand //+$STRAND = "N"; if( !isset( $CLUSTER ) ) $CLUSTER = "f"; if( !isset( $MP_THRESH ) ) $MP_THRESH = 4; if( !isset( $AP_THRESH ) ) $AP_THRESH = 6; /**/ /*** $ML_THRESH = 7; $MP_THRESH = 4; $AP_THRESH = 6; $MP_THRESH_BASIC = 4; $MP_THRESH_MINOR = 0; $MP_THRESH_SIGNI = 6; $MHP_THRESH = 0.005; // homology $MFR = 1; // N; $NORM = 0; // N; $DH_ACCURATE = 0; // N; $MN_PRINT = 20; $MN_PLOT = 1000; // //$SEQTYPE = "Auto"; //$MULTI_PWMATRIX = "BLOSUM"; //$MULTI_DNAMATRIX = "IUB"; // File Names: $S1_FNAME = "seq1.txt"; $S2_FNAME = "seq2.txt"; $MAP_MSGS = "map_msgs.txt"; $MOT_LIST = "motifs.txt"; $IMAGE_PREF = "mot12_"; // TODO: //$WMATR = "blos.wmt"; //$PARMFILE = "parm.txt"; // ----------------------- // Change defaults // ----------------------- if( !empty($nplot ) ) $MN_PLOT = $nplot; if( !empty($ntext ) ) $MN_PRINT = $ntext; if( !empty($length ) ) $ML_THRESH = $length; if( !empty($power ) ) $MP_THRESH_BASIC = $power; if( !empty($power0 ) ) $MP_THRESH_MINOR = $power0; if( !empty($powerS ) ) $MP_THRESH_SIGNI = $powerS; if( !empty($accurate) ) $DH_ACCURATE = ($accurate=="Off" ? 0 : 1); if( !empty($homology) ) $MHP_THRESH = $homology; if( !empty($mfr ) ) $MFR = ($mfr=="Off" ? 0 : 1 ); if( !empty($norm ) ) $NORM = ($norm=="Off" ? 0 : 1 ); if( $MFR == 0 ) $NORN = 0; // ___________________________________________________ molType & matrix select //if( !empty($seqtype ) ) $SEQTYPE = $seqtype; $MOLTYPE = getMolType( $seq1 ); // $seqtype == "Auto" if( $test ) echo "AUTO MOLTYPE = ", $MOLTYPE, "
"; if( $SEQTYPE == "DNA" ) { if( $MOLTYPE == $PROTEIN ) { echo "

Warning: The sequences seem to be Protein, but you have selected DNA matrix.


"; } $MOLTYPE = $DNA; // 0 } if( $SEQTYPE == "Protein" ) { if( $MOLTYPE == $DNA ) { echo "

Warning: The sequences seem to be DNA, but you have selected Protein matrix.


"; } $MOLTYPE = $PROTEIN; // 0 } ***/ include "annexe.h"; /** if( $Windows ) { //system( ... ); } else { //system( ... ); } **/ # ----------------------------------------------------------- # Output results. # ----------------------------------------------------------- #_________________________ Banner //echo "

Screening by Similarity Results


"; echo "

"; echo ""; echo "

Genebee Predicted Annotation

"; //if( $TITLE != "" ) echo "

",$TITLE,"

"; if( $TITLE != "" ) echo "

",$TITLE,"

"; /******* // __________________________References: echo "

References:

"; echo "1. Leontovich A.M.,Brodsky L.I., Gorbalenya A.E., Construction of the full "; echo "local similarity map for two biopolymers, 1993, Biosystems, 30,57-63."; echo "

2. Brodsky L.I., Ivanov V.V., Ya.L. Kalaydzidis,Leontovich A.M., Nikolaev V.K., "; echo "Feranchuk S.I.,Drachev V.A., GeneBee-NET:Internet-based server for analyzing "; echo "biopolymers structure, 1995, Biochemistry, 60,8,923-928.

"; ******/ #_________________________ Content //echo "
"; echo ""; /** #_________________________ Banks Version fron file 'banks.version'. $frel = fopen( "/www/services/banks.version", "r" ); echo "
"; echo "

Contents:


"; while( $buf = fgets( $frel, 128 ) ) echo $buf; echo "
"; fclose( $frel ); **/ echo "
"; #_________________________ Parameters. echo "

Parameters

"; //++echo "

"; // +echo ""; echo '

'; echo " "; echo " "; if( $TITLE != "" ) { printPar("Title","",$TITLE); } if( $EMAIL != "" ) { printPar("User Email Address","",$EMAIL); } /*** printPar( "Motif power threshold - DotHelix","help.html#mpower",$MP_THRESH); printPar( "Alignment power threshold - DotHelix","help.html#apower",$AP_THRESH); printPar( "Motif length threshold","help.html#length",$ML_THRESH ); printPar( ". . .","","?" ); printPar( ". . .","","?" ); printPar( "Minimal homology ratio ","help.html#homology",$MHP_THRESH ); printPar( "Accurate Dothelix","help.html#accurate",$DH_ACCURATE ); printPar( "Motif frequences recalc","help.html#mfr",$MFR ); ***/ printPar("Motif's power threshold","help.html#mpower",$MP_THRESH); printPar("Alignment's power threshold","help.html#apower",$AP_THRESH); printPar( "Motif's length threshold","help.html#length",$ML_THRESH ); printPar( "Coincidence ratio","help.html#cratio",$C_RATIO ); printPar( "Maximum number of shifts","help.html#mn_shifts",$MN_SHIFTS ); printPar( "Maximum number of selected alignments","help.html#mn_align",$MN_ALIGN ); printPar( "Start position of query sequence","help.html#seqpos",$SP_SEQ ); printPar( "End position of query sequence","help.html#seqpos",$EP_SEQ ); printPar( "Gap penalty","help.html#gap_pen",$GAP_PEN ); $Strand = ( $TRANS == "Y" ) ? "Both" : "Only forward"; $Cluster = ( $CLUSTER == "f" ) ? "Each frame separately" : "Codirectional joinly"; printPar( "Strand","help.html#strand", $Strand ); printPar( "Clusterization type","help.html#cluster", $Cluster ); printPar( "Threshold of motif's homology percentage","help.html#homology",$MHP_THRESH ); printPar( "Accurate dothelix","help.html#accurate",$DOTHELIX ); printPar( "Motif frequences recalc","help.html#mfr",$MFR ); printPar( "Weight matrix","help.html#matrices",$MATR ); // *** 25.05.2001 // FT fragment options printPar( "Max number of FT keywords","help.html#FRAGMAX",$FRAGMAX ); if( !isset($EXCLUFRAG[0]) ) { $sWk = "None"; } else { $sWk = $EXCLUFRAG[0]; if( $sWk == "HELIX" ) { $sWk = "HELIX, TURN, STRAND"; } for( $i = 1; $i < count( $EXCLUFRAG ); ++$i ) { $sWk .= (", " . $EXCLUFRAG[$i] ) ; } } printPar( "Excluded fragments","help.html#EXCLUFRAG",$sWk ); printPar( "DOMAIN extension to qualifier","help.html#DOMAINEXT",$DOMAINEXT ); // Opt Line: $optline = "ANum=" .$MN_ALIGN . ",MPower=" . $MP_THRESH . ",APower=" . $AP_THRESH; $optline.= ( ",Len=" . $ML_THRESH . ",Accu=" . $DOTHELIX . ",Freq=" . $MFR ); $optline.= ( ",Homo=" . $MHP_THRESH . ",Coin=" . $C_RATIO . ",Gap=" . $GAP_PEN ); echo "
Name Value
"; /*** *** 10.05.2001 Matrix removed ???????????? echo "

Aminoacid matrix

"; echo "

"; //echo ""; // ********* //echo ""; echo "
Aminoacid matrix
";
 echo  "
";

/***
 if( $Linux ) {
   $fmat = fopen( "../data/".$MATR.".matrix", "r" );             // ************ Linux
 } else {
   //$fmat = fopen( $wmFile, "r" );
   $fmat = fopen( $MATR.".matrix", "r" );
 }
 while( $buf = fgets( $fmat, 128 ) )    {
    echo $buf;
 }
 fclose( $fmat );
***/
 
/***
 if( $Linux ) {
   $fmat = "../../data/".$MATR.".matrix";              // ************ Linux ***  07.05.2001
 } else {
   $fmat = $MATR.".matrix";
 }
 readfile( $fmat );

 echo  "
"; ***/ /***** // -------------------------------------------------------- // List of the mouse sensitive msgs - maps' polygons, etc. // -------------------------------------------------------- $fmsg = fopen( $MAP_MSGS, "r" ); while( $buf = fgets( $fmsg, 128 ) ) { echo $buf; } fclose( $fmsg ); //echo ""; //echo ""; *****/ // -------------------------------------------------------- // Predicted annotation. // -------------------------------------------------------- function f_kwOut( $s, $xx, $KW_REF, &$aST ) { global $OUTPUT; //+$r = strpos( $s, " ", 5 ); //echo "r = ", $r, "
"; //+$kw = substr( $s, 5, $r - 5 ); $kw = rtrim(substr( $s, 5, 40 )); $r = strlen( $kw ) + 5; //echo $xx, " ", $kw, ""; if( $xx == "KW" ) echo $xx, " ", $kw, ""; else echo $xx, " ", $kw, ""; //echo substr( $s, $r, strlen( $s ) - $r - 1 ), " (stat)\n"; //$sd = strpos( $s, " SD", 41 ) - 6; // always found //echo substr( $s, $r, $sd - $r - 1 ), " "; //echo( substr( $s, $sd, 6 + 3 ) . "" . substr( $s, $sd + 6 + 3) ); $sd = strpos( $s, " SD", 41 ); // always found $prob = strpos( $s, " Prob", 41 ) + 1; // always found //echo substr( $s, $r, $prob - $r - 1 ), " "; // ***07.05.2001 echo( substr( $s, $r, $prob - $r - 1 ) . " " ); if( f_afind( $OUTPUT, "STAT" ) > -1 ) { echo( "" ); } echo( substr( $s , $prob , $sd - $prob ) ); if( f_afind( $OUTPUT, "STAT" ) > -1 ) echo( "" ); echo( substr( $s, $sd ) ); /**/ // KW Stats: $v = substr( $s, $sd, 6 ); settype( $v, "double" ); $tkw = $xx . ": " . $kw; if( isset($aST[ $tkw ]) ) { if( $aST[ $tkw ] < $v ) $aST[ $tkw ] = $v; } else $aST[ $tkw ] = $v; /**/ return $kw; } echo "


"; echo "

Predicted Annotation

"; echo "

";

/**                                                      see at start
 //$F_PRE = "e:\vnickolaev\annot\\" . "44\\" . "44.pre";
 if( $Linux ) {
      $res_file = $outdir.$pid."-.ht0";    // *** 10.05.2001
      $F_PRE = $res_file.".pre";           // ************ Linux
      $F_M2M = $res_file.".m2m";           // ************ Linux
 } 
**/

 $fpre = fopen( $F_PRE, "r" );
 $iKW  = -1;
 $kwPrev = "";
 $kwLine = "*,";                           // *** 20.01.01
 $seqLen = 0;
 while( $buf = fgets( $fpre, 128 ) )    {
    $xx = substr($buf,0,2);
    if( $xx == "DE" || $xx == "KW" || $xx == "FT" ) {
      $kw = f_kwOut( $buf, $xx, $KW_REF, $aST );
      
      if( $iKW >= ($MN_KW - 1) ) continue; // <-------- too many keywords *** 02.02.01

      $tKw = $xx . ": " . $kw;
      if( $xx != "FT" ) {
        $iKW++; 
        //$aKW[$iKW] = $xx . ": " . $kw;
        $aKW[$iKW] = $tKw;
        $kwLine .= ( $tKw . "," );
      } else {
        if( $kw != $kwPrev ) {
          $iKW++;
          $kwPrev = $kw;               // Same FT keywords must be groupped together !
          //$aKW[$iKW] = $xx . ": " . $kw;
          $aKW[$iKW] = $tKw;
          $kwLine .= ( $tKw . "," );
        }
      }
    } else {

      // get seqLen:
      if( $xx == "ID" ) {
        echo( $buf );
        $pos = strpos( $buf, " AA." );
        if( $pos > 0 ) {
          $str = rtrim( substr( $buf, 0, $pos ) );
          $bla = strrpos( $str, " " );
          $seqLen = substr( $str, $bla+1 );
          settype( $seqLen, "integer" );
          //+echo "seqlen=" . $seqLen . "
"; } // Set seq ref: } else if( $xx == "SQ" ) { echo( "" ); echo( $buf ); echo( "" ); } else echo $buf; } } fclose( $fpre ); echo "
"; // *********************************************************** #-------------------------------------------------------- # Get motifs information from Genebee motif file, # created by search program. #-------------------------------------------------------- // $beg - starts in source seq // $beg2 - start of the found seq motif //+function getMotGen( &$iSup, &$beg, &$len, &$maxLen, &$power, $mot_file, &$aSN ) { function getMotGen( &$iSup, &$beg, &$len, &$maxLen, &$power, $mot_file, &$aSN, &$beg2 ) { if( file_exists( $mot_file ) ) { $fmot = fopen( $mot_file, "r" ); $iSup = -1; while( $buf = fgets( $fmot, 1024 ) ) { if( ereg( "Supermot", $buf ) ) { $iMot = 0; $iSup++; $parts = split( "[ ]+", $buf, 8 ); $nMot = $parts[ 6 ]; //+echo " SN = *", $parts[ 4 ], "*
"; $aSN[$iSup] = $parts[ 4 ]; $power[ $iSup ] = $parts[ 5 ]; } else { if( $iSup == -1 ) continue; // < ------------------------ *** $parts = split( "[ ]+", $buf, 6 ); $beg[ $iSup ][ $iMot ] = $parts[ 2 ]; $beg2[ $iSup ][ $iMot ] = $parts[ 3 ]; // *** 07.22 $len[ $iSup ][ $iMot ] = $parts[ 4 ]; if( $iMot < $nMot ) $iMot++; } } fclose( $fmot ); $maxLen = 0; $iSup++; for( $i=0; $i < $iSup; $i++) { for( $j=0; $j < count( $beg[ $i ] ); $j++) { $maxLen = max( $maxLen, ( $beg[ $i ][ $j ] + $len[ $i ][ $j ] ) ); } } return $iSup; } else return 0; } #-------------------------------------------------------- # Create Graphic Alignment Image-file #-------------------------------------------------------- include "annali.h"; #-------------------------------------------------------- # Make string for displaying during mouse moving # over the graphic alignment. #-------------------------------------------------------- function makeOneStr( $buf ) { $part1 = strchr( $buf, "[" ); $len = strcspn( $part1, "]" ); $part2 = trim( strchr( $buf, "!" ) ); $res = substr( $part1, 1, $len-1 ).substr( $part2, 3 ); return $res; } /*** function noAns( $res_file ) { $sign = 0; $fr = fopen( $res_file, "r" ); while( $buf = fgets( $fr, 1024 ) ) { #echo $buf."
"; if( ereg( "========", $buf ) ) { $sign = 1; break; } } if( $sign ) { echo "
"; echo ""; while( $buf = fgets( $fr, 1024 ) ) { #echo $buf."
"; if( ereg( "========", $buf ) ) { echo "
"; break; } if( !ereg( "FONT", $buf ) ) { echo $buf."
"; } } } fclose( $fr ); return $sign; } if( $Linux ) { $res_file = $outdir.$pid."-.ht0"; // ************ Linux if( file_exists( $res_file ) ) { if( noAns( $res_file ) ) exit; // ----------------------->No reply ? } } } ***/ # ----------------------------------------------------------- # Find out supermotifs information from GeneBee motif file # Here: iSup - number of supermotifs. # beg[][] - array of motifs beginnings # len[][] - array of motifs lengths # power[] - array of supermotif's powers # ----------------------------------------------------------- /** // *** 20.08.2001 if( $Linux ) { $F_MOT = $res_file.".mot"; // ************ Linux } else { //$mot_file = $F_MOT; dl( "php_gd" ); } **/ getMotGen( $iSup, $beg, $len, $maxLen, $power, $F_MOT, $aSN, $beg2 ); // +beg2 *** 07.22 # ----------------------------------------------------------- # Create graphic alignment Image-file. (.png) # ----------------------------------------------------------- /*** ???????????????????????? if( $Linux ) { //$gif_file = "../trash/".$pid.".gif"; // ************ Linux GIF ?? $gif_file = "../trash/".$pid. $F_IM1 . "0" . $F_IMEXT; if( file_exists( $gif_file ) ) { unlink( $gif_file ); } } ***/ $size = 3; $bor = 5; $wid = 600; $key_size = 33; $space = 2; //3; // *** $xtra = 1; /**/ // Enlarge picture: //+if( $iSup < 10 ) if( $iSup < 20 ) // *** 02.02.01 $size *= 3; //+else if( $iSup < 20 ) //++else if( $iSup < 40 ) else if( $iSup < 60 ) $size *= 2; /**/ // --------------------------------------------------------- // Get KW lines of 1&0. // kwLine - contains only significant KWs. // --------------------------------------------------------- function f_getKW( $fsta, &$aKW01, $type, $kwLine ) { // type = FT, DE, KW // skip till " ...; 1 1 ..." $pos = 0; while( $buf = fgets( $fsta, 512 ) ) { if( ($pos = strpos( $buf, ';' )) > 0 ) break; } do { $k = trim( substr( $buf, 0, $pos ) ); // key $tk = $type . ": " . $k; if( strpos( $kwLine, "," . $tk . "," ) < 1 ) continue; //echo " pos = ", $pos, ", k = ", $k, "
"; //$n = strpos( $buf, '\n', $pos+4); $v = trim(substr( $buf, $pos+1, strlen( $buf) - 1 - $pos - 1 )); // value = "1 1 1 0 ..." //echo "*v = ", $v, ", buf = ", $buf,"
"; //+$aKW01[ $type . ": " . $k ] = $v; $aKW01[ $tk ] = $v; } while ( ($buf = fgets( $fsta, 512 )) && ($pos = strpos( $buf, ";" )) > 0 ); //+echo "Num of aKW01[] = " . count( $aKW01 ) . "
"; } // --------------------------------- /** if( $Linux ) { //$F_STA = $res_file.".sta"; // ************ Linux $F_STA = $res_file.".sta"; // ************ Linux } **/ $fsta = fopen( $F_STA, "r" ); // Seq Num -> Name: $aNumName[] while( $buf = fgets( $fsta, 128 ) ) { if( ereg( "List", $buf ) ) break; } while( $buf = fgets( $fsta, 128 ) ) { if( strlen( $buf ) > 3 ) break; } $i = 0; do { //+echo "buf=", $buf,"
"; $parts = split( "[ \r\n]+", $buf, 4 ); //echo "parts: ", $parts[1], "*, ", $parts[0], "*
"; //$aNumName[ settype( $parts[1], "string") ] = $parts[0]; $aNumName[ $parts[1] ] = $parts[0]; $aPosName[ $parts[0] ] = $i++; // *** 20.01.01 } while( ($buf = fgets( $fsta, 128 )) && ( strlen( $buf ) > 3 ) ); //+-echo "***aNumName[53802]=", $aNumName["53802"],"
"; // Get 0/1's: $bFT = FALSE; $bKW = FALSE; $bDE = FALSE; while( $buf = fgets( $fsta, 128 ) ) { $posFT = strpos( $buf,"= FT =" ); $posDE = strpos( $buf,"= DE =" ); $posKW = strpos( $buf,"= KW =" ); if( $posDE > 0 ) { $bDE = TRUE; f_getKW( $fsta, &$aKW01, "DE", $kwLine ); } else if( $posKW > 0 ) { $bKW = TRUE; f_getKW( $fsta, &$aKW01, "KW", $kwLine ); } else if( $posFT > 0 ) { $bFT = TRUE; f_getKW( $fsta, &$aKW01, "FT", $kwLine ); } else { continue; } if( $bFT && $bDE && $bKW ) break; // -----------------> } fclose( $fsta ); /** // Test output: ********** if( count( $aKW01 ) > 0 ) { $aWk = array_keys( $aKW01 ); for( $i = 0; $i < count( $aKW01 ); $i++ ) { echo " key = *", $aWk[$i], "*, value = *", $aKW01[ $aWk[$i] ], "*
"; } } **/ // -------------------------------------------------------- // XREF: get found seq names & supermotif name // -------------------------------------------------------- $fmot = fopen( $F_MOT, "r" ); $i = 1; $iFS = 0; while( $buf = fgets( $fmot, 128 ) ) { if( substr( $buf, 0,5 ) == "Super" ) { //+$pos = strpos( $buf, ".dat" ); //+$aFS[substr( $buf, $pos + 5, 6 )] = ++$iFS; $wk = split( "[ ]+", $buf, 6 ); //echo "wk4=", $wk[4], "*
"; $aFS[ $wk[4] ] = ++$iFS; $aSupName[] = $aNumName[ $wk[4] ]; //+$iFS = 1; //-echo "FS ID = ", $wk[4], "*", $wk[0], "*", $wk[1], "*", $wk[2],"
"; //+echo "FS ID = *", $aFS[0], "*","
"; break; } } while( $buf = fgets( $fmot, 128 ) ) { if( substr( $buf, 0,5 ) == "Super" ) { //+$pos = strpos( $buf, ".dat" ); //+if( !isset( $aFS[substr( $buf, $pos + 5, 6 )] ) ) { //+ $aFS[substr( $buf, $pos + 5, 6 )] = ++$iFS; $wk = split( "[ ]+", $buf, 6 ); //echo "wk4=", $wk[4], "*
"; if( !isset( $aFS[ $wk[4] ] ) ) { $aFS[ $wk[4] ] = ++$iFS; } if( isset($aNumName[ $wk[4] ]) ) { $aSupName[] = $aNumName[ $wk[4] ]; } else { $aSupName[] = "*" . $wk[4]; } } } //+echo "FS N = ", $iFS, "
"; fclose( $fmot ); // ------------------------------------------------------- // maxLen must be seqLen ! *** 02.02.01 if( $seqLen == 0 ) $seqLen = $maxLen; $wid0 = $wid; //$hei0 = $hei; // save *** 07.22 #____________________________________________Graphical alignment display if( f_afind( $OUTPUT, "GRALI" ) > -1 ) { $section = "AGRAPH"; include "annmline.h"; include "annout_grali.h"; } #____________________________________________FT fragments & DR keywords if( f_afind( $OUTPUT, "FRAG" ) > -1 ) { $section = "FRAG"; include "annmline.h"; include "annout_frag.h"; } /** echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; echo "*
\n"; exit(); **/ // ************** //+$section = "XREF"; //+include "annmline.h"; // -------------------------------------------------------- // XREF: generate image // -------------------------------------------------------- if( f_afind( $OUTPUT, "XREF" ) > -1 ) { $section = "XREF"; include "annmline.h"; include "annxref.h"; /** if( $Linux ) { $m2m_file = "../trash/".$pid. $F_IM2 . $F_IMEXT; // ************ Linux ?? } else { $m2m_file = $F_IM2 . $F_IMEXT; //"am2m1_1.png"; } **/ $m2m_file = $F_IM2 . $F_IMEXT; //"am2m1_1.png"; // *** 20.08.2001 $iw = 640; $ih = 500; f_m2mImage( $F_M2M, $m2m_file, $aFS, $iFS, $aNumName, $seqname, $iw, $ih, $MATR, $SEQ_REF1, $SEQ_REF2, &$m2mMap, $optline ); // $wk = $SEQ_REF1 . $aSupName[ $i - 1 ] . $SEQ_REF2; echo "

Cross-Reference Map of The Found Sequences

"; //echo( "
" ); echo( "
" ); /***/ // m2m map: echo ""; for( $i = 0; $i < count( $m2mMap ); $i++) { if( isset($m2mMap[$i]) ) echo( $m2mMap[$i] ); } echo ""; } // end of XREF #____________________________________________Brief descr & first 10 supermotifs if( f_afind( $OUTPUT, "DESCR" ) > -1 ) { $section = "BRIEF"; // n/a include "annmline.h"; include "annout_descr.h"; } // -------------------------------------------------------- // Statistics. // -------------------------------------------------------- /**/ function f_stOut( $s, $pos ) { global $OUTPUT; //echo "\n"; echo( "\n" ); // *** 07.05.2001 echo( "

" . substr($s,0,strlen($s) - 2) . " [annotation]"); if( f_afind( $OUTPUT, "GRALI" ) > -1 ) echo( "[gr.alignment]" ); echo( "\n

"); } /**/ if( f_afind( $OUTPUT, "STAT" ) > -1 ) { $section = "STAT"; include "annmline.h"; include "annsta.h"; echo "

Statistics

"; echo "

";
   $fsta = fopen( $F_STA, "r" );
   $stat_on = FALSE;
   $i = 0;
   while( $buf = fgets( $fsta, 512 ) )    {
    if( ($pos = strpos( $buf,"_statist" )) > 4 ) {
      $i++; 
      //if( $i > 6 ) break;   // ------------>
      if( $i > 50 ) break;   // ------------>
      //if( $i > 15 ) break;   // ------------>

      //+$stat_on = TRUE;
      f_stOut( $buf, $pos );

      //+if( $i < 7 ) {   // 4
        $aBuf[0] = fgets( $fsta, 512 );
        $aBuf[1] = fgets( $fsta, 512 );
        $aBuf[2] = fgets( $fsta, 512 );
        $aBuf[3] = fgets( $fsta, 512 );
        $iw = 500; $ih = 250+10; // may be changed ?

/**
        if( $Linux ) {
          $sta_file = "../trash/".$pid. $F_IM3 . $i . $F_IMEXT; // ************ Linux ??
        } else {
          $sta_file = $F_IM3 . $i . $F_IMEXT; //"asta1_1.png";
        }
**/
        $sta_file = $F_IM3 . $i . $F_IMEXT; //"asta1_1.png";  // *** 20.08.2001

        f_staImage( $sta_file, $buf, $pos, $aBuf, $iw, $ih, $seqname, $MATR, $optline );
        echo( "
" ); echo( "

" ); //} else { // if( $stat_on ) //+} if( $test ) { echo $aBuf[0]; echo $aBuf[1]; echo $aBuf[2]; echo $aBuf[3]; } //} } } // end of while loop fclose( $fsta ); echo "
"; } // end of stat /***/ /*** // test .prn echo "

Test .prn

"; echo "

";
 $fsta = fopen( "P10318.prn", "r" );
 while( $buf = fgets( $fsta, 256 ) )    {
    //if( ($pos = strpos( $buf,"_statist" )) > 4 ) {
    //  f_stOut( $buf, $pos );
    //} else {
      echo $buf;
    //}
 }
 fclose( $fsta );
 echo "
"; ***/ ?> ' ); //Top"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
ParametersAnnotation Graphic alignmentXREFSupermotifsStatistics
"; ***/ //- echo( "
" ); // no effect $section = "BOTTOM"; include "annmline.h"; # Delete all temporary files. if( $Linux ) { // system( "rm $F_PRE" ); // ************ Linux // system( "rm $F_MOT" ); // system( "rm $F_FRAG" ); // system( "rm $F_M2M" ); // system( "rm $F_PRN" ); // system( "rm $F_STA" ); //system( "rm $PARMFILE" ); // ? + images } /**/ ?>

Designed by Valeri Kazatchenko. Last updated: September 7, 2001.
Comments and bug-reports send to Vladimir Nikolaev
Created: .