Changes in [1766:7508cfe5ad26:1764:04eaaffe6804] in orange-bioinformatics


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • _bioinformatics/obiDictyMutants.py

    r1765 r1763  
    77from Orange.orng import orngServerFiles 
    88 
    9 class DictyMutant(object): 
     9class dicty_mutant(object): 
    1010 
    1111    def __init__(self, mutant_line): 
     
    1717 
    1818 
    19 class DictyMutants(object): 
     19class dicty_mutants(object): 
    2020    VERSION=1 
    2121    DEFAULT_DATABASE_PATH = orngServerFiles.localpath("DictyMutants") #use a default folder for storing the genesets 
     
    2525 
    2626        if not os.path.exists(self.local_database_path): 
    27             self.download_from_dictybase(self.local_database_path) 
     27            download_from_dictybase(self, self.local_database_path) 
    2828 
    29         filename = os.path.join(self.local_database_path, "DictyMutants") 
     29        filename = os.path.join(cls.local_database_path, "DictyMutants") 
    3030        self.load(filename) 
    3131 
     
    4141        stream = urllib2.urlopen("http://dictybase.org/db/cgi-bin/dictyBase/download/download.pl?area=mutant_phenotypes&ID=all-mutants.txt") 
    4242 
    43         with open(temp_file, "wb") as file: 
    44             shutil.copyfileobj(stream, file) 
    45  
    46         if os.path.exists(filename): 
    47             current = open(filename, "rb").read() 
    48             temporary = open(temp_file, "rb").read() 
     43        if not os.path.exists(filename): 
     44            with open(filename, "wb") as file: 
     45                shutil.copyfileobj(stream, file) 
     46        else: 
     47            toremove = False 
     48            with open(temp_file, "wb") as file: 
     49                shutil.copyfileobj(stream, file) 
     50            current = open(filename, "rb") 
     51            temporary = open(temp_file, "rb") 
     52            if current.read() == temporary.read(): 
     53                toremove = True 
    4954            current.close() 
    5055            temporary.close() 
    51             if current == temporary: 
     56 
     57            if toremove: 
    5258                os.remove(temp_file) 
    53                 return False 
    54  
    55         os.rename(temp_file, filename) 
    56         return True 
    57  
    58     @classmethod 
    59     def get_instance(cls): 
    60         if not hasattr(cls, "_shared_dict"): 
    61             dicty = DictyMutants() 
    62             cls._shared_dict = dicty.__dict__ 
    63         instance = DictyMutants.__new__(DictyMutants) 
    64         instance.__dict__ = cls._shared_dict 
    65         return instance 
     59            else: 
     60                os.rename(temp_file, filename) 
    6661 
    6762    def load(self, filename): 
     
    6964        header = file.readline().rstrip() 
    7065        lines = file.read().splitlines() 
    71         self._dicty_mutants = dict([(DictyMutant(line).id, DictyMutant(line)) for line in lines if line]) 
     66        self._dicty_mutants = dict([(dicty_mutant(line), line) for line in lines if line]) 
    7267 
    7368    def mutants(self): 
    74         return self._dicty_mutants.values() 
     69        return self._dicty_mutants.keys() 
    7570 
    7671    def genes(self): 
    77         return sorted(set(reduce(list.__add__, [self.mutant_genes(mutant.id) for mutant.id in self.mutants()], []))) 
     72        return sorted(set(reduce(list.__add__, [self.mutant_genes(mutant) for mutant in self.mutants()], []))) 
    7873 
    7974    def mutant_genes(self, mutant): 
    80         return DictyMutant(self._dicty_mutants[mutant]).genes 
     75        return dicty_mutant(self._dicty_mutants[mutant]).genes 
    8176 
    8277    def gene_mutants(self): 
     
    9085    """ Return all mutant objects 
    9186    """ 
    92     return DictyMutants.get_instance().mutants() 
     87    return dicty_mutants.get_instance().mutants() 
    9388 
    9489def genes(): 
    9590    """ Return a set of all genes referenced in dictybase 
    9691    """ 
    97     return DictyMutants.get_instance().genes() 
     92    return dicty_mutants.get_instance().genes() 
    9893 
    9994def mutant_genes(mutant): 
    10095    """ Return a set of all genes referenced by a mutant in dictybase 
    10196    """ 
    102     return DictyMutants.get_instance().mutant_genes(mutant) 
     97    return dicty_mutants.get_instance().mutant_genes(mutant) 
    10398 
    10499def gene_mutants(): 
    105100    """ Return a dictionary {gene: set(mutant_objects for mutant), ...} 
    106101    """ 
    107     return DictyMutants.get_instance().gene_mutants() 
     102    return dicty_mutants.get_instance().gene_mutants() 
    108103 
    109 if  __name__  == "__main__": 
    110     """ 
    111     Test whether the file contains only unique entries 
    112     """ 
    113     entries = [ entry.id for entry in mutants() ] 
    114     print len(set(entries)), len(entries) 
    115     #print(mutants()) 
    116     #print(genes()) 
     104 
Note: See TracChangeset for help on using the changeset viewer.