#!/util/bin/perl -w use strict; use Getopt::Long; use Data::Dumper; my $suffix; my $outdir; my $indir; GetOptions("suffix=s"=>\$suffix, "outdir=s"=>\$outdir, "indir=s"=>\$indir ); opendir INDIR, $indir or die "Could not open directory\n"; my @paml_outs = grep /$suffix$/, readdir INDIR; closedir INDIR; #print Dumper(@paml_outs); foreach my $in (@paml_outs) { my $out = $in; #$out =~ s/$suffix//; $out = $outdir."/".$out.".mod"; open IN, $indir."/".$in or die "Can't open PAML output file $in\n"; open OUT, ">$out" or die "Can't open $out for output\n"; print OUT "#Model extracted from PAML outfile ${indir}/${in}\n"; print OUT "ALPHABET: T,C,A,G\n"; my $atMatrix = 0; my $matrixRow = 0; my $treeNum = 0; while() { chomp; if(/^Average/) { $_ =~ s/^Average\s*//; print OUT "BACKGROUND: $_\n"; }elsif( /^\(/) { if($treeNum == 3) { print OUT "TREE: $_\n"; } $treeNum++; }elsif (/^Rate matrix Q/) { $atMatrix = 1; print OUT "RATE_MAT:\n"; }elsif($atMatrix && $matrixRow < 4){ print OUT $_."\n"; ++$matrixRow; } } close OUT; close IN; }