Changeset 1480:b343ce6be869 in orange-bioinformatics


Ignore:
Timestamp:
09/29/11 19:46:44 (3 years ago)
Author:
markotoplak
Branch:
default
Convert:
0f6898ace32a64c80554a9ca782e7c03201e12c5
Message:

obiDicty: when joining replicates sort replicates by their replicate id

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • obiDicty.py

    r1377 r1480  
    13501350    return od 
    13511351 
    1352 def join_replicates(data, ignorenames=["id", "replicate", "name", "map_stop1"], namefn=None, avg=median): 
     1352def join_replicates(data, ignorenames=["replicate", "id", "name", "map_stop1"], namefn=None, avg=median): 
    13531353    """ Join replicates by median.  
    1354     Default parameters work for PIPA data.""" 
     1354    Default parameters work for PIPA data. 
     1355    Sort elements in the same order as ignorenames! 
     1356    """ 
     1357 
    13551358    d = defaultdict(list) 
    13561359 
     
    13961399            return None 
    13971400 
     1401    def data_type(vals): #data type converter 
     1402        try: 
     1403            _ = [ int(a) for a in vals ] 
     1404            return int 
     1405        except: 
     1406            try: 
     1407                _ = [ float(a) for a in vals ] 
     1408                return float 
     1409            except: 
     1410                return lambda x: x 
     1411 
     1412    all_values = defaultdict(set) 
     1413    for a in [ at.attributes for at in data.domain.attributes ]: 
     1414        for k,v in a.iteritems(): 
     1415            all_values[k].add(v) 
     1416 
     1417    types = {} 
     1418    for k,vals in all_values.iteritems(): 
     1419        types[k] = data_type(vals) 
     1420   
    13981421    for group, elements in d.items(): 
    13991422        a = orange.FloatVariable() 
     1423        #here sort elements 
     1424     
     1425        def sk(x): 
     1426            return ( types[n](x[n]) for n in ignorenames if n in all_values ) 
     1427 
     1428        elements = sorted(elements, key=lambda x: sk(data.domain.attributes[x].attributes)) 
     1429 
    14001430        a.attributes.update(join_ats([data.domain.attributes[i].attributes for i in elements])) 
    14011431        a.name = namefn(a.attributes) 
  • widgets/OWPIPA.py

    r1462 r1480  
    680680 
    681681            if self.joinreplicates: 
    682                 table = obiDicty.join_replicates(table, ignorenames=["id", "replicate", "name", "map_stop1"], namefn=None, avg=obiDicty.median) 
     682                table = obiDicty.join_replicates(table, ignorenames=["replicate", "id", "name", "map_stop1"], namefn=None, avg=obiDicty.median) 
    683683 
    684684            end = int(time.time()-start) 
Note: See TracChangeset for help on using the changeset viewer.