Beispiel #1
0
 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)
Beispiel #2
0
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)