[Bioperl-l] Regarding blast in Bioperl

Roopa Raghuveer rtbio.2009 at gmail.com
Thu Jan 21 13:28:43 EST 2010


Hello Mark,

This is Roopa again. I have a small problem again. I am working on Remote
blast. The program works well. But the problem is this.  The program
accesses the server and gets the output correctly. I am trying to send the
result sequences into an array and I found that always the first sequence
among the Result sequences is missing. The code is

 my $str = Bio::SeqIO->new('-file' => $nuc , '-format' => 'fasta' ,
'-organism' => "$organ\[ORGN]");

while (my $input = $str->next_seq())
{
   #Blast a sequence against a database:
    #Alternatively, you could  pass in a file with many
    #sequences rather than loop through sequence one at a time
    #Remove the loop starting 'while (my $input = $str->next_seq())'
    #and swap the two lines below for an example of that.

             open(OUTFILE,'>',$debugfile);
               print OUTFILE $input;
              close(OUTFILE);


   my $r = $factory->submit_blast($input);

                open(OUTFILE,'>',$debugfile);
             #   print OUTFILE $r;
                close(OUTFILE);


   print STDERR "waiting...." if($v>0);

  while ( my @rids = $factory->each_rid ) {
      open(OUTFILE,'>',$debugfile);
            #   print OUTFILE "while entered";
              close(OUTFILE);
     foreach my $rid ( @rids ) {

               open(OUTFILE,'>',$debugfile);
 #  print OUTFILE "foreach entered";
              close(OUTFILE);

        my $rc = $factory->retrieve_blast($rid);

        if( !ref($rc) )
        {
        if( $rc < 0 )
        {
        $factory->remove_rid($rid);
        }
         open(OUTFILE,'>',$debugfile);
              # print OUTFILE "if entered";
              close(OUTFILE);
         print STDERR "." if ( $v > 0 );
         sleep 5;
        }
       else {
              open(OUTFILE,'>',$debugfile);
              # print OUTFILE "else entered";
              close(OUTFILE);

          my $result = $rc->next_result();
         #save the output
        $blastdebugfile = $serverpath."/blastdebug_".time().".txt";

          open(BLASTDEBUGFILE,'>',$blastdebugfile);
          print BLASTDEBUGFILE $result->next_hit();
          close(BLASTDEBUGFILE);

        my $filename = $serverpath."/blastdata_".time()."\.out";

         # open(DEBUGFILE,'>',$debugfile);
         # open(new,'>',$filename);
         # @arra=<new>;
         # print DEBUGFILE @arra;
         # close(DEBUGFILE);
         # close(new);

         $factory->save_output($filename);

       # open(BLASTDEBUGFILE,'>',$debugfile);
       # print BLASTDEBUGFILE  "Hello $rid";
       # close(BLASTDEBUGFILE);

       $factory->remove_rid($rid);

       open(BLASTDEBUGFILE,'>',$blastdebugfile);
       print BLASTDEBUGFILE  $organism;
        close(BLASTDEBUGFILE);

    # open(OUTFILE,'>',$outfile);
    # print OUTFILE "Test2 $result->database_name()";
    # close(OUTFILE);

#$hit = $result->next_hit;
#open(new,'>',$debugfile);
#print $hit;
#close(new);
$dummy=0;
   while ( my $hit = $result->next_hit ) {

            next unless ( $v >= 0);

          #     open(OUTFILE,'>',$debugfile);
           #    print OUTFILE "$hit in while hits";
            #  close(OUTFILE);
 my $sequ = $gb->get_Seq_by_version($hit->name);
           my $dna = $sequ->seq(); # get the sequence as a string
        $dummy++;
             open(OUTFILE,'>',$debugfile);
          #     print OUTFILE $dummy;
              close(OUTFILE);
          push(@seqs,$dna);
         }
        }
      }
    }
  }

$warum=@seqs;
 open(OUTFILE,'>',$debugfile);
             #  print OUTFILE $warum;
               print OUTFILE @seqs;
              close(OUTFILE);
return(@seqs);
}

open(OUTFILE, '>',$outfile) || die ;

print OUTFILE "<HTML>\n
<head><title>RNAi Result</title>
<meta http-equiv=\"expires\" content=\"0\"></head>\n
<body>\n
<p><font face=\"Courier, monospace font set\">
Inputsequence: <br>";


Here in the above code, I was trying to debug the code and trying to get the
count of the array and even the sequence. But when the output data was
giving 1 sequence, the count of the array was 0 and when I tried to print
the output sequence I could not get any. It was the same when the no of
output sequences was  3, I tried to print the sequences but was getting the
count of the array as 2 and was printing only two sequences.

Please help me in sorting out this problem.

Regards,
Roopa.






On Sun, Jan 10, 2010 at 1:03 AM, Mark A. Jensen <maj at fortinbras.us> wrote:

>  Excellent Roopa- it's my pleasure-- MAJ
>
> ----- Original Message -----
> *From:* Roopa Raghuveer <rtbio.2009 at gmail.com>
> *To:* Mark A. Jensen <maj at fortinbras.us>
> *Sent:* Saturday, January 09, 2010 6:41 PM
> *Subject:* Re: [Bioperl-l] Regarding blast in Bioperl
>
> Hi Mark,
>
> Thank you very very much. The code is working now. Thanks for the support
> and time you have spent on me.
>
> Thanks in advance
> Roopa.
>
> On Sat, Jan 9, 2010 at 10:56 PM, Mark A. Jensen <maj at fortinbras.us> wrote:
>
>>  There is still a bug with the double quotes. Use "$organ\[ORGN]", which
>> prevents perl from
>> looking for a member of an array called @organ. This would have shown up
>> if 'use strict;' had
>> been in place. Still don't know whether this would work precisely; can you
>> send me the query
>> sequence so I can reproduce your ouput?
>> thanks MAJ
>>
>>  ----- Original Message -----
>> *From:* Roopa Raghuveer <rtbio.2009 at gmail.com>
>>   *To:* Mark A. Jensen <maj at fortinbras.us>
>> *Sent:* Saturday, January 09, 2010 2:02 PM
>> *Subject:* Re: [Bioperl-l] Regarding blast in Bioperl
>>
>> Hi Mark,
>>
>> I tried it with double quotes but still i got the same o/p with sequences
>> from different species.
>>
>> ref|XM_822292.1|  Trypanosoma brucei TREU927 protein kinase A ...  1813
>> 0.0
>> ref|XM_822286.1|  Trypanosoma brucei TREU927 protein kinase A ...  1622
>> 0.0
>> ref|XM_816530.1|  Trypanosoma cruzi strain CL Brener protein k...   773
>> 0.0
>> ref|XM_816527.1|  Trypanosoma cruzi strain CL Brener protein k...   749
>> 0.0
>> ref|XM_838414.1|  Leishmania major strain Friedlin protein kin...   551
>> 3e-154
>> ref|XM_838409.1|  Leishmania major strain Friedlin protein kin...   551
>> 3e-154
>> ref|XM_001568451.1|  Leishmania braziliensis MHOM/BR/75/M2904 ...   542
>> 2e-151
>> ref|XM_001469171.1|  Leishmania infantum protein kinase A cata...   538
>> 2e-150
>> ref|XM_001469166.1|  Leishmania infantum protein kinase A cata...   538
>> 2e-150
>> ref|XM_001682462.1|  Leishmania major protein kinase A catalyt...   196
>> 3e-47
>> ref|XM_804361.1|  Trypanosoma cruzi strain CL Brener protein k...   190
>> 1e-45
>> ref|XM_002065851.1|  Drosophila willistoni GK20594 (Dwil\GK205...   181
>> 7e-43
>> ref|XM_822694.1|  Trypanosoma brucei TREU927 protein kinase A ...   179
>> 2e-42
>> ref|XM_001563990.1|  Leishmania braziliensis MHOM/BR/75/M2904 ...   178
>> 8e-42
>> ref|XM_814844.1|  Trypanosoma cruzi strain CL Brener protein k...   170
>> 1e-39
>> ref|XM_001763039.1|  Physcomitrella patens subsp. patens predi...   169
>> 4e-39
>> ref|XM_001464886.1|  Leishmania infantum JPCM5 protein kinase ...   167
>> 1e-38
>> ref|XM_001377302.1|  PREDICTED: Monodelphis domestica similar ...   150
>> 1e-33
>> ref|XM_001603485.1|  PREDICTED: Nasonia vitripennis similar to...   145
>> 5e-32
>> ref|XM_416852.2|  PREDICTED: Gallus gallus protein kinase, X-l...   143
>> 2e-31
>> ref|NM_001016403.2|  Xenopus (Silurana) tropicalis protein kin...   143
>> 2e-31
>> ref|XM_002009291.1|  Drosophila mojavensis GI11297 (Dmoj\GI112...   138
>> 7e-30
>> ref|NM_016979.1|  Mus musculus protein kinase, X-linked (Prkx)...   138
>> 7e-30
>> ref|XM_001495664.2|  PREDICTED: Equus caballus similar to Seri...   136
>> 2e-29
>> ref|XM_001111571.1|  PREDICTED: Macaca mulatta cAMP-dependent ...   136
>> 2e-29
>> ref|XM_001611655.1|  Babesia bovis protein kinase domain conta...   134
>> 9e-29
>> ref|NR_028062.1|  Homo sapiens protein kinase, Y-linked (PRKY)...   132
>> 3e-28
>> ref|XM_001517795.1|  PREDICTED: Ornithorhynchus anatinus simil...   132
>> 3e-28
>> ref|XM_685338.2|  PREDICTED: Danio rerio similar to Serine/thr...   132
>> 3e-28
>> ref|XM_002189865.1|  PREDICTED: Taeniopygia guttata protein ki...   131
>> 1e-27
>> ref|XM_001362299.1|  PREDICTED: Monodelphis domestica similar ...   131
>> 1e-27
>> ref|NM_001093198.1|  Xenopus laevis protein kinase, cAMP-depen...   129
>> 4e-27
>> ref|XM_001461322.1|  Paramecium tetraurelia hypothetical prote...   129
>> 4e-27
>> ref|NM_001099869.1|  Xenopus laevis cAMP-dependent protein kin...   129
>> 4e-27
>> ref|NM_001003470.1|  Danio rerio protein kinase, cAMP-dependen...   129
>> 4e-27
>> ref|XM_001141503.1|  PREDICTED: Pan troglodytes verus protein ...   127
>> 1e-26
>> ref|XM_001145269.1|  PREDICTED: Pan troglodytes protein kinase...   127
>> 1e-26
>> ref|XM_512434.2|  PREDICTED: Pan troglodytes cAMP-dependent pr...   127
>> 1e-26
>> ref|XM_001171457.1|  PREDICTED: Pan troglodytes cAMP-dependent...   127
>> 1e-26
>> ref|XM_001171437.1|  PREDICTED: Pan troglodytes cAMP-dependent...   127
>> 1e-26
>> ref|XM_847420.1|  PREDICTED: Canis familiaris similar to Serin...   127
>> 1e-26
>> ref|NM_207518.1|  Homo sapiens protein kinase, cAMP-dependent,...   127
>> 1e-26
>> ref|NM_002730.3|  Homo sapiens protein kinase, cAMP-dependent,...   127
>> 1e-26
>>
>>
>> Thanks in advance.
>>
>> Roopa.
>>
>> On Sat, Jan 9, 2010 at 7:46 PM, Mark A. Jensen <maj at fortinbras.us> wrote:
>>
>>>  I understand you. Put in the double quotes and see what happens.
>>>
>>>  ----- Original Message -----
>>> *From:* Roopa Raghuveer <rtbio.2009 at gmail.com>
>>> *To:* Mark A. Jensen <maj at fortinbras.us>
>>>   *Sent:* Saturday, January 09, 2010 1:40 PM
>>> *Subject:* Re: [Bioperl-l] Regarding blast in Bioperl
>>>
>>> Hi Mark,
>>>
>>> Thanks for your reply. It was working when I specifically use the name of
>>> the organism as Trypanosoma brucei in the code,but my idea is to introduce a
>>> $organ which takes the organism given by the user i.e., let it be anything
>>>
>>> Pseudomonas, Drosophila, Trypanosoma, Leishmania etc.,  I should get the
>>> sequences related to only those organisms.
>>>
>>> i.e., If the user enters Pseudomonas,the $organ parameter of the code
>>> takes Pseudomonas ,does BLAST and returns only those sequences that produce
>>> significant alignment with Pseudomonas(only).But this is not happening like
>>> that .
>>>
>>> Please help me in this regard.
>>>
>>> Thanks in advance
>>> Roopa
>>>
>>> On Sat, Jan 9, 2010 at 7:29 PM, Mark A. Jensen <maj at fortinbras.us>wrote:
>>>
>>>>  Hi Roopa-- You may get what you want if you make the change.
>>>> With single quotes, ENTREZ_QUERY is set to the literal string
>>>>
>>>>  $organ[ORGN]
>>>>
>>>> while, with double quotes, the variable value will be substituted,
>>>> and the parameter should be set to
>>>>
>>>>  Trypanosoma brucei[ORGN]
>>>>
>>>> I'm guess that it worked because the database ignored the strange
>>>> parameter,
>>>> and returned all the matches. Try this and if it doesn't work I look
>>>> harder.
>>>> cheers,
>>>> Mark
>>>>
>>>>  ----- Original Message -----
>>>> *From:* Roopa Raghuveer <rtbio.2009 at gmail.com>
>>>>   *To:* Mark A. Jensen <maj at fortinbras.us>
>>>> *Sent:* Saturday, January 09, 2010 1:24 PM
>>>> *Subject:* Re: [Bioperl-l] Regarding blast in Bioperl
>>>>
>>>> hello Mark,
>>>>
>>>> Thanks for your reply.It was working without enclosing $organ[ORGN] in
>>>> double quotations,but. I would like to have only those specific sequences
>>>> which are specific for my Organism i.e., I need sequences only from the
>>>> organism that I entered.
>>>>
>>>> When the organism is Trypanosoma brucei,I could get even Leishmania and
>>>> other species as the similar sequences. But I want to get only trypanosoma
>>>> brucei sequences.
>>>>
>>>> Could you please help me out in this regard?
>>>>
>>>> Roopa.
>>>>
>>>> My output
>>>>
>>>> I/P organism: Trypanosoma brucei
>>>>
>>>> O/P:-
>>>> ref|XM_822292.1|  Trypanosoma brucei TREU927 protein kinase A ...
>>>> 1813    0.0
>>>> ref|XM_822286.1|  Trypanosoma brucei TREU927 protein kinase A ...
>>>> 1622    0.0
>>>> ref|XM_816530.1|  Trypanosoma cruzi strain CL Brener protein k...
>>>> 773    0.0
>>>> ref|XM_816527.1|  Trypanosoma cruzi strain CL Brener protein k...
>>>> 749    0.0
>>>> ref|XM_838414.1|  Leishmania major strain Friedlin protein kin...
>>>> 551    3e-154
>>>> ref|XM_838409.1|  Leishmania major strain Friedlin protein kin...
>>>> 551    3e-154
>>>> ref|XM_001568451.1|  Leishmania braziliensis MHOM/BR/75/M2904 ...
>>>> 542    2e-151
>>>> ref|XM_001469171.1|  Leishmania infantum protein kinase A cata...
>>>> 538    2e-150
>>>> ref|XM_001469166.1|  Leishmania infantum protein kinase A cata...
>>>> 538    2e-150
>>>> ref|XM_001682462.1|  Leishmania major protein kinase A catalyt...
>>>> 196    3e-47
>>>> ref|XM_804361.1|  Trypanosoma cruzi strain CL Brener protein k...
>>>> 190    1e-45
>>>> ref|XM_002065851.1|  Drosophila willistoni GK20594 (Dwil\GK205...
>>>> 181    7e-43
>>>> ref|XM_822694.1|  Trypanosoma brucei TREU927 protein kinase A ...
>>>> 179    2e-42
>>>> ref|XM_001563990.1|  Leishmania braziliensis MHOM/BR/75/M2904 ...
>>>> 178    8e-42
>>>> ref|XM_814844.1|  Trypanosoma cruzi strain CL Brener protein k...
>>>> 170    1e-39
>>>> ref|XM_001763039.1|  Physcomitrella patens subsp. patens predi...
>>>> 168    4e-39
>>>> ref|XM_001464886.1|  Leishmania infantum JPCM5 protein kinase ...
>>>> 167    1e-38
>>>> ref|XM_001377302.1|  PREDICTED: Monodelphis domestica similar ...
>>>> 150    1e-33
>>>> ref|XM_001603485.1|  PREDICTED: Nasonia vitripennis similar to...
>>>> 145    5e-32
>>>> ref|XM_416852.2|  PREDICTED: Gallus gallus protein kinase, X-l...
>>>> 143    2e-31
>>>> ref|NM_001016403.2|  Xenopus (Silurana) tropicalis protein kin...
>>>> 143    2e-31
>>>> ref|XM_002009291.1|  Drosophila mojavensis GI11297 (Dmoj\GI112...
>>>> 138    7e-30
>>>> ref|NM_016979.1|  Mus musculus protein kinase, X-linked (Prkx)...
>>>> 138    7e-30
>>>> ref|XM_001495664.2|  PREDICTED: Equus caballus similar to Seri...
>>>> 136    2e-29
>>>> ref|XM_001111571.1|  PREDICTED: Macaca mulatta cAMP-dependent ...
>>>> 136    2e-29
>>>> ref|XM_001611655.1|  Babesia bovis protein kinase domain conta...
>>>> 134    9e-29
>>>> ref|NR_028062.1|  Homo sapiens protein kinase, Y-linked (PRKY)...
>>>> 132    3e-28
>>>> ref|XM_001517795.1|  PREDICTED: Ornithorhynchus anatinus simil...
>>>> 132    3e-28
>>>> ref|XM_685338.2|  PREDICTED: Danio rerio similar to Serine/thr...
>>>> 132    3e-28
>>>> ref|XM_002189865.1|  PREDICTED: Taeniopygia guttata protein ki...
>>>> 131    1e-27
>>>> ref|XM_001362299.1|  PREDICTED: Monodelphis domestica similar ...
>>>> 131    1e-27
>>>> ref|NM_001093198.1|  Xenopus laevis protein kinase, cAMP-depen...
>>>> 129    4e-27
>>>> ref|XM_001461322.1|  Paramecium tetraurelia hypothetical prote...
>>>> 129    4e-27
>>>> ref|NM_001099869.1|  Xenopus laevis cAMP-dependent protein kin...
>>>> 129    4e-27
>>>>
>>>> Roopa.
>>>>
>>>> On Sat, Jan 9, 2010 at 7:05 PM, Mark A. Jensen <maj at fortinbras.us>wrote:
>>>>
>>>>> I see it immediately (from making same bug many times) :
>>>>>
>>>>>
>>>>> my $factory = Bio::Tools::Run::RemoteBlast->new(@params, -ENTREZ_QUERY
>>>>> =>
>>>>> - '$organ[ORGN]');
>>>>> +"$organ[ORGN]");
>>>>>
>>>>>
>>>>> MAJ
>>>>>
>>>>> ----- Original Message ----- From: "Roopa Raghuveer" <
>>>>> rtbio.2009 at gmail.com>
>>>>> To: "Mark A. Jensen" <maj at fortinbras.us>
>>>>> Cc: <bioperl-l at lists.open-bio.org>
>>>>> Sent: Saturday, January 09, 2010 11:57 AM
>>>>> Subject: Re: [Bioperl-l] Regarding blast in Bioperl
>>>>>
>>>>>
>>>>>
>>>>> Hello all,
>>>>>>
>>>>>> Thanks alot for your reply Mark. It was working for Trypanosoma brucei
>>>>>> as
>>>>>> the organism parameter,but when I tried to use the Organism parameter
>>>>>> from
>>>>>> the user,it was not working i.e., I was unable to get the target
>>>>>> sequences.
>>>>>> Please help me in this regard. My code is
>>>>>>
>>>>>> #!/usr/bin/perl
>>>>>>
>>>>>> #path for extra camel module
>>>>>> use lib "/srv/www/htdocs/rain/RNAi/";
>>>>>> use Roopablast;
>>>>>>
>>>>>>
>>>>>> use Bio::SearchIO;
>>>>>> use Bio::Search::Result::BlastResult;
>>>>>> use Bio::Perl;
>>>>>> use Bio::Tools::Run::RemoteBlast;
>>>>>> use Bio::Seq;
>>>>>> use Bio::SeqIO;
>>>>>> use Bio::DB::GenBank;
>>>>>>
>>>>>> $serverpath = "/srv/www/htdocs/rain/RNAi";
>>>>>> $serverurl = "http://141.84.66.66/rain/RNAi";
>>>>>> $outfile = $serverpath."/rnairesult_".time().".html";
>>>>>> $nuc = $serverpath."/nuc".time().".txt";
>>>>>> $debugfile = $serverpath."/debug_".time().".txt";
>>>>>> $blastdebugfile = $serverpath."/blastdebug_".time().".txt";
>>>>>>
>>>>>> my $outstring ="";
>>>>>>
>>>>>> &parse_form;
>>>>>>
>>>>>> print "Content-type: text/html\n\n";
>>>>>> print "<HTML>\n";
>>>>>> print "<head><title>RNAi Result</title>";
>>>>>> print "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"30;
>>>>>> URL=$serverurl/rnairesult_".time().".html\"> \n";
>>>>>> print "</head>\n";
>>>>>> print "<body>\n";
>>>>>> print " Your results will appear <a
>>>>>> href=$serverurl/rnairesult_".time().".html>here</a><br>";
>>>>>> print " Please be patient, runtime can be up to 5 minutes<br>";
>>>>>> print " This page will automatically reload in 30 seconds. Roopa";
>>>>>> print "</BODY>\n";
>>>>>> print "</HTML>\n";
>>>>>>
>>>>>> defined(my $pid = fork) or die "Can't fork: $!";
>>>>>> exit if $pid;
>>>>>> open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
>>>>>> open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
>>>>>> open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
>>>>>>
>>>>>> open(OUTFILE, '>',$outfile);
>>>>>>
>>>>>> print OUTFILE "<HTML>\n
>>>>>> <head><title>RNAi Result</title>
>>>>>> <META HTTP-EQUIV=\"Refresh\" CONTENT=\"30;
>>>>>> URL=$serverurl//rnairesult_".time().".html\"> \n
>>>>>> <meta http-equiv=\"expires\" content=\"0\">
>>>>>> </head>\n
>>>>>> <body>\n
>>>>>>  Your results will appear <a
>>>>>> href=$serverurl/rnairesult_".time().".html>here</a><br>
>>>>>>  Please be patient, runtime can be up to 5 minutes wait wait
>>>>>> wait......<br>
>>>>>> This page will automatically reload in 30 seconds Roopa <br>
>>>>>> </BODY>\n
>>>>>> </HTML>\n";
>>>>>>
>>>>>> close(OUTFILE);
>>>>>>
>>>>>>
>>>>>> @compseqs = blastcode($in{'Inputseq'},$in{'Organism'});
>>>>>>
>>>>>> $in{'Inputseq'} =~ s/>.*$//m;
>>>>>> $in{'Inputseq'} =~ s/[^TAGC]//gim;
>>>>>> $in{'Inputseq'} =~ tr/actg/ACTG/;
>>>>>>
>>>>>> @out = similar($in{'Inputseq'}, \@compseqs, $in{'Windowsize'},
>>>>>> $in{'Threshold'});
>>>>>>
>>>>>>
>>>>>> sub blastcode
>>>>>> {
>>>>>>
>>>>>> $inpu1= $_[0];
>>>>>>
>>>>>> $organ= $_[1];
>>>>>>
>>>>>> open(NUC,'>',$nuc);
>>>>>> print NUC $inpu1,"\n";
>>>>>> close(NUC);
>>>>>>
>>>>>> my $prog = 'blastn';
>>>>>> my $db   = 'refseq_rna';
>>>>>> my $e_val= '1e-10';
>>>>>> my $organism= $organ;
>>>>>>
>>>>>> $gb = new Bio::DB::GenBank;
>>>>>>
>>>>>> my @params = ( '-prog' => $prog,
>>>>>>        '-data' => $db,
>>>>>>        '-expect' => $e_val,
>>>>>>        '-readmethod' => 'SearchIO',
>>>>>>       '-Organism'   => $organism );
>>>>>>
>>>>>>            open(OUTFILE,'>',$debugfile);
>>>>>>            print OUTFILE $inpu1;
>>>>>>             close(OUTFILE);
>>>>>>
>>>>>>
>>>>>> my $factory = Bio::Tools::Run::RemoteBlast->new(@params, -ENTREZ_QUERY
>>>>>> =>
>>>>>> '$organ[ORGN]');
>>>>>>
>>>>>> #my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
>>>>>>
>>>>>>  #change a paramter
>>>>>>
>>>>>> #$Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = 'Trypanosoma
>>>>>> Brucei[ORGN]';
>>>>>>
>>>>>> #change a paramter
>>>>>> # $Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} =
>>>>>> '$input2[ORGN]';
>>>>>>
>>>>>>  my $v = 1;
>>>>>>  #$v is just to turn on and off the messages
>>>>>>
>>>>>> my $str = Bio::SeqIO->new('-file' => $nuc , '-format' => 'fasta' ,
>>>>>> '-organism' => $organ );
>>>>>>
>>>>>>
>>>>>> while (my $input = $str->next_seq())
>>>>>> {
>>>>>>  #Blast a sequence against a database:
>>>>>>   #Alternatively, you could  pass in a file with many
>>>>>>   #sequences rather than loop through sequence one at a time
>>>>>>   #Remove the loop starting 'while (my $input = $str->next_seq())'
>>>>>>   #and swap the two lines below for an example of that.
>>>>>>
>>>>>>            #open(OUTFILE,'>',$debugfile);
>>>>>>             # print OUTFILE $input;
>>>>>>             #close(OUTFILE);
>>>>>>
>>>>>>
>>>>>>  my $r = $factory->submit_blast($input);
>>>>>>
>>>>>>               open(OUTFILE,'>',$debugfile);
>>>>>>            #   print OUTFILE $r;
>>>>>>               close(OUTFILE);
>>>>>>
>>>>>>  print STDERR "waiting...." if($v>0);
>>>>>>
>>>>>>  while ( my @rids = $factory->each_rid ) {
>>>>>>  #   open(OUTFILE,'>',$debugfile);
>>>>>>   #           print OUTFILE "while entered";
>>>>>>    #         close(OUTFILE);
>>>>>>    foreach my $rid ( @rids ) {
>>>>>>
>>>>>>     #         open(OUTFILE,'>',$debugfile);
>>>>>>      #        print OUTFILE "foreach entered";
>>>>>>       #      close(OUTFILE);
>>>>>>
>>>>>>       my $rc = $factory->retrieve_blast($rid);
>>>>>>
>>>>>>       if( !ref($rc) )
>>>>>>       {
>>>>>>       if( $rc < 0 )
>>>>>>       {
>>>>>>       $factory->remove_rid($rid);
>>>>>>       }
>>>>>>        open(OUTFILE,'>',$debugfile);
>>>>>>        #      print OUTFILE "if entered";
>>>>>>             close(OUTFILE);
>>>>>>        print STDERR "." if ( $v > 0 );
>>>>>>        sleep 5;
>>>>>>       }
>>>>>>      else {
>>>>>>         #    open(OUTFILE,'>',$debugfile);
>>>>>>          #    print OUTFILE "else entered";
>>>>>>           #  close(OUTFILE);
>>>>>>
>>>>>>         my $result = $rc->next_result();
>>>>>>        #save the output
>>>>>>       $blastdebugfile = $serverpath."/blastdebug_".time().".txt";
>>>>>>
>>>>>>         open(BLASTDEBUGFILE,'>',$blastdebugfile);
>>>>>>         print BLASTDEBUGFILE $result->next_hit();
>>>>>>         close(BLASTDEBUGFILE);
>>>>>>
>>>>>>       my $filename =
>>>>>> $serverpath."/blastdata_".time().$result->query_name()."\.out";
>>>>>>
>>>>>>        # open(DEBUGFILE,'>',$debugfile);
>>>>>>        # open(new,'>',$filename);
>>>>>>        # @arra=<new>;
>>>>>>        # print DEBUGFILE @arra;
>>>>>>        # close(DEBUGFILE);
>>>>>>        # close(new);
>>>>>>
>>>>>>        $factory->save_output($filename);
>>>>>>  # open(BLASTDEBUGFILE,'>',$debugfile);
>>>>>>      # print BLASTDEBUGFILE  "Hello $rid";
>>>>>>      # close(BLASTDEBUGFILE);
>>>>>>
>>>>>>      $factory->remove_rid($rid);
>>>>>>
>>>>>>      open(BLASTDEBUGFILE,'>',$blastdebugfile);
>>>>>>      print BLASTDEBUGFILE  $organism;
>>>>>>       close(BLASTDEBUGFILE);
>>>>>>
>>>>>>   # open(OUTFILE,'>',$outfile);
>>>>>>   # print OUTFILE "Test2 $result->database_name()";
>>>>>>   # close(OUTFILE);
>>>>>>
>>>>>> #$hit = $result->next_hit;
>>>>>> #open(new,'>',$debugfile);
>>>>>> #print $hit;
>>>>>> #close(new);
>>>>>>
>>>>>>  while ( my $hit = $result->next_hit ) {
>>>>>>
>>>>>>           next unless ( $v > 0);
>>>>>>
>>>>>>         #     open(OUTFILE,'>',$debugfile);
>>>>>>          #    print OUTFILE "$hit in while hits";
>>>>>>           #  close(OUTFILE);
>>>>>>
>>>>>>      my $sequ = $gb->get_Seq_by_version($hit->name);
>>>>>>          my $dna = $sequ->seq();        # get the sequence as a string
>>>>>>                 push(@seqs,$dna);
>>>>>>         }
>>>>>>       }
>>>>>>     }
>>>>>>   }
>>>>>>  }
>>>>>>
>>>>>>  #open(OUTFILE,'>',$debugfile);
>>>>>>  #print OUTFILE $seqs[0];
>>>>>>  #close(OUTFILE);
>>>>>>
>>>>>> return(@seqs);
>>>>>>
>>>>>> }
>>>>>>
>>>>>> Regards,
>>>>>> Roopa.
>>>>>>
>>>>>>
>>>>>> On Fri, Jan 8, 2010 at 4:36 PM, Mark A. Jensen <maj at fortinbras.us>
>>>>>> wrote:
>>>>>>
>>>>>> Hi Roopa--
>>>>>>>
>>>>>>> I got your code to work with the following changes:
>>>>>>>
>>>>>>> +# the input should be a valid FASTA file...
>>>>>>> ...
>>>>>>> open(NUC,'>',$nuc);
>>>>>>> +print NUC ">seq (need a name line for valid fasta)\n";
>>>>>>> print NUC $inpu1, "\n";
>>>>>>> close(NUC);
>>>>>>> ...
>>>>>>>
>>>>>>> +# you can set these header parms in the call itself...
>>>>>>> - my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
>>>>>>> + my $factory = Bio::Tools::Run::RemoteBlast->new(@params,
>>>>>>> -ENTREZ_QUERY =>
>>>>>>> ''Trypanosoma Brucei[ORGN]');
>>>>>>>
>>>>>>>  #change a paramter
>>>>>>> +# commented this out...
>>>>>>> +# $Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} =
>>>>>>> 'Trypanosoma
>>>>>>> Brucei[ORGN]';
>>>>>>>
>>>>>>> MAJ
>>>>>>> ----- Original Message ----- From: "Roopa Raghuveer" <
>>>>>>> rtbio.2009 at gmail.com
>>>>>>> >
>>>>>>> To: <bioperl-l at lists.open-bio.org>
>>>>>>> Sent: Friday, January 08, 2010 10:00 AM
>>>>>>> Subject: [Bioperl-l] Regarding blast in Bioperl
>>>>>>>
>>>>>>>
>>>>>>>  Hello all,
>>>>>>>
>>>>>>>>
>>>>>>>> I was trying Remote blast using Bioperl. My input data is a
>>>>>>>> Trypanosoma
>>>>>>>> brucei sequence in Fasta format. When I was trying to submit to
>>>>>>>> BLAST
>>>>>>>> using
>>>>>>>> the step
>>>>>>>> $r=$factory->submit_blast($input)
>>>>>>>> It was not returning anything which I checked by debugging the code.
>>>>>>>> It is
>>>>>>>> not blasting my input sequence even though I mentioned all the
>>>>>>>> parameters.I
>>>>>>>> would paste the code below.
>>>>>>>>
>>>>>>>> Please help me in solving put this problem. It is very urgent.
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Roopa.
>>>>>>>>
>>>>>>>> #!/usr/bin/perl
>>>>>>>>
>>>>>>>> #path for extra camel module
>>>>>>>> use lib "/srv/www/htdocs/rain/RNAi/";
>>>>>>>> use Roopablast;
>>>>>>>>
>>>>>>>>
>>>>>>>> use Bio::SearchIO;
>>>>>>>> use Bio::Search::Result::BlastResult;
>>>>>>>> use Bio::Perl;
>>>>>>>> use Bio::Tools::Run::RemoteBlast;
>>>>>>>> use Bio::Seq;
>>>>>>>> use Bio::SeqIO;
>>>>>>>> use Bio::DB::GenBank;
>>>>>>>>
>>>>>>>> $serverpath = "/srv/www/htdocs/rain/RNAi";
>>>>>>>> $serverurl = "http://141.84.66.66/rain/RNAi";
>>>>>>>> $outfile = $serverpath."/rnairesult_".time().".html";
>>>>>>>> $nuc = $serverpath."/nuc".time().".txt";
>>>>>>>> $debugfile = $serverpath."/debug_".time().".txt";
>>>>>>>> $blastdebugfile = $serverpath."/blastdebug_".time().".txt";
>>>>>>>>
>>>>>>>> my $outstring ="";
>>>>>>>>
>>>>>>>> &parse_form;
>>>>>>>>
>>>>>>>> print "Content-type: text/html\n\n";
>>>>>>>> print "<HTML>\n";
>>>>>>>> print "<head><title>RNAi Result</title>";
>>>>>>>> print "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"30;
>>>>>>>> URL=$serverurl/rnairesult_".time().".html\"> \n";
>>>>>>>> print "</head>\n";
>>>>>>>> print "<body>\n";
>>>>>>>> print " Your results will appear <a
>>>>>>>> href=$serverurl/rnairesult_".time().".html>here</a><br>";
>>>>>>>> print " Please be patient, runtime can be up to 5 minutes<br>";
>>>>>>>> print " This page will automatically reload in 30 seconds. Roopa";
>>>>>>>> print "</BODY>\n";
>>>>>>>> print "</HTML>\n";
>>>>>>>>
>>>>>>>> defined(my $pid = fork) or die "Can't fork: $!";
>>>>>>>> exit if $pid;
>>>>>>>> open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
>>>>>>>> open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
>>>>>>>> open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> open(OUTFILE, '>',$outfile);
>>>>>>>>
>>>>>>>> print OUTFILE "<HTML>\n
>>>>>>>> <head><title>RNAi Result</title>
>>>>>>>> <META HTTP-EQUIV=\"Refresh\" CONTENT=\"30;
>>>>>>>> URL=$serverurl//rnairesult_".time().".html\"> \n
>>>>>>>> <meta http-equiv=\"expires\" content=\"0\">
>>>>>>>> </head>\n
>>>>>>>> <body>\n
>>>>>>>>  Your results will appear <a
>>>>>>>> href=$serverurl/rnairesult_".time().".html>here</a><br>
>>>>>>>>  Please be patient, runtime can be up to 5 minutes wait wait
>>>>>>>> wait......<br>
>>>>>>>> This page will automatically reload in 30 seconds Roopa <br>
>>>>>>>> </BODY>\n
>>>>>>>> </HTML>\n";
>>>>>>>>
>>>>>>>> close(OUTFILE);
>>>>>>>>
>>>>>>>>
>>>>>>>> @compseqs = blastcode($in{'Inputseq'});
>>>>>>>>
>>>>>>>> $in{'Inputseq'} =~ s/>.*$//m;
>>>>>>>> $in{'Inputseq'} =~ s/[^TAGC]//gim;
>>>>>>>> $in{'Inputseq'} =~ tr/actg/ACTG/;
>>>>>>>>
>>>>>>>> @out = similar($in{'Inputseq'}, \@compseqs, $in{'Windowsize'},
>>>>>>>> $in{'Threshold'});
>>>>>>>>
>>>>>>>>
>>>>>>>> sub blastcode
>>>>>>>> {
>>>>>>>>
>>>>>>>> $inpu1= $_[0];
>>>>>>>>
>>>>>>>> #$organ= $_[1];
>>>>>>>>
>>>>>>>> open(NUC,'>',$nuc);
>>>>>>>> print NUC $inpu1;
>>>>>>>> close(NUC);
>>>>>>>>
>>>>>>>> my $prog = 'blastn';
>>>>>>>> my $db   = 'refseq_rna';
>>>>>>>> my $e_val= '1e-10';
>>>>>>>> my $organism= 'Trypanosoma Brucei';
>>>>>>>>
>>>>>>>> $gb = new Bio::DB::GenBank;
>>>>>>>>
>>>>>>>> my @params = ( '-prog' => $prog,
>>>>>>>>       '-data' => $db,
>>>>>>>>       '-expect' => $e_val,
>>>>>>>>       '-readmethod' => 'SearchIO',
>>>>>>>>       '-Organism'   => $organism );
>>>>>>>>
>>>>>>>>          # open(OUTFILE,'>',$debugfile);
>>>>>>>>           #  print OUTFILE @params;
>>>>>>>>           # close(OUTFILE);
>>>>>>>>
>>>>>>>>
>>>>>>>> my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
>>>>>>>>
>>>>>>>>  #change a paramter
>>>>>>>>
>>>>>>>> $Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = 'Trypanosoma
>>>>>>>> Brucei[ORGN]';
>>>>>>>>
>>>>>>>> #change a paramter
>>>>>>>> # $Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} =
>>>>>>>> '$input2[ORGN]';
>>>>>>>>
>>>>>>>>  my $v = 1;
>>>>>>>>  #$v is just to turn on and off the messages
>>>>>>>>
>>>>>>>> my $str = Bio::SeqIO->new('-file' => $nuc , '-format' => 'fasta' ,
>>>>>>>> '-organism' => 'Trypanosoma Brucei' );
>>>>>>>>
>>>>>>>>
>>>>>>>> while (my $input = $str->next_seq())
>>>>>>>> {
>>>>>>>>  #Blast a sequence against a database:
>>>>>>>>  #Alternatively, you could  pass in a file with many
>>>>>>>>  #sequences rather than loop through sequence one at a time
>>>>>>>>  #Remove the loop starting 'while (my $input = $str->next_seq())'
>>>>>>>>  #and swap the two lines below for an example of that.
>>>>>>>>
>>>>>>>>           open(OUTFILE,'>',$debugfile);
>>>>>>>>             print OUTFILE $input;
>>>>>>>>            close(OUTFILE);
>>>>>>>>
>>>>>>>>
>>>>>>>>  my $r = $factory->submit_blast($input);    #The program stops here
>>>>>>>> it
>>>>>>>> does not return any value and it does not enter the While
>>>>>>>> loop,Please help
>>>>>>>> me in this regard.#
>>>>>>>>              open(OUTFILE,'>',$debugfile);
>>>>>>>>              print OUTFILE $r;
>>>>>>>>              close(OUTFILE);
>>>>>>>>
>>>>>>>>
>>>>>>>>  print STDERR "waiting...." if($v>0);
>>>>>>>>
>>>>>>>>  while ( my @rids = $factory->each_rid ) {
>>>>>>>>    open(OUTFILE,'>',$debugfile);
>>>>>>>>             print OUTFILE "while entered";
>>>>>>>>            close(OUTFILE);
>>>>>>>>   foreach my $rid ( @rids ) {
>>>>>>>>
>>>>>>>>             open(OUTFILE,'>',$debugfile);
>>>>>>>>             print OUTFILE "foreach entered";
>>>>>>>>            close(OUTFILE);
>>>>>>>>
>>>>>>>>      my $rc = $factory->retrieve_blast($rid);
>>>>>>>>
>>>>>>>>      if( !ref($rc) )
>>>>>>>>      {
>>>>>>>>      if( $rc < 0 )
>>>>>>>>      {
>>>>>>>>      $factory->remove_rid($rid);
>>>>>>>>      }
>>>>>>>>       open(OUTFILE,'>',$debugfile);
>>>>>>>>             print OUTFILE "if entered";
>>>>>>>>            close(OUTFILE);
>>>>>>>>       print STDERR "." if ( $v > 0 );
>>>>>>>>       sleep 5;
>>>>>>>>      }
>>>>>>>>     else {
>>>>>>>>            open(OUTFILE,'>',$debugfile);
>>>>>>>>             print OUTFILE "else entered";
>>>>>>>>            close(OUTFILE);
>>>>>>>>
>>>>>>>>        my $result = $rc->next_result();
>>>>>>>>       #save the output
>>>>>>>>      $blastdebugfile = $serverpath."/blastdebug_".time().".txt";
>>>>>>>>
>>>>>>>>        open(BLASTDEBUGFILE,'>',$blastdebugfile);
>>>>>>>>        print BLASTDEBUGFILE $result->next_hit();
>>>>>>>>        close(BLASTDEBUGFILE);
>>>>>>>>
>>>>>>>>      my $filename =
>>>>>>>> $serverpath."/blastdata_".time().$result->query_name()."\.out";
>>>>>>>>
>>>>>>>>       # open(DEBUGFILE,'>',$debugfile);
>>>>>>>>       # open(new,'>',$filename);
>>>>>>>>       # @arra=<new>;
>>>>>>>>       # print DEBUGFILE @arra;
>>>>>>>>       # close(DEBUGFILE);
>>>>>>>>       # close(new);
>>>>>>>>
>>>>>>>>       $factory->save_output($filename);
>>>>>>>>
>>>>>>>>     # open(BLASTDEBUGFILE,'>',$debugfile);
>>>>>>>>     # print BLASTDEBUGFILE  "Hello $rid";
>>>>>>>>     # close(BLASTDEBUGFILE);
>>>>>>>>
>>>>>>>>     $factory->remove_rid($rid);
>>>>>>>>
>>>>>>>>     open(BLASTDEBUGFILE,'>',$blastdebugfile);
>>>>>>>>     print BLASTDEBUGFILE  $organism;
>>>>>>>>      close(BLASTDEBUGFILE);
>>>>>>>>
>>>>>>>>  # open(OUTFILE,'>',$outfile);
>>>>>>>>  # print OUTFILE "Test2 $result->database_name()";
>>>>>>>>  # close(OUTFILE);
>>>>>>>>
>>>>>>>> #$hit = $result->next_hit;
>>>>>>>> #open(new,'>',$debugfile);
>>>>>>>> #print $hit;
>>>>>>>> #close(new);
>>>>>>>>
>>>>>>>>  while ( my $hit = $result->next_hit ) {
>>>>>>>>
>>>>>>>>          next unless ( $v > 0);
>>>>>>>>
>>>>>>>>        #     open(OUTFILE,'>',$debugfile);
>>>>>>>>         #    print OUTFILE "$hit in while hits";
>>>>>>>>          #  close(OUTFILE);
>>>>>>>>
>>>>>>>>     my $sequ = $gb->get_Seq_by_version($hit->name);
>>>>>>>>         my $dna = $sequ->seq();        # get the sequence as a
>>>>>>>> string
>>>>>>>>                push(@seqs,$dna);
>>>>>>>>        }
>>>>>>>>      }
>>>>>>>>    }
>>>>>>>>  }
>>>>>>>>  }
>>>>>>>>
>>>>>>>>  #open(OUTFILE,'>',$debugfile);
>>>>>>>>  #print OUTFILE $seqs[0];
>>>>>>>>  #close(OUTFILE);
>>>>>>>>
>>>>>>>> return(@seqs);
>>>>>>>>
>>>>>>>> }
>>>>>>>>
>>>>>>>> open(OUTFILE, '>',$outfile) || die ;
>>>>>>>>
>>>>>>>> print OUTFILE "<HTML>\n
>>>>>>>> <head><title>RNAi Result</title>
>>>>>>>> <meta http-equiv=\"expires\" content=\"0\"></head>\n
>>>>>>>> <body>\n
>>>>>>>> <p><font face=\"Courier, monospace font set\">
>>>>>>>> Inputsequence: <br>";
>>>>>>>>
>>>>>>>> for ($i=0; $i<length ($in{'Inputseq'}); $i++) {
>>>>>>>>
>>>>>>>>  print OUTFILE substr ($in{'Inputseq'}, $i, 1);
>>>>>>>>
>>>>>>>>  if ( ($i+1)%10==0){
>>>>>>>>      print OUTFILE " ";
>>>>>>>>  }
>>>>>>>>  if ( ($i+1)%60==0){
>>>>>>>>      print OUTFILE "<br>\n";
>>>>>>>>  }
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> print OUTFILE "</font> <p>";
>>>>>>>>
>>>>>>>> $z=@compseqs;
>>>>>>>>
>>>>>>>> for($k=1;$k<$z;$k++) {
>>>>>>>>  print OUTFILE "<font face=\"Courier, monospace font
>>>>>>>> set\"><p>Compare
>>>>>>>> Sequence: <br>";
>>>>>>>>
>>>>>>>>  for ($i=0; $i<length ($compseqs[$k]); $i++) {
>>>>>>>>
>>>>>>>>      print OUTFILE substr ($compseqs[$k], $i, 1);
>>>>>>>>
>>>>>>>>      if ( ($i+1)%10==0){
>>>>>>>>          print OUTFILE " ";
>>>>>>>>      }
>>>>>>>>      if ( ($i+1)%60==0){
>>>>>>>>          print OUTFILE "<br>\n";
>>>>>>>>      }
>>>>>>>>  }
>>>>>>>>  print OUTFILE "<p></font>";
>>>>>>>> }
>>>>>>>>
>>>>>>>> print OUTFILE "<p>
>>>>>>>> Window: <br>$in{'Windowsize'}
>>>>>>>> <p>
>>>>>>>> <p>
>>>>>>>> Threshold: <br>$in{'Threshold'}
>>>>>>>> <p>";
>>>>>>>> my $j=0;
>>>>>>>>
>>>>>>>> for ($i=0; $i<length ($in{'Inputseq'}); $i++) {
>>>>>>>>
>>>>>>>>  if ($i<=length ($in{'Inputseq'})-$in{'Windowsize'}){
>>>>>>>>      if ($out[$i]->{similar}<=$in{'Threshold'}){
>>>>>>>>          $j=$in{'Windowsize'};
>>>>>>>>      }
>>>>>>>>      $height=$out[$i]->{similar}*5;
>>>>>>>>  }
>>>>>>>>
>>>>>>>>  if ($j>0) {
>>>>>>>>      print OUTFILE "<img src=\"$serverurl/blue.gif\" width=\"1\"
>>>>>>>> height=\"5\">";
>>>>>>>>      $outstring .= "<font color=\"green\">".substr ($in{'Inputseq'},
>>>>>>>> $i,
>>>>>>>> 1)."</font>";
>>>>>>>>      $j--;
>>>>>>>>  }
>>>>>>>>  else {
>>>>>>>>      print OUTFILE "<img src=\"$serverurl/red.gif\" width=\"1\"
>>>>>>>> height=\"5\">";
>>>>>>>>      $outstring .= "<font color=\"red\">".substr ($in{'Inputseq'},
>>>>>>>> $i,
>>>>>>>> 1)."</font>";
>>>>>>>>  }
>>>>>>>>
>>>>>>>>  if ( ($i+1)%10==0){
>>>>>>>>      $outstring .= " ";
>>>>>>>>  }
>>>>>>>>  if ( ($i+1)%60==0){
>>>>>>>>      $outstring .= "<br>\n";
>>>>>>>>
>>>>>>>>  }
>>>>>>>>  if ( ($i+1)%800==0){
>>>>>>>>      print OUTFILE "<br><br>\n";
>>>>>>>>
>>>>>>>>  }
>>>>>>>> }
>>>>>>>>
>>>>>>>> print OUTFILE "<br><br><font face=\"Courier, monospace font
>>>>>>>> set\">$outstring</font>";
>>>>>>>>
>>>>>>>> #foreach (@out) {
>>>>>>>> #print OUTFILE "<p>Sequence: $_->{sequence}: $_->{similar}
>>>>>>>> matchs<p>";
>>>>>>>> #if ($_->{similar}<=$in{'Threshold'}){
>>>>>>>>
>>>>>>>> #    }
>>>>>>>> #}
>>>>>>>>
>>>>>>>> print OUTFILE "</BODY>\n</HTML>\n";
>>>>>>>>
>>>>>>>> close OUTFILE;
>>>>>>>>
>>>>>>>> #nameprint();
>>>>>>>>
>>>>>>>> sub parse_form {
>>>>>>>>  local ($buffer, @pairs, $pair, $name, $value);
>>>>>>>>  # Read in text
>>>>>>>>  $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
>>>>>>>>  if ($ENV{'REQUEST_METHOD'} eq "POST")
>>>>>>>>  {
>>>>>>>>      read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
>>>>>>>>  }
>>>>>>>>  else
>>>>>>>>  {
>>>>>>>>      $buffer = $ENV{'QUERY_STRING'};
>>>>>>>>  }
>>>>>>>>  @pairs = split(/&/, $buffer);
>>>>>>>>  foreach $pair (@pairs)
>>>>>>>>  {
>>>>>>>>      ($name, $value) = split(/=/, $pair);
>>>>>>>>      $value =~ tr/+/ /;
>>>>>>>>      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>>>>>>>>      $in{$name} = $value;
>>>>>>>>  }
>>>>>>>> }
>>>>>>>> _______________________________________________
>>>>>>>> Bioperl-l mailing list
>>>>>>>> Bioperl-l at lists.open-bio.org
>>>>>>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>> Bioperl-l mailing list
>>>>>> Bioperl-l at lists.open-bio.org
>>>>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>
>>
>


More information about the Bioperl-l mailing list