def test_filter_annotations_1(self): bacteriocins = [blast.XMLRecord(description="", expected_value=0.00001, score = 0, query_id = "bacteriocin1", query="ACGTACGTTT", query_start = 250, query_end = 260, sbjct_id = "gi|123|gb|NC_12345.1", sbjct="ACGTACGTTT", sbjct_start = 250, sbjct_end = 260, strand = "-"), blast.XMLRecord(description="", expected_value=0.00001, score = 0, query_id = "bacteriocin2", query="ACGTACGTTT", query_start = 450, query_end = 460, sbjct_id = "gi|123|gb|NC_12345.1", sbjct="ACGTACGTTT", sbjct_start = 450, sbjct_end = 460, strand = "-")] radius = 100 annots = [A for A in annotation.AnnotatedGenes(self.out_file)] filtered,hoods = interval_filter.annotatedGenes(annots,bacteriocins,radius) self.assertEquals(1,len(filtered)) self.assertEquals(1,len(hoods)) self.assertTrue(bacteriocins[0] in hoods)
def main(genome_files, bacteriocin_file, intergene_file, annotations_file, bacteriocinsOut, annotationsOut, intermediate, bac_evalue, num_threads, formatdb, bacteriocin_radius, verbose, keep_tmp): for gnome in genome_files: bacthr = BacteriocinHandler(gnome, intermediate, bac_evalue, num_threads, verbose, keep_tmp) bacteriocins = bacthr.getAlignedBacteriocins(bacteriocin_file, bac_evalue, num_threads, formatdb) if verbose and bacteriocins == None: print "No bacteriocins found" if bacteriocins == None: continue if verbose: print "Bacteriocins found\n","\n".join(map(str,bacteriocins)) if verbose: print "Number of original bacteriocins",len(bacteriocins) intergeneDict = identifyIntergenic(bacteriocins,intergene_file) writeBacteriocins(bacteriocins,intergeneDict,bacteriocinsOut) annots = [annot for annot in annotation.AnnotatedGenes(annotations_file)] annots,bacteriocinNeighborhoods = interval_filter.annotatedGenes(annots,bacteriocins,bacteriocin_radius) annot_bact_pairs = zip(annots,bacteriocinNeighborhoods) writeAnnotatedGenes(annot_bact_pairs, annotationsOut)