Esempio n. 1
0
    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
Esempio n. 2
0
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)