Loading ...
Sorry, an error occurred while loading the content.

Re: RE: [TwinCLinG] read and count only limited charactersusingphpscript

Expand Messages
  • Mahalingam Subramaniam
    a little simplified solution is enclosed as an attachment in text format. s.mahalingam -- Original Message -- From: shinoj vg To:
    Message 1 of 7 , Feb 18 4:16 AM
    • 0 Attachment
      a little simplified solution is enclosed as an attachment in text format.
      s.mahalingam
      -- Original Message --
      From: shinoj vg <shinoj@...>
      To: <ilughyd@yahoogroups.com>
      Date: Thu, 18 Feb 2010 11:38:45 +0530
      Subject: RE: [TwinCLinG] read and count only limited charactersusingphp
      script





      There may be simpler solutions but give this a shot :

      $y=0
      while(( ($contents=fread( $handle, 100 )) != '' )) {
      //$A etc. should be set to 0 at the beginning of while loop.
      $A=0;
      $G=0;
      $C=0;
      $T=0;

      for ($i=0; $i<100; $i++)
      {if($contents[$i] == 'A' )
      {

      $A++;
      }
      else
      if($contents[$i] == 'G' )
      {
      $G++
      }
      etc...
      }

      //picture is drawn at the end of for loop but inside while loop.

      $imageyel = imagecreate($A,10);
      $imageblu = imagecreate($G,10);
      $imagegre = imagecreate($C,10);
      $imagered = imagecreate($T,10);

      $back = ImageColorAllocate($imageyel,255,255,255);

      ImageFilledRectangle($imageyel,$y,0,110,$y+10,$back);

      $yel = ImageColorAllocate($imageyel,255,255,0);
      ImageFilledRectangle($imageyel,1,$y+1,1+$A,$y+10,$yel);

      $red = ImageColorAllocate($image,255,0,0);
      ImageFilledRectangle($imagered,1+$A,$y+1,1+$A+$G,$y+10,$red);

      $green = ImageColorAllocate($image,0,255,0);

      ImageFilledRectangle($imagegre,1+$A+$G,$y+1,1+$A+$G+$C,$y+10,$green);

      $blue = ImageColorAllocate($image,0,0,255);

      ImageFilledRectangle($imageblu,1+$A+$G+$C,$y+1,1+$A+$G+$C+$T,$y+10,$blue);

      $y=$y+10;

      }

      > To: <ilughyd%40yahoogroups.com>ilughyd@yahoogroups.com
      > From: <smal%40ccmb.res.in>smal@...
      > Date: Sun, 7 Feb 2010 16:40:20 +0530
      > Subject: Re: RE: [TwinCLinG] read and count only limited charactersusingphp script
      >
      > -- Original Message --
      > From: shinoj vg <<shinoj%40hotmail.com>shinoj@...>
      > To: <<ilughyd%40yahoogroups.com>ilughyd@yahoogroups.com>
      > Date: Fri, 5 Feb 2010 07:44:56 +0530
      > Subject: RE: [TwinCLinG] read and count only limited characters usingphp
      > script
      > Please clarify your requirements. Is it:
      > 1. Read a file that has no fixed size in chunks of 100 characters.
      > 2. Count the occurance & recurrance of A,G,C,T in the above 100 characters.
      > 3. Draw a bargraph for the above - 1 bargraph in a line for each 100 chars and every subsequent drawn for every set
      > of 100 should be appended one below other.
      > 4. Stop when count of A,G,C,T, reached the last character.
      > Please state your specs in simple statements like above.
      > Yes, it is true and the requirement is as stated above.
      > with thansk & regards
      > s.mahalingam
      > > To: <ilughyd%40yahoogroups.com><ilughyd%40yahoogroups.com>ilughyd@yahoogroups.com
      > > From: <smal%40ccmb.res.in><smal%40ccmb.res.in>smal@...
      > > Date: Wed, 3 Feb 2010 17:37:02 +0530
      > > Subject: Re: RE: [TwinCLinG] read and count only limited characters usingphp script
      > >
      > > -- Original Message --
      > > From: shinoj vg <<shinoj%40hotmail.com><shinoj%40hotmail.com>shinoj@...>
      > > To: <<ilughyd%40yahoogroups.com><ilughyd%40yahoogroups.com>ilughyd@yahoogroups.com>
      > > Date: Mon, 1 Feb 2010 20:55:11 +0530
      > > Subject: RE: [TwinCLinG] read and count only limited characters using php
      > > script
      > > I dont understand your requirements but you can try this:
      > > while(( ($contents=fread( $handle, 100 )) != '' )) {
      > > for ($i=0; $i<100; $i++)
      > > {if
      > > {
      > > ...
      > > }
      > > else
      > > if{
      > > ..
      > > }
      > > }
      > > }
      > > There may be a problem in the last read above.
      > > If you are trying to count the occurance of A,G,C,T in the file using preg_grep may be easier.
      > > Regards,
      > > Shinoj.
      > > still, it reads & counts all entire characters present in the input file instead of limited number of characters as I desire. The aim is to draw a barcode of series of thin vertical lines with respect to its recurrence in the input file. The preg_grep function is to search & filter the pattern from an array which may not be exactly what I am looking for.
      > > with regards
      > > s.mahalingam
      > > > To: <ilughyd%40yahoogroups.com><ilughyd%40yahoogroups.com>ilughyd@yahoogroups.com
      > > > From: <smal%40ccmb.res.in><smal%40ccmb.res.in>smal@...
      > > > Date: Sun, 31 Jan 2010 22:44:00 +0530
      > > > Subject: [TwinCLinG] read and count only limited characters using php script
      > > >
      > > >
      > > >
      > > >
      > > > Hi All
      > > > the aim is to read and count only 100 characters from input text file containing characters of A, G, C, T....of 500 or more.... The PHP script which I appended here reads all the 500 or whatever is present in the input file. The help which I expect from the forum is to find and correct the mistake by which it can read and count only the limited number of characters to be set as a condition.
      > > > <?php
      > > > $file="co3.txt";
      > > > $handle=fopen($file, 'r');
      > > > $A=0;
      > > > $G=0;
      > > > $C=0;
      > > > $T=0;
      > > > $contents[] = '';
      > > > while(!feof($handle)) {
      > > > $contents[] = fread($handle, 100);
      > > > }
      > > > #echo($contents);
      > > > { $readchar=fgetc($handle);
      > > > $readchar=strtoupper($readchar);
      > > > for ($i=0; $i<100; $i++)
      > > > {
      > > > #echo ($contents[$i]);
      > > > if($contents[$i] == 'A' ) # && ($A++ <=100))
      > > > {
      > > >
      > > > $A++;
      > > > # if ( $A++ <= 100 ) {
      > > > imagefilledrectangle($img, $x1, $y1, $x2, $y2, $green);
      > > > /***to draw an image of thin vertical rectangular line for every characters read and counted which is secondary***/
      > > > $x1=$x1+6;
      > > > $x2=$x2+6;
      > > > }
      > > > else
      > > > if ($contents[$i] == 'G' ) # ($G++ <=100))
      > > > {
      > > > $G++;
      > > > # if ( $G++ <= 100 ) {
      > > > imagefilledrectangle($img, $x1, $y1, $x2, $y2, $black);
      > > > $x1=$x1+6;
      > > > $x2=$x2+6;
      > > > }
      > > > else
      > > > if ($contents[$i] == 'C' ) #($C++ <=100))
      > > > {
      > > >
      > > > $C++;
      > > > # if ( $C++ <= 100 ) {
      > > > imagefilledrectangle($img, $x1, $y1, $x2, $y2, $blue);
      > > > $x1=$x1+6;
      > > > $x2=$x2+6;
      > > > }
      > > > else
      > > > if ($contents[$i] == 'T' ) #($T++ <=100))
      > > > {
      > > > $T++;
      > > > # if ( $T++ <= 100 ) {
      > > > imagefilledrectangle($img, $x1, $y1, $x2, $y2, $red);
      > > > $x1=$x1+6;
      > > > $x2=$x2+6;
      > > > }
      > > > }
      > > > fclose($handle);
      > > > ?>
      > > > I shall appreciate and honor your help.
      > > > with regards
      > > > s.mahalingam
      > > >
      > > >
      > > >
      > > > [Non-text portions of this message have been removed]
      > > >
      > > >
      > > >
      > > > ------------------------------------
      > > >
      > > > -----------------------------------------------
      > > > Next Meeting as on our Website: <<http://ilughyd.org.in>http://ilughyd.org.in><http://ilughyd.org.in>http://ilughyd.org.in
      > > > -----------------------------------------------Yahoo! Groups Links
      > > >
      > > >
      > > >
      > >
      > > __________________________________________________________
      > > Hotmail: Trusted email with Microsofts powerful SPAM protection.
      > > <<https://signup.live.com/signup.aspx?id=60969>https://signup.live.com/signup.aspx?id=60969><https://signup.live.com/signup.aspx?id=60969>https://signup.live.com/signup.aspx?id=60969
      > > [Non-text portions of this message have been removed]
      > > ------------------------------------
      > > -----------------------------------------------
      > > Next Meeting as on our Website: <<http://ilughyd.org.in>http://ilughyd.org.in><http://ilughyd.org.in>http://ilughyd.org.in
      > > -----------------------------------------------Yahoo! Groups Links
      > > Individual Email | Traditional
      http://docs.yahoo.com/info/terms/
      > >
      > >
      > >
      > > [Non-text portions of this message have been removed]
      > >
      > >
      > >
      > > ------------------------------------
      > >
      > > -----------------------------------------------
      > > Next Meeting as on our Website: <<http://ilughyd.org.in>http://ilughyd.org.in><http://ilughyd.org.in>http://ilughyd.org.in
      > > -----------------------------------------------Yahoo! Groups Links
      > >
      > >
      > >
      > __________________________________________________________
      > Hotmail: Powerful Free email with security by Microsoft.
      > <<https://signup.live.com/signup.aspx?id=60969>https://signup.live.com/signup.aspx?id=60969><https://signup.live.com/signup.aspx?id=60969>https://signup.live.com/signup.aspx?id=60969
      > [Non-text portions of this message have been removed]
      >
      >
      >
      > [Non-text portions of this message have been removed]
      >
      >
      >
      > ------------------------------------
      >
      > -----------------------------------------------
      > Next Meeting as on our Website: <http://ilughyd.org.in>http://ilughyd.org.in
      > -----------------------------------------------Yahoo! Groups Links
      >
      >
      >

      __________________________________________________________
      Hotmail: Powerful Free email with security by Microsoft.
      <https://signup.live.com/signup.aspx?id=60969>https://signup.live.com/signup.aspx?id=60969

      [Non-text portions of this message have been removed]




      ----------

      <?php

      $file="co3.txt";
      $handle=fopen($file, 'r');

      $img = imagecreate(490,300);
      $white = imagecolorallocate($img, 255,255,255);
      $green=imagecolorallocate($img, 0, 128, 0);
      $yellow=imagecolorallocate($img, 251, 251, 0);
      $red=imagecolorallocate($img, 255, 0, 0);
      $blue=imagecolorallocate($img, 0, 0, 255);

      $x1=40;
      $y1=0;
      $x2=43;
      $y2=40;

      $x3=40;
      $y3=160;
      $x4=43;
      $y4=80;


      $contents = '';

      while(( ($contents=fread($handle, 800)) )) {

      foreach (range(0, 100) as $i) //this range can be specified from 0 to 500 in steps of 100 or 50 and so on till the last character is read.


      {

      if($contents[$i] == 'A')

      {
      imagefilledrectangle($img, $x1, $y1, $x2, $y2, $green);
      $x1 = $x1+6;
      $x2 = $x2+6;

      }

      else
      if($contents[$i] == 'G')

      {

      imagefilledrectangle($img, $x1, $y1, $x2, $y2, $yellow);
      $x1 = $x1+6;
      $x2 = $x2+6;

      }

      else
      if($contents[$i] == 'C')

      {

      imagefilledrectangle($img, $x1, $y1, $x2, $y2, $blue);
      $x1 = $x1+6;
      $x2 = $x2+6;

      }

      else
      if($contents[$i] == 'T')

      {

      imagefilledrectangle($img, $x1, $y1, $x2, $y2, $red);
      $x1 = $x1+6;
      $x2 = $x2+6;

      }

      }

      }

      fclose($handle);
      header("Content-type: image/png");
      imagepng($img);
      imagedestroy($img);

      ?>



      [Non-text portions of this message have been removed]
    Your message has been successfully submitted and would be delivered to recipients shortly.