Bio-Tools-CodonOptTable

 view release on metacpan or  search on metacpan

lib/Bio/Tools/CodonOptTable.pm  view on Meta::CPAN

    open( GPH, ">$line_file" )
      || die("\nFailed to save graph to file: $line_file. $!");
    binmode(GPH);
    print GPH $plot->gif();
    close(GPH);
}

sub generate_report {
    my ( $self, $out_file ) = @_;

    my $myCodons     = $self->rscu_rac_table();
    my $sequence_id  = $self->id;
    my $genetic_code = $self->{genetic_code};
    my $monomers     = $self->{monomers_count};
    my $cai          = $self->calculate_cai($myCodons);

    my %colors = (
        'Ala'  => '#f4f4f4', 'Arg'  => '#FF99FF', 'Asn'  => '#CC99CC',
        'Asp'  => '#99FFCC', 'Cys'  => '#99CC99', 'Gln'  => '#CCFF00',
        'Glu'  => '#FF00CC', 'Gly'  => '#33FFCC', 'His'  => '#66CCFF',
        'Ile'  => '#c9c9c9', 'Leu'  => '#CCFFFF', 'Lys'  => '#FFFFCC',
        'Met'  => '#FFFF66', 'Phe'  => '#FFCC00', 'Pro'  => '#F4F4F4',
        'Ser'  => '#FF99FF', 'Thr'  => '#CC99CC', 'Trp'  => '#99FFCC',
        'Tyr'  => '#CCFF00', 'Val'  => '#33FFCC', 'Asx'  => '#6666CC',
        'glx'  => '#FF00CC', 'Xaa'  => '#cccccc', 'Stop' => '#f8f8f8'
    );

    my $codons  = "|%{color:red}CODON%|";
    my $aa_name = "|%{color:red}AMINOACID%|";
    my $counts  = "|%{color:red}COUNT%|";
    my $rscu    = "|%{color:red}RSCU%|";
    my $rac     = "|%{color:red}RAC%|";

    foreach my $each_codon (@$myCodons) {
        my $frequency  = $each_codon->{frequency} || 'O';
        my $amino_acid = $each_codon->{aa_name};
        my $codon      = $each_codon->{codon};
        my $rscu_value = $each_codon->{rscu};
        my $rac_value  = $each_codon->{rac};
        my $aa_color   = $colors{$amino_acid};

        $codons  .= "%{background:$aa_color}$codon%|";
        $aa_name .= "%{background:$aa_color}$amino_acid%|";
        $counts  .= "%{background:$aa_color}$frequency%|";
        $rscu    .= "%{background:$aa_color}$rscu_value%|";
        $rac     .= "%{background:$aa_color}$rac_value%|";
    }
    my $codon_uses = "$codons\n$aa_name\n$counts\n";
    my $rscu_uses  = "$codons\n$aa_name\n$rscu\n";
    my $rac_uses   = "$codons\n$aa_name\n$rac\n";
    my $mono_mers =
        "|%{color:red}A%|"
      . $monomers->{A} . "|\n"
      . "|%{color:red}T%|"
      . $monomers->{T} . "|\n"
      . "|%{color:red}G%|"
      . $monomers->{G} . "|\n"
      . "|%{color:red}C%|"
      . $monomers->{C} . "|\n";

    my $gc_percentage =
      ( ( $monomers->{G} + $monomers->{C} ) /
          ( $monomers->{A} + $monomers->{T} + $monomers->{G} + $monomers->{C} )
      ) * 100;
    $gc_percentage = sprintf( "%.2f", $gc_percentage );

    my $REPORT = <<EOT;
h1. Bio::Tools::CodonOptTable

%{color:green}Report for $sequence_id%

%{color:red}Codon Adaptation Index (CAI) for sequence% : $cai

%{color:red}GC percentage for sequence% : $gc_percentage%

%{color:red}GENETIC CODE USED% : $genetic_code "--more about genetic code--":http://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi

%{background:#336699;color:white;padding:5px}++**CODON USAGE**++%

$codon_uses

%{background:#336699;color:white;padding:5px}++**Relative Synonimous Codon Usage (RSCU)**++%

$rscu_uses

%{background:#336699;color:white;padding:5px}++**Relative Adaptiveness of Codon**++%

$rac_uses

%{background:#336699;color:white;padding:5px}++**Monomers**++%

$mono_mers

"Source code":http://search.cpan.org/~shardiwal/Bio-Tools-CodonOptTable-$VERSION/lib/Bio/Tools/CodonOptTable.pm is available.

EOT

    my $html = textile($REPORT);
    write_file( $out_file, $html );
}

1;    # End of Bio::Tools::CodonOptTable

__END__

=head1 NAME

Bio::Tools::CodonOptTable - A more elaborative way to check the codons usage!

=head1 VERSION

Version 1.05

=head1 SYNOPSIS

    use Bio::Tools::CodonOptTable;

    my $seqobj = Bio::Tools::CodonOptTable->new(
        -seq              => 'ATGGGGTGGGCACCATGCTGCTGTCGTGAATTTGGGCACGATGGTGTACGTGCTCGTAGCTAGGGTGGGTGGTTTG',
        -id               => 'GeneFragment-12',
        -accession_number => 'Myseq1',
        -alphabet         => 'dna',
        -is_circular      => 1,
        -genetic_code     => 1,
    );
    
    #If you wanna read from file
    my $seqobj = Bio::Tools::CodonOptTable->new(
        -file         => "contig.fasta",
        -format       => 'Fasta',
        -genetic_code => 1,
    );
    
    #If you have Accession number and want to get file from NCBI



( run in 0.528 second using v1.01-cache-2.11-cpan-39bf76dae61 )