#1 #!/usr/bin/perl $ENV{CLUSTALDIR} = 'C:\\\\\\\\\\\\\\\\\\\\\; use Bio::Tools::Run::Alignment::Clustalw; my $file = <>; # Get file name (fasta file) from command prompt. # Build a clustalw alignment factory my $factory = Bio::Tools::Run::Alignment::Clustalw->new(-matrix => 'BLOSUM'); my $ktuple = 2; $factory->ktuple($ktuple); my $inseq = Bio::SeqIO->new( '-file' => "<$file", '-format' => 'fasta' ); my $seq; my @seq_array; while ($seq = $inseq->next_seq) { push(@seq_array, $seq); } # Now we do the actual alignment. my $seq_array_ref = \@seq_array; my $aln = $factory->align($seq_array_ref); #### #2 my $alnio = Bio::AlignIO->new('-file'=> 'out_file','-format' => 'clustalw'); my $dfactory = Bio::Tree::DistanceFactory->new('-method' => 'NJ'); my $stats = Bio::Align::ProteinStatistics->new; my $treeout = Bio::TreeIO->new('-format' => 'newick'); while( my $aln = $alnio->next_aln ) { my $mat = $stats->distance('-method' => 'Kimura', '-align' => $aln); my $tree = $dfactory->make_tree($mat); $treeout->write_tree($tree); }