[Bioperl-l] CGI Perl and Bioperl

hafiz hafiz khufaz83 at yahoo.com
Wed Nov 3 01:10:15 EST 2004


i have writing source code to searching sequence with
SeqIO used CGI perl but it don't running in Internet
Exploxer . but it can running on IE while don't have
SeqIO in my source code . why? 
for information, i have installed apache in our
server.

my source code: search.cgi

#!/usr/bin/perl
#use lib '/disk3/local/lib/perl5/site_perl';
#use lib '/home/database/swiss-prot/release';
use CGI qw/:standard :html3/;
use Bio::DB::GenBank;
use File::Temp;
use FileHandle;
use Bio::DB::SwissProt;
use File::Temp;
use FileHandle;
use Bio::Root::IO;
use Bio::SeqIO;
use Bio::Seq;

use Bio::PrimarySeq;
use Location;


print header,
  start_html(-title => 'find subsequence of large
SwissProt entries',-author => 
'  ');
print_form()    unless param;
print_results() if param;


sub print_results {   
$database = SwissProt;
$input = param('input');
$fileName = param('fileName');
$format = swiss;
#Load  module Location.pm into an array
@filelocation = Location::filelocation ("sprot42.dat",
$database);

#Access directory path that resides in second element
of array @filelocation
my $location = $filelocation[1];
   


#Open the directory that are returned by Location.pm
modul
 opendir (DIR, $location)|| die "Couldn't open
directory or directory not found\n";



 #recieve input from user




  print "====>>Enter sequence:$input";
#  $input = <STDIN>;
  chomp $input;
  print "\n";


 
  #Read the drectory and store its content in an array
  @file = readdir (DIR);


foreach $file(@file) {
 
   if ($file eq "sprot42.dat") {

#Open sprot42.dat file for reading

$file="$location";
$file .="/sprot42.dat";


open (FILE,$file) || die "Couldn't open file\n";
  
    #Method from Bioperl module-Bio::SeqIO
    #Create a sequence object and store it in scalar
variable
    $in = Bio::SeqIO->new(-file
=>$file,'-format'=>"$format");
      
      #Loop untill the end of the sequence object
      while (my $seq = $in->next_seq()) {




         #Read sequence in file   
         my $sequence = $seq->seq;
    
         #Test if sequence exist in the file
         if ($sequence =~ /$input/) {


       my
$io=Bio::SeqIO->new(-format=>"$format",-file=>">/var/www/html/infoseq");
        $io->write_seq($seq);

#Access sequence ID and store it in a scalar variable

  $fileName = $seq->id;         


print "Matching sequence found in $fileName\n\n";

           #Store $fileName in @foundfile array
           push (@foundfile,$fileName);
         
           #Increase counter of found
           $found = $found + 1;

         }# End second if loop

	}#End while loop

   }#End first if loop
}#End foreach loop
}

           


sub print_form {


print start_form,table(
			 Tr(td("Enter your sequence"),td(textfield(-name =>
'input',-size => 20)))),
    submit ("Find my subsequence");




}    
   

________________________________________________________________________
Yahoo! Messenger - Communicate instantly..."Ping" 
your friends today! Download Messenger Now 
http://uk.messenger.yahoo.com/download/index.html


More information about the Bioperl-l mailing list