[Bioperl-l] Help for using Clustalw.pm

Jason Stajich jason at cgt.duhs.duke.edu
Tue Jul 27 12:58:38 EDT 2004


depends on when you put that command in - you want to make sure it is
BEFORE you have as some variables are set at load time.
use Bio::Tools::Run::Alignment::Clustalw;

You can also just override the discovery and do
$factory->executable('/usr/local/bin/clustalw');


On Tue, 27 Jul 2004, James Wasmuth wrote:

>  I'm not sure whether $ENV{CLUSTALDIR} does not work because you're
> working in Windows.  Anyone have an idea?
>
> As for keeping the output, there's two ways:
>
> 1. in the params use the 'outfile' => something.aln
>
> I think its 'outfile'. You'll need to check with the clustalw
> documentaion as to the commandline option to specify the name of the
> outfile. Sorry I can't remember.
>
> or
>
> 2.
>
> $factory = Bio::Tools::Run::Alignment::Clustalw->new(@params);
> $aln = $factory->align($inputfilename);
>
> #$aln is a SimpleAlign object which you can write to file.
>
> $out = Bio::AlignIO->new(-file => ">outputfilename",
>                            -format => 'msf');
>
> while ( my $single = $aln->next_aln() ) { $out->write_aln($single); }
>
> I think this should work. Let me know if it doesn't. It's been a while
> since I've used these.
>
> -james
>
>
> >
> >
> >
> > Sun, Jian wrote:
> >
> >>Hi, James;
> >>  Thanks a lot. It seems that the below command line didn't modifed the CLUSTALDIR variable.
> >>$ENV{CLUSTALDIR} = 'C:/Program Files/Apache Group/Apache2/bin/';
> >>
> >>So I copied to Clustalw.exe to current file directory then the program works. And I get another question:
> >>How can I setup the directory to keep the result file? Where to set this?
> >>
> >>Thanks again and very appreciated
> >>Jane
> >>
> >>________________________________
> >>
> >>From: James Wasmuth [mailto:james.wasmuth at ed.ac.uk]
> >>Sent: Tue 7/27/2004 7:42 AM
> >>To: James Wasmuth
> >>Cc: Sun, Jian; bioperl-l at bioperl.org
> >>Subject: Re: [Bioperl-l] Help for using Clustalw.pm
> >>
> >>
> >>
> >>Ooops,
> >>
> >>I seem to have errant asterisks
> >>
> >>$clustalfound = Bio::Tools::Run::Alignment::Clustalw->exists_clustal()
> >>
> >>
> >>James Wasmuth wrote:
> >>
> >>
> >>
> >>>Jane,
> >>>
> >>>Try:
> >>>
> >>>$clustalfound = *Bio::Tools::Run::Alignment::Clustalw*->exists_clustal()
> >>>
> >>>print "$clustalfound";
> >>>
> >>>if '0' then it can't find an executable of clustalw. Does it work from
> >>>the commandline ?
> >>>
> >>>-james
> >>>
> >>>
> >>>Sun, Jian wrote:
> >>>
> >>>
> >>>
> >>>>Dear all:
> >>>>    I tried to align multiple sequence through Clustalw.pm, and I
> >>>>used the source code attached below:
> >>>>*****************************************************************************************************
> >>>>
> >>>>#!C:\Perl\bin\perl.exe
> >>>>use lib "C:\Perl\lib";
> >>>>
> >>>>use Bio::Perl;
> >>>>use Bio::Tools::Run::Alignment::Clustalw;
> >>>>use strict;
> >>>>use warnings;
> >>>>
> >>>>$ENV{CLUSTALDIR} = 'C:/Program Files/Apache Group/Apache2/bin/';
> >>>>my @params = ('ktuple' => 2, 'matrix' => 'BLOSUM');
> >>>> my $factory = Bio::Tools::Run::Alignment::Clustalw->new(@params);
> >>>> my $ktuple = 3;
> >>>> $factory->ktuple($ktuple);  # change the parameter before executing
> >>>> my $str = Bio::SeqIO->new(-file=> 'Clustseq.fa', '-format' => 'Fasta');
> >>>>my @seq_array =();
> >>>>while ( my $seq = $str->next_seq() ) {push (@seq_array, $seq) ;}
> >>>> my $seq_array_ref = \@seq_array;
> >>>>     # where @seq_array is an array of Bio::Seq objects
> >>>> my $aln = $factory->align($seq_array_ref);
> >>>>**************************************************************************
> >>>>
> >>>>
> >>>>and when I run the pl file, I get this error message:
> >>>>
> >>>>///////////////////////////////////////////////////////////////////////////////////////////
> >>>>
> >>>>Clustalw program not found as clustalw or not executable.
> >>>>......  'clustalw' is not recognized as an internal or external
> >>>>command, operable program or batch file.
> >>>>---------------------EXCEPTION-----------------------------------------
> >>>>MSG: Clustalw call <clustal align -infile=C:\...\> crashed:256
> >>>>
> >>>>STACK Bio::Tools::Run::Alignment::Clustalw::_run
> >>>>c:/Perl/Site/Lib/Bio/Toold/Run/Alignment/Clustalw.pm:581
> >>>>STACK Bio::Tools::Run::Alignment::Clustalw::_run
> >>>>c:/Perl/Site/Lib/Bio/Toold/Run/Alignment/Clustalw.pm:507
> >>>>STACK toplevel test726pl.pl:33
> >>>>-----------------------------------------------------------------------------------------
> >>>>
> >>>>///////////////////////////////////////////////////////////////////////////////////////
> >>>>
> >>>>
> >>>>Since I already set the CLUSTALDIR variable, I don't know why the
> >>>>Clustalw is still not execuatable. Did I did the right setting?  Does
> >>>>anyone have this kind of experience?
> >>>>Thanks in advance.
> >>>>Jane
> >>>>
> >>>>
> >>>>_______________________________________________
> >>>>Bioperl-l mailing list
> >>>>Bioperl-l at portal.open-bio.org
> >>>>http://portal.open-bio.org/mailman/listinfo/bioperl-l
> >>>>
> >>>>
> >>>>
> >>>>
> >>
> >>--
> >>I like nonsense, it wakes up the brain cells.
> >>                -- Dr. Seuss
> >>
> >>Blaxter Nematode Genomics Group  |
> >>School of Biological Sciences    |
> >>Ashworth Laboratories            | tel: +44 131 650 7403
> >>University of Edinburgh          | web: www.nematodes.org
> >>Edinburgh                        |
> >>EH9 3JT                          |
> >>UK                               |
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >--
> >I like nonsense, it wakes up the brain cells.
> >		-- Dr. Seuss
> >
> >Blaxter Nematode Genomics Group  |
> >School of Biological Sciences    |
> >Ashworth Laboratories            | tel: +44 131 650 7403
> >University of Edinburgh          | web: www.nematodes.org
> >Edinburgh                        |
> >EH9 3JT                          |
> >UK                               |
> >
> >
> >
>
>

--
Jason Stajich
Duke University
jason at cgt.mc.duke.edu


More information about the Bioperl-l mailing list