Exemple #1
0
def get_codu_per_group(groups):
    """ Compute codon usage per group
    """
    group_codu = {}
    dnana = DNAAnalyzer(strict=False)

    for label, genes in groups.items():
        group_codu[label] = dnana.get_avg_codon_usage(genes)

    return group_codu
def generate_codon_usage_summary(groups, out_fname):
    """ Save codon usage tables per group
    """
    dnana = DNAAnalyzer(strict=False)
    with open(out_fname, 'w') as fd:
        for label, genes in groups.items():
            codu = dnana.get_avg_codon_usage(genes)

            fd.write(label + '\n')
            pprint.pprint(codu, fd)
            fd.write('\n')
Exemple #3
0
def main():
    """ Generate overview
    """
    farser = FastaParser(sys.argv[1])
    genes = farser.parse()

    dnana = DNAAnalyzer(strict=False)
    codu = dnana.get_avg_codon_usage(genes)

    with open('results/plain_codon_usage_table.txt', 'w') as fd:
        output_data(codu, fd)
Exemple #4
0
def get_codu(genes, group):
    """ Compute codon usage for all genes or only for certain expression group if file is given
    """
    exprs = extract_expression_levels(sys.argv[2]) if len(
        sys.argv) == 3 else None
    groups = {
        'all': genes
    } if exprs is None else group_expression_levels(genes, exprs)
    select = 'all' if exprs is None else group

    dnana = DNAAnalyzer(strict=False)
    codu = dnana.get_avg_codon_usage(groups[select])

    return codu, select
Exemple #5
0
class TestCodonUsage(TestCase):
    def setUp(self):
        self.dnana = DNAAnalyzer()
        self.seq = 'AAAAAGAAA'
        self.genes = [
            SeqRecord(Seq('AAAAAAAAG')),
            SeqRecord(Seq('AAAAAGAAA')),
            SeqRecord(Seq('TTTTTCTTT')),
            SeqRecord(Seq('TTCTTTTTC'))
        ]

    def test_codon_counter(self):
        count = self.dnana._count_codons(self.seq)

        self.assertEqual(count['AAA'], 2)
        self.assertEqual(count['AAG'], 1)
        self.assertEqual(count['AAT'], 0)
        self.assertEqual(count['AAC'], 0)

    def test_codon_usage(self):
        codu = self.dnana.get_codon_usage(self.seq)

        self.assertEqual(round(codu['AAA'], 3), round(0.6666, 3))
        self.assertEqual(round(codu['AAG'], 3), round(0.3333, 3))
        self.assertEqual(codu['AAT'], None)
        self.assertEqual(codu['AAC'], None)

    def test_average_codon_usage(self):
        avg_codu = self.dnana.get_avg_codon_usage(self.genes)

        self.assertEqual(round(avg_codu['AAA'], 3), round(0.6666, 3))
        self.assertEqual(round(avg_codu['AAG'], 3), round(0.3333, 3))
        self.assertEqual(avg_codu['AAT'], None)
        self.assertEqual(avg_codu['AAC'], None)
        self.assertEqual(round(avg_codu['TTT'], 3), round(0.5, 3))
        self.assertEqual(round(avg_codu['TTC'], 3), round(0.5, 3))

    def test_codon_frequencies(self):
        avg_cod_freqs = self.dnana.get_codon_freqs(self.genes)

        self.assertEqual(round(avg_cod_freqs['AAA'], 3), 0.333)
        self.assertEqual(round(avg_cod_freqs['AAG'], 3), 0.167)
        self.assertEqual(round(avg_cod_freqs['TTT'], 3), 0.25)
        self.assertEqual(round(avg_cod_freqs['TTC'], 3), 0.25)