Changeset 1705:0b6781662f02 in orange-bioinformatics for _bioinformatics/obiGsea.py


Ignore:
Timestamp:
08/09/12 11:53:32 (21 months ago)
Author:
markotoplak
Branch:
default
Message:

obiGsea.takeClasses: now builds a class value with get_value_from.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _bioinformatics/obiGsea.py

    r1636 r1705  
    88 
    99import orange 
     10import Orange 
    1011 
    1112from . import obiGeneSets 
     
    539540        #take only examples with classValues classes 
    540541        nclass = orange.EnumVariable(cv.name, values=nclassvalues) 
    541         ndom = orange.Domain(itOrFirst(datai).domain.attributes, nclass) 
    542  
    543         def removeAndTransformClasses(data): 
     542 
     543        def transform_class(ex,cv,mapval,classValues): 
    544544            """ 
    545545            Removes unnecessary class values and joins them according 
    546546            to function input. 
    547547            """ 
    548             examples = [] 
    549             for ex in data: 
    550                 if ex[cv] in classValues: 
    551                     nex = orange.Example(ndom, ex) 
    552                     nex[-1] = mapval[str(ex[cv].value)] 
    553                     examples.append(nex) 
    554  
    555             return orange.ExampleTable(ndom, examples) 
     548            if ex[cv] in classValues: 
     549                nex = orange.Example(ndom, ex) 
     550                return nclass(mapval[str(ex[cv].value)]) 
     551            else: 
     552                return "?" 
     553 
     554        nclass.get_value_from = lambda ex,_: transform_class(ex,cv=cv,mapval=mapval,classValues=classValues) 
     555 
     556        ndom = orange.Domain(itOrFirst(datai).domain.attributes, nclass) 
     557 
     558        def removeAndTransformClasses(data): 
     559            ndata = Orange.data.Table(ndom, data) 
     560            ndata = Orange.data.Table(ndom, [ex for ex in ndata if ex[-1].value != "?"]) 
     561            return ndata 
    556562 
    557563        if iset(datai): 
Note: See TracChangeset for help on using the changeset viewer.