Changeset 427:94c15e067485 in orange-bioinformatics


Ignore:
Timestamp:
07/21/08 08:25:05 (6 years ago)
Author:
markotoplak
Branch:
default
Convert:
ede317bd81f6633cd1f8c3242ea4b7e97fd8f4f8
Message:

Moved two funtions out of the class.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • widgets/OWGsea.py

    r406 r427  
    4040def getClasses(data): 
    4141    return [ a.value for a in data.domain.classVar ] 
     42 
     43def exportDistanceMatrix(resl): 
     44    """ 
     45    Input: results as a list of tuples 
     46    """ 
     47 
     48    dm = orange.SymMatrix(len(resl)) 
     49 
     50    for i in range(len(resl)-1): 
     51        for j in range(i+1, len(resl)): 
     52            gen1 = set(resl[i][1][6]) 
     53            gen2 = set(resl[j][1][6]) 
     54            dm[i,j] = float(len(gen1 & gen2)) / len(gen1 | gen2) 
     55 
     56    return dm 
     57 
     58def exportET(resl): 
     59    #do not sort them inside 
     60     
     61    if len(resl) <= 0: 
     62        return None 
     63 
     64    def splitn(name): 
     65        splitndx = name.find("]") 
     66        collection = name[1:splitndx] 
     67        name = name[splitndx + 1:] 
     68        return collection,name 
     69 
     70    allCollections = sorted(set([splitn(name)[0] for name,_ in resl])) 
     71 
     72    vars = [] 
     73    vars.append(orange.StringVariable("Name")) 
     74    vars.append(orange.EnumVariable("Collection", values=allCollections )) 
     75    vars.append(orange.FloatVariable("NES")) 
     76    vars.append(orange.FloatVariable("ES")) 
     77    vars.append(orange.FloatVariable("P-value")) 
     78    vars.append(orange.FloatVariable("FDR")) 
     79    vars.append(orange.StringVariable("Geneset size")) 
     80    vars.append(orange.StringVariable("Matched size")) 
     81    vars.append(orange.StringVariable("Genes")) 
     82 
     83    domain = orange.Domain(vars, False) 
     84 
     85    examples = [] 
     86    for name, (es, nes, pval, fdr, os, ts, genes) in resl: 
     87        collection, name = splitn(name) 
     88        examples.append([name, collection, nes, es, pval, min(fdr,1.0), str(os), str(ts),  ", ".join(genes)]) 
     89 
     90    return orange.ExampleTable(domain, examples) 
     91 
     92 
     93 
    4294 
    4395class PhenotypesSelection(QGroupBox): 
     
    386438        self.send("Distance Matrix", dm) 
    387439 
    388     def exportET(self, resl): 
    389         #do not sort them inside 
    390          
    391         if len(resl) <= 0: 
    392             return None 
    393   
    394         def splitn(name): 
    395             splitndx = name.find("]") 
    396             collection = name[1:splitndx] 
    397             name = name[splitndx + 1:] 
    398             return collection,name 
    399  
    400         allCollections = sorted(set([splitn(name)[0] for name,_ in resl])) 
    401  
    402         vars = [] 
    403         vars.append(orange.StringVariable("Name")) 
    404         vars.append(orange.EnumVariable("Collection", values=allCollections )) 
    405         vars.append(orange.FloatVariable("NES")) 
    406         vars.append(orange.FloatVariable("ES")) 
    407         vars.append(orange.FloatVariable("P-value")) 
    408         vars.append(orange.FloatVariable("FDR")) 
    409         vars.append(orange.StringVariable("Geneset size")) 
    410         vars.append(orange.StringVariable("Matched size")) 
    411         vars.append(orange.StringVariable("Genes")) 
    412      
    413         domain = orange.Domain(vars, False) 
    414  
    415         examples = [] 
    416         for name, (es, nes, pval, fdr, os, ts, genes) in resl: 
    417             collection, name = splitn(name) 
    418             examples.append([name, collection, nes, es, pval, min(fdr,1.0), str(os), str(ts),  ", ".join(genes)]) 
    419  
    420         return orange.ExampleTable(domain, examples) 
    421  
    422  
    423     def exportDistanceMatrix(self, resl): 
    424         """ 
    425         Input: results as a list of tuples 
    426         """ 
    427  
    428         dm = orange.SymMatrix(len(resl)) 
    429      
    430         for i in range(len(resl)-1): 
    431             for j in range(i+1, len(resl)): 
    432                 gen1 = set(resl[i][1][6]) 
    433                 gen2 = set(resl[j][1][6]) 
    434                 dm[i,j] = float(len(gen1 & gen2)) / len(gen1 | gen2) 
    435  
    436         return dm 
    437  
    438440 
    439441    def fillResults(self, res): 
     
    547549                resl = self.res.items() 
    548550 
    549                 etres = self.exportET(resl) 
     551                etres = exportET(resl) 
    550552 
    551553                self.resultsOut(etres) 
    552554                if self.dm == None: 
    553                     self.dm = self.exportDistanceMatrix(resl) 
     555                    self.dm = exportDistanceMatrix(resl) 
    554556                     
    555557                    for ex in etres: 
Note: See TracChangeset for help on using the changeset viewer.