[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