[Bioperl-l] I can't access clustalw from my cgi perl program...

vdar at yorku.ca vdar at yorku.ca
Wed May 21 19:18:22 UTC 2008


Hi,

This is my .bashrc file and perl can see bioperl because my commandline programs
work fine, the problem is with web-based programs

##############################################
# .bashrc

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc

fi
export PERL5LIB="/opt/rocks/lib/perl5/site_perl/5.8.8"


################################################

Please let me know if I need to change it now...

Thanks
Nisa


Quoting Thomas Sharpton <sharpton at berkeley.edu>:

> Hi Nisa,
>
> Looks to me like you need to add BioPerl to your PERL5LIB environmental
> variable.  Until you set this up, Perl doesn't know where on your
> machine to find the Bioperl code.  On a UNIX/Linux/Mac OSX based system,
> the fix is as follows:
>
>  From http://www.bioperl.org/wiki/Using_Subversion :
>
> Tell perl where to find BioPerl (assuming you checked out the code in
> $HOME/src; set this in your .bash_profile, .profile, or .cshrc):
>
> bash: $ export PERL5LIB="$HOME/src/bioperl-live:$PERL5LIB"
> tcsh: $ setenv PERL5LIB "$HOME/src/bioperl-live:$PERL5LIB"
>
> On a windows machine, you can either environmental variables through
> autoexec.bat or via the Control Panel.
>
> Feel free to back channel me if you need help.
>
> Cheers,
> Tom
>
>
> nisa_dar wrote:
> > Hi,
> >
> > My multiple alignment program works fine from command line but when i put
> > the
> > same piece of code in my cgi perl program, it gives me the same error,
> which
> > is,
> >
> > Can't locate Bio/Tools/Run/Alignment/Clustalw.pm in @INC (@INC contains:
> > /export/share/iNquiry/perl/lib/5.8.5/x86_64-linux-thread-multi
> > /export/share/iNquiry/perl/lib/5.8.5
> > /export/share/iNquiry/perl/lib/x86_64-linux-thread-multi
> > /export/share/iNquiry/perl/lib/5.8.4 /export/share/iNquiry/perl/lib/5.8.3
> > /export/share/iNquiry/perl/lib/5.8.2 /export/share/iNquiry/perl/lib/5.8.1
> > /export/share/iNquiry/perl/lib/5.8.0 /export/share/iNquiry/perl/lib
> > /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5
> > /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi
> > /usr/lib64/perl5/site_perl/5.8.4/x86_64-linux-thread-multi
> > /usr/lib64/perl5/site_perl/5.8.3/x86_64-linux-thread-multi
> > /usr/lib64/perl5/site_perl/5.8.2/x86_64-linux-thread-multi
> > /usr/lib64/perl5/site_perl/5.8.1/x86_64-linux-thread-multi
> > /usr/lib64/perl5/site_perl/5.8.0/x86_64-linux-thread-multi
> > /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4
> > /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2
> > /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0
> > /usr/lib/perl5/site_perl
> > /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi
> > /usr/lib64/perl5/vendor_perl/5.8.4/x86_64-linux-thread-multi
> > /usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi
> > /usr/lib64/perl5/vendor_perl/5.8.2/x86_64-linux-thread-multi
> > /usr/lib64/perl5/vendor_perl/5.8.1/x86_64-linux-thread-multi
> > /usr/lib64/perl5/vendor_perl/5.8.0/x86_64-linux-thread-multi
> > /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4
> > /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2
> > /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0
> > /usr/lib/perl5/vendor_perl .) at
> > /export/share/iNquiry/www/cgi-bin/bipod/nisa/snpfinder.cgi line 14.
> > BEGIN failed--compilation aborted at
> > /export/share/iNquiry/www/cgi-bin/bipod/nisa/snpfinder.cgi line 14.
> >
> >
> >
> > Here is my cgi perl program
> >
> > #!/usr/bin/perl -w
> >
> > use strict;
> > use CGI qw(:standard);
> > use CGI::Carp qw/fatalsToBrowser/;
> > use Bio::SeqIO;
> > use Bio::Align::AlignI;
> > use Bio::AlignIO;
> > use Bio::AlignIO::msf;
> > use Bio::SimpleAlign;
> > use Bio::PrimarySeq;
> > use Bio::Tools::Run::Alignment::Clustalw;
> > use Bio::PrimarySeqI;
> > use Bio::Root::IO;
> > use Bio::Seq;
> > use Bio::TreeIO;
> > use Bio::Root::Root Bio::Tools::Run::WrapperBase;
> > use Bio::LocatableSeq;
> >
> >
> > BEGIN {
> > 	$ENV{CLUSTALDIR} = '/opt/Bio/bin/clustalw';
> > }
> > print"Content-type: text/html\n\n";
> >
> >
> > if (param()){ #condition if user supplied some data
> > 	my $new_seq=param("sequence"); #to store sequence from text box of form
> > 	my $selection=param("size");#to store drop down menu selection for
> > translation type
> > 	my $file1=param("uploadfile");#variable for name of the file
> > 	my $address=param("email");#variable to hold e.mail address
> >
> > 	if ($file1=~/.+/) {#test condition, if user supplied a file
> >
> > 		my $R_FH = upload("uploadfile");#get file handle
> >
> >
> >
> >
> > 		my  $in  = Bio::AlignIO->new(-file   => $file1 ,
> > 					-format => 'fasta');
> > 		my $out = Bio::AlignIO->new(-file   => ">out.aln.pfam" ,
> > 					-format => 'pfam');
> >
> > 		while ( my $aln1 = $in->next_aln() ) {
> > 			$out->write_aln($aln1);
> > 		}
> >
> > 		close $R_FH;
> > 		open FH, "out.aln.pfam" || die "Alignment file doesn't exist\n";
> > 		while(<FH>){
> >
> > 		print $_,"\n";
> > 		}
> > 		close FH;
> >
> > 		#To send results through e.mail
> > 			$report=~s/<br \/>/\n/g;#change new line character
> > 			$report=~s/(<.+?>)//g;#remove html tags
> > 			$report=~s/(&nbsp;)/ /g;#change space character
> > 			open(MAIL, "|/usr/sbin/sendmail -t") or die"can't compose an e.mail";
> > 			print MAIL "To:$address\n";
> > 			print MAIL "From: nisa\n";
> > 			print MAIL "Subject: results of $file1\n";
> > 			print MAIL  "\n$report\n";
> > 			close(MAIL);#close mail
> >
> >
> > 	}else{#error message if no file name is entered
> > 		print "<html><head><h3>Error: </h3></head><body>You did not enter a file
> > name,please upload a file<br /></body></html>";
> >
> > 	}
> >
> > }
> >
> > Please let me know what should I do, because clustalw is there and my other
> > programs (non web-based) are working.
> >
> > Thanks
> > Nisa
> >
>
>
> --
> Thomas Sharpton
> PhD Candidate - UC Berkeley
> Search smarter: www.siphs.com
>
>





More information about the Bioperl-l mailing list