#!/usr/bin/perl -w use strict; use CGI; use Fcntl qw(:DEFAULT :flock); #$query->cgi_errror and error($query, "Error transferring file: " . $query->cgi_error ); #SUB error needs to be completed print "Content-type:text/html\n\n"; #Declaring constants use constant UPLOAD_DIR => "/usr/local"; use constant MAX_FILE_SIZE => 1_048_576; #Limit each upload to 1MB use constant MAX_OPEN_TRIES => 100; use constant BUFFER_SIZE => 16_384; # New object my $query = new CGI; my $file = $query->param('fname');#|| error ($query, "No file received."); my $fh = $query->upload("$file"); #y $buffer = ""; my $filename = ""; #y @annotation = ""; my @list = ""; $query->header(); $query->start_html(); $query->startform(); ################# IF file has been uploaded ############################# if($file) { $file =~ s/[^\w.-]/_/g; #Rectifying the string for name of the file if($file=~ /^(\w[\w.-]*)/) { $file = $1; } else { error($query, "Invalid file name; file must start with a letter or number."); } until (sysopen OUTPUT, UPLOAD_DIR . $file, 0_CREAT ) { $file =~ s/(\d*)(\.\w+)$/($1||0)+1 .$2/e; $1 >= MAX_OPEN_TRIES and error ($query, "Unable to save your file"); } while(read($fh, $buffer, BUFFER_SIZE)) #Write content to OUTPUT file { print OUTPUT $buffer; } close OUTPUT; $filename = $file.'.'.'fasta'; if($format eq "embl") { embl_fasta(); } elsif($format eq "genbank") { genbank_fasta(); } open(IN,"UPLOAD_DIR/$filename"); my $one = 0; my $header; my $prevhead; my $sequence; #reading the genome sequence my $x=1; while() { my $seqline = $_; $seqline =~ s/\n//g; if($seqline =~ /^>/g) { if($one == 0) { $header = $seqline; $prevhead = $header; $sequence = ''; $one++; next; } else { $header = $seqline; $annotation[$x]=$prevhead; $list[$x]=$sequence; $x++; $prevhead = $header; $sequence = ''; next; } }#end if $seqline $sequence = $sequence.$seqline; $sequence =~ s/\s//g; }#end while close(IN); $annotation[$x]=$prevhead; $list[$x]=$sequence; } # If Sequence has been uploaded ################# Opening of each sequence ############################### my $z=0; for $name(@annotation) { my $sequence=""; $sequence = $list[$z]; print "$sequence"; $z++; print "

PROMOTER PREDICTION AT A SENSITIVITY LEVEL



"; print " "; print " Sequence ID :   $sequence
"; print "
RESULTS

"; print "
"; print "

FORWARD STRAND


"; print "
"; } $query->endform(); $query->end_html();