Author image Zhenguo Zhang
and 1 contributors


Bio::CUA - Codon Usage Analyzer.


Version 1.04


This is the root class for the whole distribution of, providing some routine methods used by all classs in the distribution Users should not use this class directly. Please start with its child classes such as Bio::CUA::Summarizer, Bio::CUA::CUB::Builder.


The aim of this distribution is to provide comprehensive and flexible tools to analyze codon usage bias (CUB) and relevant problems, so that users can speed up the genetic research by taking advantage of this convenience.

One amino acid can be encoded by more than one synonymous codon, and synonymous codons are unevenly used. For example, some codons are used more often than other synonymous ones in highly expressed genes (Sharp and Li 1987). To measure the unevenness of codon usage, multiple metrics of codon usage bias have been developed, such as Fop (Frequency of optimal codons), CAI (Codon Adaptation Index), tAI (tRNA Adaptation Index), and ENC (Effective Number of Codons). The causes of CUB phenomena are complicated, including, mutational bias, selection on translational efficiency or accurancy. CUB is one fundamental concept in genetics.

So far, no software exists to compute all the above CUB metrics, and more importantly parameters of CUB calculations are often fixed in software, so one can only analyze genes in a limited list of species and one can not incorporate its own parameters such as sequences of highly expressed genes in a tissue.

This package mainly solves these two problems. We also extend some methods, such as GC-content corrected ENC, background-data normalized CAI, etc. See the relevant methods in CUB classes for more details.



 Title   : debug
 Usage   : $true_of_false=$self->debug([$bool]);
 Function: get/set the boolean value.
 Returns : 0 as false, 1 as true
 Args    : optional. 0 or 1 for false and true, respectively.


 Title   : throw
 Usage   : $self->throw("Some fatal errors");
 Function: stop and report when fatal errors in formatted message
 Returns : None
 Args    : error message


 Title   : warn
 Usage   : $self->warn("Please pay attention here")
 Function: report warning message when something looks not good
 Returns : None
 Args    : warning messages.


Zhenguo Zhang, <zhangz.sci at>


Please report any bugs or feature requests to bug-bio-cua at or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this class with the perldoc command.

        perldoc Bio::CUA

You can also look for information at:



Copyright 2015 Zhenguo Zhang.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see