[Bioperl-l] Clustalw problems!!!
duxroq
duxroq at hotmail.com
Sun May 1 22:26:02 UTC 2011
Thank you so much for your help, it now runs perfectly :-) I guess
misunderstood how CLUSTALWDIR works.
Chris Fields-5 wrote:
>
> I don't have access to a Windows machine to test this, unfortunately. I
> did notice you set CLUSTALWDIR to the actual executable, NOT the directory
> it is in. Also, the executable name is 'clustalw.exe', not 'clustalw', so
> possibly change that prior to instantiation:
>
> $Bio::Tools::Run::Alignment::ClustalW::PROGRAM_NAME = 'clustalw.exe';
>
> Maybe that's a start?
>
> chris
>
> On Apr 29, 2011, at 5:45 PM, duxroq wrote:
>
>>
>> Hi, I'm not sure whether my program is not finding the clustal w
>> exceutable
>> or if it is having trouble with the module itself. Here is my error, in
>> the
>> image below:
>>
>> http://old.nabble.com/file/p31509401/Untitled.png Untitled.png
>>
>> here is my code:
>>
>>
>> #!/usr/bin/local/perl -w
>>
>> use Bio::Perl;
>> use Bio::AlignIO;
>> use Bio::Root::IO;
>> use Bio::Seq;
>> use Bio::SeqIO;
>> use Bio::SimpleAlign;
>> use Bio::TreeIO;
>>
>> #--------------------------------------------------------------------------------#
>>
>> # Main
>>
>> unless(($#ARGV + 1) > 1) {
>> print_start_message();
>> exit;
>> }
>>
>> BEGIN { $ENV{CLUSTALDIR} = 'C:\Program Files\clustalw.exe'} #-Set
>> CLUSTALDIR to correct directory
>> use Bio::Tools::Run::Alignment::Clustalw;
>>
>> my $file_name1 = $ARGV[0]; #-name of file containing all sequences
>> my @sequences = read_all_sequences($file_name1,'fasta');
>>
>> # alt_revcom(\@sequences); #-reverse complement of every other seq
>> # print_sequences(@sequences);
>>
>> my @params = ('outfile' => 'mult_aln.aln'); #-sets parameters for
>> alignment factory
>> ###################################################
>> #
>> #
>> #
>> #The error is probably in the next few lines! agh!#
>> #
>> #
>> #
>> ###################################################
>> my $factory = Bio::Tools::Run::Alignment::Clustalw->new(@params);
>> $clustalfound = Bio::Tools::Run::Alignment::Clustalw->exists_clustal();
>> if ($clustalfound) {
>> print "\n we found it!!!\n" }
>> my $aln = $factory->align(\@sequences);
>> print "\nDevins name is bob. \n";
>> #-creates alignment
>> print "\nPercentage Identity:\n",$aln->percentage_identity,"\n\n";
>>
>> my $cons_str = $aln->consensus_iupac(); #-configures consensus using
>> IUPAC codes
>> my $cons_name = "Consensus_".save_id(@sequences);
>> my $cons_seq = new_sequence($cons_str, $cons_name);
>>
>> write_seq_to_file(">cons.fa",$cons_seq); #-writes consensus to file
>>
>> my $file_name2 = $ARGV[1];
>> my $lead_seq = read_sequence($file_name2,'fasta'); #-compare consensus
>> sequence to leader
>>
>> # print_sequences($lead_seq);
>> # print_sequences($cons_seq);
>>
>> my @lead_cons_seqs = ($lead_seq, $cons_seq); #-forms array for
>> alignment
>> of leader and consensus
>> @params = ('pairgap' => 50);
>>
>> print "\n bobisnotmyname\n";
>>
>> $factory = Bio::Tools::Run::Alignment::Clustalw->new(@params);
>> my $aln_lead_cons = $factory->align(\@lead_cons_seqs);
>> print "\nPercentage
>> Identity:\n",$aln_lead_cons->percentage_identity,"\n\n";
>>
>> my $seq_len = $aln_lead_cons->length();
>>
>> my @aln_seqs = (); #-array of aligned sequences, including gaps
>> my $i = 0;
>> foreach $seq ($aln_lead_cons->each_seq() ) {
>> $aln_seqs[$i] = $seq;
>> $i++;
>> }
>> # print_sequences(@aln_seqs);
>>
>> my $l_aln_str = ''; #-str of leader sequence from alignment
>> my $c_aln_str = ''; #-str of consensus sequence from alignment
>> $found = 0;
>> $i = 1;
>> while ($found == 0 && $i < $seq_len) {
>>
>> $l_aln_str = substr($aln_seqs[0]->seq(),$i,1); #-gets a substring from
>> l_aln_str
>> if ($l_aln_str !~ m/\./i) {
>> #-checks if substring has gap characters
>> $cons_slice_str = substr($aln_seqs[1]->seq(),$i,490);
>> $found = 1; #-retrieves 490 characters of consensus where
>> }
>> $i++; #-leader begins in alignment
>> }
>>
>> $cons_slice_seq = new_sequence($cons_slice_str,"Sliced_".$cons_name);
>> # print_sequences($cons_slice_seq);
>> write_seq_to_file(">cons_slice.fa",$cons_slice_seq);
>>
>>
>> # End Main
>>
>> #--------------------------------------------------------------------------------#
>>
>> # Subroutines
>>
>> sub alt_revcom {
>> my @sequences = @_;
>> for ( $i=0; $i <= $#sequences; $i++) {
>> if ($i%2==1) {
>> $sequences[$i] = reverse_complement($sequences[$i]);
>> }
>> }
>> }
>>
>> sub save_id {
>> my @sequences = @_;
>> $id = $sequences[0]->display_id;
>> return $id;
>> }
>>
>> sub print_sequences {
>> my @sequences = @_;
>> for ($i = 0; $i <= $#sequences; $i++) {
>> print "Sequence name:",$sequences[$i]->display_id,"\n";
>> print "Sequence acc:",$sequences[$i]->accession_number,"\n";
>> print $sequences[$i]->seq(),"\n";
>> }
>> }
>>
>> sub write_seq_to_file {
>> my ($file_name,$seq) = @_;
>> write_sequence($file_name,'fasta',$seq);
>> print "\n",$seq->display_id," written to file.\n\n";
>> }
>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Clustalw-problems%21%21%21-tp31509401p31509401.html
>> Sent from the Perl - Bioperl-L mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>
>
--
View this message in context: http://old.nabble.com/Clustalw-problems%21%21%21-tp31509401p31519669.html
Sent from the Perl - Bioperl-L mailing list archive at Nabble.com.
More information about the Bioperl-l
mailing list