Changeset 1593:f888bd8a5ae2 in orange-bioinformatics


Ignore:
Timestamp:
03/07/12 10:38:49 (2 years ago)
Author:
markotoplak
Branch:
default
Message:

Added PCA transformation to obiGeneSetSig.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • obiAssess.py

    r1592 r1593  
    482482    ev0 = evect[0] #this is a row in a matrix - do a dot product 
    483483    a = numpy.dot(arr, ev0) 
    484  
    485484    return a 
    486485 
     
    489488    M = data.toNumpy("a")[0] 
    490489    XMean = numpy.mean(M, axis = 0) 
    491     print XMean.shape, M.shape 
    492490    M = M - XMean 
    493491 
     
    676674    #ass = AssessLearner()(data, matcher, gsets, rankingf=AT_loessLearner()) 
    677675    #ass = MeanLearner()(data, matcher, gsets, default=False) 
    678     ass = MedianLearner()(data, matcher, gsets) 
     676    #ass = MedianLearner()(data, matcher, gsets) 
    679677    #ass = PLSLearner()(data, matcher, gsets, classValues=choosen_cv) 
    680678    #ass = SetSigLearner()(ldata, matcher, gsets, classValues=choosen_cv, minPart=0.0) 
    681     #ass = PCALearner()(ldata, matcher, gsets, classValues=choosen_cv, minPart=0.0) 
     679    ass = PCALearner()(ldata, matcher, gsets, classValues=choosen_cv, minPart=0.0) 
    682680    #ass = GSALearner()(ldata, matcher, gsets, classValues=choosen_cv, minPart=0.0) 
    683681 
  • obiGeneSetSig.py

    r1592 r1593  
    122122                genes2 = [ nm2.umatch(gene) for gene in geneset ] 
    123123 
    124                 genes, genes2 = zip(*[ (g,g2) for g,g2 in zip(genes, genes2) if g != None]) 
     124                takegenes = [ i for i,a in enumerate(genes) if a != None ] 
     125 
     126                genes = [ genes[i] for i in takegenes ] 
     127                genes2 = [ genes2[i] for i in takegenes ] 
    125128 
    126129                domain = Orange.data.Domain([data.domain.attributes[name_ind[gene]] for gene in genes], data.domain.class_var) 
     
    133136                return setSig_example_geneset(example, datao) #only this one is setsig specific 
    134137          
     138            at.get_value_from = t 
     139            attributes.append(at) 
     140 
     141        return attributes  
     142 
     143from obiAssess import pca 
     144 
     145class PCA(GeneSetTrans): 
     146 
     147    def build_features(self, data, gene_sets): 
     148 
     149        attributes = [] 
     150 
     151        for gs in gene_sets: 
     152            at = Orange.feature.Continuous(name=str(gs)) 
     153 
     154            geneset = list(gs.genes) 
     155 
     156            nm, name_ind = self._mat_ni(data) 
     157            genes = [ nm.umatch(gene) for gene in geneset ] 
     158            takegenes = [ i for i,a in enumerate(genes) if a != None ] 
     159            genes = [ genes[i] for i in takegenes ] 
     160     
     161            domain = Orange.data.Domain([data.domain.attributes[name_ind[gene]] for gene in genes], data.domain.class_var) 
     162 
     163            datao = Orange.data.Table(domain, data) 
     164 
     165            evals, evect, xmean = pca(datao) 
     166            constructt = evals, evect, xmean 
     167 
     168            def t(ex, w, geneset=geneset, constructt=constructt, takegenes=takegenes, domain=domain): 
     169 
     170                nm2, name_ind2 = self._mat_ni(ex) 
     171                genes2 = [ nm2.umatch(gene) for gene in geneset ] 
     172                genes2 = [ genes2[i] for i in takegenes ] 
     173               
     174                #convert the example to the same domain 
     175                exvalues = [ vou(ex, gn, name_ind2) for gn in genes2 ] + [ "?" ] 
     176                 
     177                arr = numpy.array(exvalues[:-1]) 
     178                 
     179                evals, evect, xmean = constructt 
     180 
     181                arr = arr - xmean # same input transformation - a row in a matrix 
     182                ev0 = evect[0] #this is a row in a matrix - do a dot product 
     183                a = numpy.dot(arr, ev0) 
     184 
     185                return a 
     186                      
    135187            at.get_value_from = t 
    136188            attributes.append(at) 
     
    173225       self.fn = numpy.median 
    174226       super(Median, self).__init__(**kwargs) 
     227 
     228 
    175229 
    176230if __name__ == "__main__": 
     
    204258        print '\n'.join([ a + ": " +str(b) for a,b in ol]) 
    205259 
    206     ass = Median(data, matcher=matcher, gene_sets=gsets, class_values=choosen_cv, min_part=0.0) 
     260    ass = PCA(data, matcher=matcher, gene_sets=gsets, class_values=choosen_cv, min_part=0.0) 
    207261    ar = to_old_dic(ass.domain, data[:5]) 
    208262    pp2(ar) 
Note: See TracChangeset for help on using the changeset viewer.