def __init__(self, biodb_selector, lineage_types_file_path="" ): self.set_logger() handle= biodb_selector.getFeaturesByLevel(6, 100) i=0 for chunk in handle: for chain in chunk: for feature in chain: self.feature= feature self.lineage= Lineage(feature, biodb_selector) lin_type= self.lineage.lineage_type i+=1 if lin_type == 1: continue self.lineage_pruner= LineagePruner(self.lineage, lin_type) log= "lineage type: %s" %lin_type #self.logger.info(log) if lin_type == 2: ### prune unnecessary #print lin_type #if len(self.lineage.taxon_list) == 6 : # pdb.set_trace() #print len([t.level for t in self.lineage.taxon_list]) #pass self.lineage_pruner.prune_unnecessary() #self.logger.info([t.level for t in self.lineage.taxon_list]) elif lin_type == 3: ### update unnecessary and prune #pass self.lineage_pruner.use_unnecessary_and_prune() #pass #self.lineage_pruner.prune_unnecessary(use=True) elif lin_type == 4: ### TODO!: find a way to deal with! pass print i, self.feature.id, self.feature.name # print i if i % 10000 == 0: print "########## %d taxa processed ##########" %i
class Controller(object): def __init__(self, biodb_selector, lineage_types_file_path="" ): self.set_logger() handle= biodb_selector.getFeaturesByLevel(6, 100) i=0 for chunk in handle: for chain in chunk: for feature in chain: self.feature= feature self.lineage= Lineage(feature, biodb_selector) lin_type= self.lineage.lineage_type i+=1 if lin_type == 1: continue self.lineage_pruner= LineagePruner(self.lineage, lin_type) log= "lineage type: %s" %lin_type #self.logger.info(log) if lin_type == 2: ### prune unnecessary #print lin_type #if len(self.lineage.taxon_list) == 6 : # pdb.set_trace() #print len([t.level for t in self.lineage.taxon_list]) #pass self.lineage_pruner.prune_unnecessary() #self.logger.info([t.level for t in self.lineage.taxon_list]) elif lin_type == 3: ### update unnecessary and prune #pass self.lineage_pruner.use_unnecessary_and_prune() #pass #self.lineage_pruner.prune_unnecessary(use=True) elif lin_type == 4: ### TODO!: find a way to deal with! pass print i, self.feature.id, self.feature.name # print i if i % 10000 == 0: print "########## %d taxa processed ##########" %i def set_logger(self): # create logger with "spam application" self.logger= logging.getLogger("dev") self.logger.setLevel(logging.DEBUG) # create a file handler fh= logging.FileHandler("ncbi_taxonomy.log", mode= "w") fh.setLevel(logging.DEBUG) # create a console handler #ch= logging.StreamHandler() #ch.setLevel(logging.DEBUG) # set formatter #formatter = logging.Formatter("%(asctime)s - %(name)s- %(levelname)s - %(message)s", # datefmt='%m/%d/%Y %I:%M:%S %p') formatter = logging.Formatter("%(message)s") fh.setFormatter(formatter) #ch.setFormatter(formatter) # add handlers to the logger self.logger.addHandler(fh)