Improving algorithms of gene prediction in prokaryotic genomes, metagenomes, and eukaryotic transcriptomes