problems with clustalw

View: New views
8 Messages — Rating Filter:   Alert me  

problems with clustalw

by nisa_dar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I need to do multiple sequence alignments of DNA sequences by using Bioperl. I am using the following module
Bio::Tools::Run::Alignment::Clustalw;
and I am getting the following error message



Can't locate Bio/Tools/Run/Alignment/Clustalw.pm in @INC (@INC contains:
/share/iNquiry/perl/lib/5.8.5/x86_64-linux-thread-multi
/share/iNquiry/perl/lib/5.8.5 /share/iNquiry/perl/lib/x86_64-linux-thread-multi
/share/iNquiry/perl/lib/5.8.4 /share/iNquiry/perl/lib/5.8.3
/share/iNquiry/perl/lib/5.8.2 /share/iNquiry/perl/lib/5.8.1
/share/iNquiry/perl/lib/5.8.0 /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 mult_align.pl line 9.
BEGIN failed--compilation aborted at mult_align.pl line 9.




Here is the piece of code that gives this message

#!/usr/bin/perl -w

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::Root::IO;
use Bio::Seq;


my $query_string =
"tatgtggctggcgagacacgacacttcatatggttttacctctacgtttgagtaattaagtacaatgagctatcact";
my $hit_string =
"tatgtggctggcgagacacgacacttcatatggttttacctctacgtttgagtaattaagtacaatgagctatcact";
my $hit_string_two =
"tatgtggctggcgagacacgacacttcatatggttttacctctacgtttgagtaattaagtacaatgagctatcact";

my @params = ('ktuple' => 2, 'matrix' => 'BLOSUM');
my $factory = Bio::Tools::Run::Alignment::Clustalw->new(@params);

my $ktuple = 2;
$factory->ktuple($ktuple);

my $seq_obj_on = Bio::Seq->new(-id =>"thal", -seq =>"$query_string");
my $seq_obj_too = Bio::Seq->new(-id =>"lyrata", -seq =>"$hit_string");
my $seq_obj_thre = Bio::Seq->new(-id =>"boechera", -seq =>"$hit_string_two");

my @seq_array = qw/$seq_obj_on $seq_obj_too $seq_obj_thre/;
my $seq_array_ref = \@seq_array;
my $aln = $factory->align($seq_array_ref);


I would appreciate if anyone could help. I don't know how to supply the environment variables at unix so if this is the solution please explain how can I do that. Thanks!

Re: problems with clustalw

by Sendu Bala-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

nisa_dar wrote:
> I need to do multiple sequence alignments of DNA sequences by using Bioperl.
> I am using the following module
> Bio::Tools::Run::Alignment::Clustalw;
> and I am getting the following error message
>
> Can't locate Bio/Tools/Run/Alignment/Clustalw.pm in @INC

You need to install Bioperl-run, eg.
cpan
cpan>install S/SE/SENDU/bioperl-run-1.5.2_100.tar.gz
(if you have core 1.5.2)
_______________________________________________
Bioperl-l mailing list
Bioperl-l@...
http://lists.open-bio.org/mailman/listinfo/bioperl-l

Parent Message unknown Re: problems with clustalw

by Sendu Bala-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

vdar@... wrote:
> Hi,
>
> Yes, I have clustalw installed and following is the result o which command
>
> $ which clustalw
> /opt/Bio/bin/clustalw
>
> Please see aa.txt as output of perl -V and mult_align.pl is my script

I've CC'd back the bioperl mailing list so other people can learn.
Please keep it CC'd.

Your script has two main errors:

use Clustalw;
$ENV{CLUSTALDIR} =
'/opt/rocks/lib/perl5/site_perl/5.8.8/Bio/Tools/Run/Alignment/';

These should be:
use Bio::Tools::Run::Alignment::Clustalw;
$ENV{CLUSTALDIR} = '/opt/Bio/bin/clustalw';

There is also something very wrong with your installation, since you are
using perl 5.8.5 yet have bioperl-run installed into a directory for
5.8.8. This is why Bio::Tools::Run::Alignment::Clustalw wasn't being
found in the normal way; the 5.8.8 directory was never checked.

PERL5LIB="/opt/rocks/lib/perl5/site_perl/5.8.8" should let it be found.
If not, you might have to move the Bio folder from 5.8.8 to 5.8.5.
_______________________________________________
Bioperl-l mailing list
Bioperl-l@...
http://lists.open-bio.org/mailman/listinfo/bioperl-l

Re: problems with clustalw

by nisa_dar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Yes, seems like it worked, now I am having the following error message which is
not because of the errors in installation..right?

$ perl mult_align.pl
Can't call method "isa" without a package or object reference at
/opt/rocks/lib/perl5/site_perl/5.8.8//Bio/Tools/Run/Alignment/Clustalw.pm line
617.



Quoting Sendu Bala <bix@...>:

> vdar@... wrote:
> > Hi,
> >
> > Yes, I have clustalw installed and following is the result o which command
> >
> > $ which clustalw
> > /opt/Bio/bin/clustalw
> >
> > Please see aa.txt as output of perl -V and mult_align.pl is my script
>
> I've CC'd back the bioperl mailing list so other people can learn.
> Please keep it CC'd.
>
> Your script has two main errors:
>
> use Clustalw;
> $ENV{CLUSTALDIR} =
> '/opt/rocks/lib/perl5/site_perl/5.8.8/Bio/Tools/Run/Alignment/';
>
> These should be:
> use Bio::Tools::Run::Alignment::Clustalw;
> $ENV{CLUSTALDIR} = '/opt/Bio/bin/clustalw';
>
> There is also something very wrong with your installation, since you are
> using perl 5.8.5 yet have bioperl-run installed into a directory for
> 5.8.8. This is why Bio::Tools::Run::Alignment::Clustalw wasn't being
> found in the normal way; the 5.8.8 directory was never checked.
>
> PERL5LIB="/opt/rocks/lib/perl5/site_perl/5.8.8" should let it be found.
> If not, you might have to move the Bio folder from 5.8.8 to 5.8.5.
>


_______________________________________________
Bioperl-l mailing list
Bioperl-l@...
http://lists.open-bio.org/mailman/listinfo/bioperl-l

Re: problems with clustalw

by Sendu Bala-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

vdar@... wrote:
> Yes, seems like it worked, now I am having the following error message which is
> not because of the errors in installation..right?
>
> $ perl mult_align.pl
> Can't call method "isa" without a package or object reference at
> /opt/rocks/lib/perl5/site_perl/5.8.8//Bio/Tools/Run/Alignment/Clustalw.pm line
> 617.

You weren't passing sequence objects to align() due to another error in
your script:

Instead of:
my @seq_array = qw/$seq_obj_on $seq_obj_too $seq_obj_thre/;
my $seq_array_ref = \@seq_array;
my $aln = $factory->align($seq_array_ref);

You can have:
my @seq_array = ($seq_obj_on, $seq_obj_too, $seq_obj_thre);
my $seq_array_ref = \@seq_array;
my $aln = $factory->align($seq_array_ref);

Or just:
my $aln = $factory->align([$seq_obj_on, $seq_obj_too, $seq_obj_thre]);
_______________________________________________
Bioperl-l mailing list
Bioperl-l@...
http://lists.open-bio.org/mailman/listinfo/bioperl-l

Re: problems with clustalw

by nisa_dar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks a lot! You have solved the problem. I am getting the following output
now. Would it be possible for you to let me know how can I print the
alignments? I need the alignments as we get after running web-based clustalw or
multalin programs.



CLUSTAL W (1.83) Multiple Sequence Alignments



Sequence format is Pearson
Sequence 1: thal             77 bp
Sequence 2: lyrata           77 bp
Sequence 3: boechera         77 bp
Start of Pairwise alignments
Aligning...
Sequences (1:2) Aligned. Score:  100
Sequences (1:3) Aligned. Score:  100
Sequences (2:3) Aligned. Score:  100
Guide tree        file created:   [/tmp/EIZp1pI1gi/jKZ8gRG2dY.dnd]
Start of Multiple Alignment
There are 2 groups
Aligning...
Group 1: Sequences:   2      Score:1463
Group 2: Sequences:   3      Score:1463
Alignment Score 1551
GCG-Alignment file created      [/tmp/EIZp1pI1gi/Wa9Du2UIum]

Nisa



Quoting Sendu Bala <bix@...>:

> vdar@... wrote:
> > Yes, seems like it worked, now I am having the following error message
> which is
> > not because of the errors in installation..right?
> >
> > $ perl mult_align.pl
> > Can't call method "isa" without a package or object reference at
> > /opt/rocks/lib/perl5/site_perl/5.8.8//Bio/Tools/Run/Alignment/Clustalw.pm
> line
> > 617.
>
> You weren't passing sequence objects to align() due to another error in
> your script:
>
> Instead of:
> my @seq_array = qw/$seq_obj_on $seq_obj_too $seq_obj_thre/;
> my $seq_array_ref = \@seq_array;
> my $aln = $factory->align($seq_array_ref);
>
> You can have:
> my @seq_array = ($seq_obj_on, $seq_obj_too, $seq_obj_thre);
> my $seq_array_ref = \@seq_array;
> my $aln = $factory->align($seq_array_ref);
>
> Or just:
> my $aln = $factory->align([$seq_obj_on, $seq_obj_too, $seq_obj_thre]);
>


_______________________________________________
Bioperl-l mailing list
Bioperl-l@...
http://lists.open-bio.org/mailman/listinfo/bioperl-l

Re: problems with clustalw

by Sendu Bala-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

vdar@... wrote:
> Thanks a lot! You have solved the problem. I am getting the following output
> now. Would it be possible for you to let me know how can I print the
> alignments? I need the alignments as we get after running web-based clustalw or
> multalin programs.
>[...]
>> Or just:
>> my $aln = $factory->align([$seq_obj_on, $seq_obj_too, $seq_obj_thre]);

$aln is a Bio::SimpleAlign object.
Check the docs for how to use it:
http://docs.bioperl.org/bioperl-live/Bio/SimpleAlign.html

For printing, you'll want to use AlignIO:
http://docs.bioperl.org/bioperl-live/Bio/AlignIO.html
For an example, see:
http://www.bioperl.org/wiki/HOWTO:SearchIO#Using_the_methods

_______________________________________________
Bioperl-l mailing list
Bioperl-l@...
http://lists.open-bio.org/mailman/listinfo/bioperl-l

Re: problems with clustalw

by nisa_dar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thank you so much!

Nisa

Quoting Sendu Bala <bix@...>:

> vdar@... wrote:
> > Thanks a lot! You have solved the problem. I am getting the following
> output
> > now. Would it be possible for you to let me know how can I print the
> > alignments? I need the alignments as we get after running web-based
> clustalw or
> > multalin programs.
> >[...]
> >> Or just:
> >> my $aln = $factory->align([$seq_obj_on, $seq_obj_too, $seq_obj_thre]);
>
> $aln is a Bio::SimpleAlign object.
> Check the docs for how to use it:
> http://docs.bioperl.org/bioperl-live/Bio/SimpleAlign.html
>
> For printing, you'll want to use AlignIO:
> http://docs.bioperl.org/bioperl-live/Bio/AlignIO.html
> For an example, see:
> http://www.bioperl.org/wiki/HOWTO:SearchIO#Using_the_methods
>
>


_______________________________________________
Bioperl-l mailing list
Bioperl-l@...
http://lists.open-bio.org/mailman/listinfo/bioperl-l