def generate_referenced_species_database(protein_id, referenced_species): ''' Creates a database for a referenced species and protein, using formatdb @param protein_id @param referenced_species ''' logger = Logger.Instance() alignment_logger = logger.get_logger('alignment') command_generator = CommandGenerator() crawler = DirectoryCrawler() exon_container = ExonContainer.Instance() input_exons = exon_container.get((protein_id, referenced_species, "ensembl")) #source_exon_file = "{0}/{1}.fa".format(crawler.get_exon_ensembl_path(protein_id), referenced_species) input_db_file = "{0}/{1}.fa".format(crawler.get_database_path(protein_id), referenced_species) sequence_type = "Nucleotide" input_exons.export_coding_exons_to_fasta(input_db_file) command = command_generator.generate_formatdb_command(input_db_file, sequence_type) command_return = Popen(command, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True) output = command_return.stdout.read() if output != "": #LOGGING alignment_logger.warning("{0}, {1}, REF SPECIES DB, {2}".format(protein_id, referenced_species.strip(), output.strip())) return False return True