Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# check if there is sufficient bases to calculate prodigal parameters
if total_bases < 100000:
proc_str = 'meta' # use best precalculated parameters
else:
proc_str = 'single' # estimate parameters from data
cmd = 'prodigal -p %s -q -f gff -g %d -a %s -d %s -i %s > %s 2> /dev/null' % (proc_str,
translation_table,
aa_gene_file_tmp,
nt_gene_file_tmp,
genome_file,
gff_file_tmp)
os.system(cmd)
# determine coding density
prodigalParser = ProdigalGeneFeatureParser(gff_file_tmp)
codingBases = 0
for seq_id, seq in seqs.iteritems():
codingBases += prodigalParser.coding_bases(seq_id)
codingDensity = float(codingBases) / total_bases
table_coding_density[translation_table] = codingDensity
# determine best translation table
best_translation_table = 11
if (table_coding_density[4] - table_coding_density[11] > 0.05) and table_coding_density[4] > 0.7:
best_translation_table = 4
shutil.copyfile(os.path.join(tmp_dir, str(best_translation_table), genome_id + '.genes.faa'), aa_gene_file)
shutil.copyfile(os.path.join(tmp_dir, str(best_translation_table), genome_id + '.genes.fna'), nt_gene_file)
shutil.copyfile(os.path.join(tmp_dir, str(best_translation_table), genome_id + '.gff'), gff_file)