Changeset 1572:b36656308a2c in orange-bioinformatics


Ignore:
Timestamp:
02/18/12 10:07:36 (2 years ago)
Author:
markotoplak
Branch:
default
Message:

Started obiGeneSetSig (new interface for gene set signatures) with Minca's SetSig.

Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • obiAssess.py

    r1571 r1572  
    658658        return SetSig(learndata=data, genesets=gsetsnum) 
    659659 
    660 class SetSigLearner2(object): 
    661  
    662     def __call__(self, data, matcher, geneSets, minSize=3, maxSize=1000, minPart=0.1, classValues=None): 
    663         data, oknames, gsetsnum = selectGenesetsData(data, matcher, geneSets, \ 
    664             minSize=minSize, maxSize=maxSize, minPart=minPart, classValues=classValues) 
    665  
    666         def setSig_example_geneset(ex, data): 
    667             """ ex contains only selected genes """ 
    668  
    669             distances = [ [], [] ]     
    670  
    671             def pearsonr(v1, v2): 
    672                 try: 
    673                     return statc.pearsonr(v1, v2)[0] 
    674                 except: 
    675                     return numpy.corrcoef([v1, v2])[0,1] 
    676  
    677             def pearson(ex1, ex2): 
    678                 attrs = range(len(ex1.domain.attributes)) 
    679                 vals1 = [ ex1[i].value for i in attrs ] 
    680                 vals2 = [ ex2[i].value for i in attrs ] 
    681                 return pearsonr(vals1, vals2) 
    682  
    683             def ttest(ex1, ex2): 
    684                 try: 
    685                     return stats.lttest_ind(ex1, ex2)[0] 
    686                 except: 
    687                     return 0.0 
    688              
    689             #maps class value to its index 
    690             classValueMap = dict( [ (val,i) for i,val in enumerate(data.domain.classVar.values) ]) 
    691           
    692             #create distances to all learning data - save or other class 
    693             for c in data: 
    694                 distances[classValueMap[c[-1].value]].append(pearson(c, ex)) 
    695  
    696             return ttest(distances[0], distances[1]) 
    697  
    698         attributes = [] 
    699  
    700         for name, gs in gsetsnum.items(): #for each geneset 
    701             #for each gene set: take the attribute subset and work on the attribute subset only 
    702             #only select the subset of genes from the learning data 
    703             print name, gs 
    704             at = Orange.feature.Continuous(name=name.id) 
    705  
    706             def t(ex, w, gs=gs, ldata=data): 
    707                 domain = orange.Domain([ldata.domain.attributes[ai] for ai in gs], ldata.domain.classVar) 
    708                 datao = orange.ExampleTable(domain, ldata) 
    709                 example = orange.Example(domain, ex) #domains need to be the same 
    710                 return setSig_example_geneset(example, datao) 
    711           
    712             at.get_value_from = t 
    713             attributes.append(at) 
    714         
    715         newdomain = Orange.data.Domain(attributes, data.domain.class_var) 
    716  
    717         return newdomain 
    718  
    719660if __name__ == "__main__": 
    720661 
     
    740681    #ass = GSALearner()(ldata, matcher, gsets, classValues=choosen_cv, minPart=0.0) 
    741682 
    742     def to_old_dic(d, data): 
    743         ar = defaultdict(list) 
    744         for ex1 in data: 
    745             ex = d(ex1) 
    746             for a,x in zip(d.attributes, ex): 
    747                 ar[a.name].append(x.value) 
    748         return ar 
    749  
    750683    ar = defaultdict(list) 
    751684    for d in (list(ldata) + list(tdata))[:5]: 
     
    757690        print '\n'.join([ a.id + ": " +str(b) for a,b in ol]) 
    758691 
    759     def pp2(ar): 
    760         ol =  sorted(ar.items()) 
    761         print '\n'.join([ a + ": " +str(b) for a,b in ol]) 
    762  
    763692    pp1(ar) 
    764     ass = SetSigLearner2()(ldata, matcher, gsets, classValues=choosen_cv, minPart=0.0) 
    765     ar = to_old_dic(ass, data[:5]) 
    766     pp2(ar) 
     693 
Note: See TracChangeset for help on using the changeset viewer.