Changeset 1587:c29c74349ecc in orange-bioinformatics for obiGeneSetSig.py


Ignore:
Timestamp:
03/05/12 14:58:25 (2 years ago)
Author:
markotoplak
Branch:
default
rebase_source:
b3163104dc1660e6a587d55d4f00205d7f6fd04d
Message:

Added caching of gene matchers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • obiGeneSetSig.py

    r1583 r1587  
    88import stats 
    99import obiGsea 
     10import scipy.stats 
     11 
     12 
    1013 
    1114def setSig_example_geneset(ex, data): 
     
    3033        vals2 = [ v for v,c in zip(vals2, common) if c ] 
    3134 
    32         return pearsonr(vals1, vals2) 
     35        return numpy.corrcoef([vals1, vals2])[0,1] 
    3336 
    3437    def ttest(ex1, ex2): 
     
    7780        self.min_part = min_part 
    7881        self.class_values = class_values 
     82        self._cache = {} 
     83 
     84    def _mat_ni(self, data): 
     85        """ With cached gene matchers. """ 
     86        if data.domain not in self._cache: 
     87            self._cache[data.domain] = mat_ni(data, self.matcher) 
     88        return self._cache[data.domain] 
    7989 
    8090    def __call__(self, data, weight_id=None): 
    8191 
    8292        data = obiGsea.takeClasses(data, classValues=self.class_values) 
    83         nm,_ =  mat_ni(data, matcher) 
     93        nm,_ =  self._mat_ni(data) 
    8494        gene_sets = select_genesets(nm, self.gene_sets, self.min_size, self.max_size, self.min_part) 
    8595 
     
    8797 
    8898        for gs in gene_sets: 
    89             at = Orange.feature.Continuous(name=gs.id) 
     99            at = Orange.feature.Continuous(name=str(gs)) 
    90100 
    91101            def t(ex, w, gs=gs, data=data): #copy od the data 
    92102                geneset = list(gs.genes) 
    93103 
    94                 nm, name_ind = mat_ni(data, matcher) 
    95                 nm2, name_ind2 = mat_ni(ex, matcher) 
     104                nm, name_ind = self._mat_ni(data) 
     105                nm2, name_ind2 = self._mat_ni(ex) 
    96106 
    97107                genes = [ nm.umatch(gene) for gene in geneset ] 
     
    124134if __name__ == "__main__": 
    125135 
     136 
    126137    data = Orange.data.Table("iris") 
    127138    gsets = obiGeneSets.collections({ 
     
    130141        "l3": ['sepal width', 'petal length', 'petal width'], 
    131142        }) 
     143    matcher = obiGene.matcher([]) 
     144    choosen_cv = ["Iris-setosa", "Iris-versicolor"] 
    132145 
    133     fp = 120 
    134     ldata = Orange.data.Table(data.domain, data[:fp]) 
    135     tdata = Orange.data.Table(data.domain, data[fp:]) 
     146    """ 
     147    data = Orange.data.Table("DLBCL_200a") 
     148    gsets = obiGeneSets.collections((("KEGG",),"9606")) 
     149    matcher = obiGene.matcher([obiGene.GMKEGG("hsa")]) 
     150    choosen_cv = None 
     151    """ 
    136152 
    137     matcher = obiGene.matcher([]) 
    138  
    139     choosen_cv = ["Iris-setosa", "Iris-versicolor"] 
    140153 
    141154    def to_old_dic(d, data): 
Note: See TracChangeset for help on using the changeset viewer.