21 May 23:49
Re: I can't access clustalw from my cgi perl program...
From: Chris Fields <cjfields <at> uiuc.edu>
Subject: Re: I can't access clustalw from my cgi perl program...
Newsgroups: gmane.comp.lang.perl.bio.general
Date: 2008-05-21 21:49:15 GMT
Subject: Re: I can't access clustalw from my cgi perl program...
Newsgroups: gmane.comp.lang.perl.bio.general
Date: 2008-05-21 21:49:15 GMT
Bio::Tools::Run::Align::ClustalW is not in bioperl-live, it is in bioperl-run (separate distribution). You'll need to install that as well (after bioperl-live is installed). Use 'perldoc -l' to find the location for the module/script it finds in @INC (which is the one used by the system most of the time): cjfields$ perldoc -l Bio::Root::Root /Users/cjfields/bioperl/bioperl-live/Bio/Root/Root.pm Don't think this will help for CGI, though, if you have PERL5LIB set up for your local env (as Mauricio indicates). You'll need to 'use lib'. -chris On May 21, 2008, at 3:34 PM, vdar <at> yorku.ca wrote: > How can I find where bioperl is installed? > > > > Quoting Mauricio Herrera Cuadra <arareko <at> campus.iztacala.unam.mx>: > >> Hi Nisa, >> >> CGI scripts are generally run by a different user than you, and which >> user (e.g. apache, nobody) will depend on the platform you're running >> the script on, thus the environment variables you currently have for >> your login shell are not being inherited to the web interface. The >> best >> workaround for this is to add a 'use lib' pragma at the top of your >> CGI >> script: >> >> use lib '/path/to/your/bioperl/installation/'; >> >> Also, it's a good practice to use taint mode for CGI scripts: >> >> #!/usr/bin/perl -wT >> >> Hope this helps. >> >> Regards, >> Mauricio. >> >> vdar <at> yorku.ca wrote: >>> 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/( )/ /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 >>>> >>>> >>> >>> >>> _______________________________________________ >>> Bioperl-l mailing list >>> Bioperl-l <at> lists.open-bio.org >>> http://lists.open-bio.org/mailman/listinfo/bioperl-l >>> >> >> -- >> MAURICIO HERRERA CUADRA >> arareko <at> campus.iztacala.unam.mx >> Laboratorio de Genética >> Unidad de Morfofisiologà a y Función >> Facultad de Estudios Superiores Iztacala, UNAM >> > > > _______________________________________________ > Bioperl-l mailing list > Bioperl-l <at> lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/bioperl-l Christopher Fields Postdoctoral Researcher Lab of Dr. Marie-Claude Hofmann College of Veterinary Medicine University of Illinois Urbana-Champaign
RSS Feed