Exemplo n.º 1
0
    def codon_usage(self, options):
        """Codon usage command"""
        self.logger.info('')
        self.logger.info('*******************************************************************************')
        self.logger.info(' [CompareM - codon_usage] Calculating codon usage within each genome.')
        self.logger.info('*******************************************************************************')
        self.logger.info('')

        check_dir_exists(options.gene_dir)

        # get list of files with called genes
        gene_files = []
        files = os.listdir(options.gene_dir)
        for f in files:
            if f.endswith(options.gene_ext):
                gene_files.append(os.path.join(options.gene_dir, f))

        # warn use if no files were found
        if len(gene_files) == 0:
            self.logger.warning('  [Warning] No gene files found. Check the --gene_ext flag used to identify gene files.')
            return

        # calculate amino acid usage
        codon_usage = CodonUsage(options.cpus, options.keep_ambiguous)
        genome_codon_usage, codon_set, _mean_length = codon_usage.run(gene_files)

        # write out results
        self._write_usage_profile(genome_codon_usage, codon_set, options.output_file)

        self.logger.info('')
        self.logger.info('  Codon usage written to: %s' % options.output_file)

        self.time_keeper.print_time_stamp()
Exemplo n.º 2
0
    def stop_usage(self, options):
        """Stop codon usage command"""

        gene_files = self._input_files(options.nucleotide_gene_files, options.file_ext)

        # calculate amino acid usage
        codon_usage = CodonUsage(options.cpus, keep_ambiguous=False, stop_codon_only=True)
        genome_codon_usage, codon_set, mean_gene_length = codon_usage.run(gene_files)

        # write out results
        if not options.mean_gene_length:
            self._write_usage_profile(genome_codon_usage, codon_set, options.counts, options.output_file)
        else:
            fout = open(options.output_file, 'w')
            for codon in codon_set:
                fout.write('\t' + codon)
                if mean_gene_length:
                    fout.write('\t' + codon + ': avg. seq. length')
            fout.write('\n')

            for genome_id, codons in genome_codon_usage.items():
                fout.write(genome_id)

                for codon in codon_set:
                    fout.write('\t%d' % codons.get(codon, 0))

                    if mean_gene_length:
                        mean_len = mean_gene_length[genome_id].get(codon, None)
                        if mean_len:
                            fout.write('\t%.1f' % mean_len)
                        else:
                            fout.write('\tna')
                fout.write('\n')

        self.logger.info('Stop codon usage written to: %s' % options.output_file)
Exemplo n.º 3
0
    def stop_usage(self, options):
        """Stop codon usage command"""
        self.logger.info('')
        self.logger.info('*******************************************************************************')
        self.logger.info(' [CompareM - stop_usage] Calculating stop codon usage within each genome.')
        self.logger.info('*******************************************************************************')
        self.logger.info('')

        check_dir_exists(options.gene_dir)

        # get list of files with called genes
        gene_files = []
        files = os.listdir(options.gene_dir)
        for f in files:
            if f.endswith(options.gene_ext):
                gene_files.append(os.path.join(options.gene_dir, f))

        # warn use if no files were found
        if len(gene_files) == 0:
            self.logger.warning('  [Warning] No gene files found. Check the --gene_ext flag used to identify gene files.')
            return

        # calculate amino acid usage
        codon_usage = CodonUsage(options.cpus, keep_ambiguous=False, stop_codon_only=True)
        genome_codon_usage, codon_set, mean_gene_length = codon_usage.run(gene_files)

        # write out results
        fout = open(options.output_file, 'w')
        for codon in codon_set:
            fout.write('\t' + codon)
            if mean_gene_length:
                fout.write('\t' + codon + ': avg. seq. length')
        fout.write('\n')

        for genome_id, codons in genome_codon_usage.iteritems():
            fout.write(genome_id)

            for codon in codon_set:
                fout.write('\t%d' % codons.get(codon, 0))

                if mean_gene_length:
                    mean_len = mean_gene_length[genome_id].get(codon, None)
                    if mean_len:
                        fout.write('\t%.1f' % mean_len)
                    else:
                        fout.write('\tna')
            fout.write('\n')

        self.logger.info('')
        self.logger.info('  Stop codon usage written to: %s' % options.output_file)

        self.time_keeper.print_time_stamp()
Exemplo n.º 4
0
    def codon_usage(self, options):
        """Codon usage command"""

        gene_files = self._input_files(options.nucleotide_gene_files, options.file_ext)

        # calculate amino acid usage
        codon_usage = CodonUsage(options.cpus, options.keep_ambiguous)
        genome_codon_usage, codon_set, _mean_length = codon_usage.run(gene_files)

        # write out results
        self._write_usage_profile(genome_codon_usage, codon_set, options.counts, options.output_file)

        self.logger.info('Codon usage written to: %s' % options.output_file)
Exemplo n.º 5
0
    def codon_usage(self, options):
        """Codon usage command"""

        gene_files = self._input_files(options.nucleotide_gene_files,
                                       options.file_ext)

        # calculate amino acid usage
        codon_usage = CodonUsage(options.cpus, options.keep_ambiguous)
        genome_codon_usage, codon_set, _mean_length = codon_usage.run(
            gene_files)

        # write out results
        self._write_usage_profile(genome_codon_usage, codon_set,
                                  options.counts, options.output_file)

        self.logger.info('Codon usage written to: %s' % options.output_file)
Exemplo n.º 6
0
    def stop_usage(self, options):
        """Stop codon usage command"""

        gene_files = self._input_files(options.nucleotide_gene_files,
                                       options.file_ext)

        # calculate amino acid usage
        codon_usage = CodonUsage(options.cpus,
                                 keep_ambiguous=False,
                                 stop_codon_only=True)
        genome_codon_usage, codon_set, mean_gene_length = codon_usage.run(
            gene_files)

        # write out results
        if not options.mean_gene_length:
            self._write_usage_profile(genome_codon_usage, codon_set,
                                      options.counts, options.output_file)
        else:
            fout = open(options.output_file, 'w')
            for codon in codon_set:
                fout.write('\t' + codon)
                if mean_gene_length:
                    fout.write('\t' + codon + ': avg. seq. length')
            fout.write('\n')

            for genome_id, codons in genome_codon_usage.items():
                fout.write(genome_id)

                for codon in codon_set:
                    fout.write('\t%d' % codons.get(codon, 0))

                    if mean_gene_length:
                        mean_len = mean_gene_length[genome_id].get(codon, None)
                        if mean_len:
                            fout.write('\t%.1f' % mean_len)
                        else:
                            fout.write('\tna')
                fout.write('\n')

        self.logger.info('Stop codon usage written to: %s' %
                         options.output_file)