Changeset 1388:e19308f4a701 in orange-bioinformatics


Ignore:
Timestamp:
05/12/11 16:47:02 (3 years ago)
Author:
ales_erjavec <ales.erjavec@…>
Branch:
default
Convert:
4736bacccb69048091acb796eed04805362ec940
Message:

Show error when the user selects all values.
Clearing the plot when necessary.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • widgets/OWVulcanoPlot.py

    r1385 r1388  
    423423class OWVulcanoPlot(OWWidget): 
    424424    settingsList =["targetClass", "graph.cutoffX", "graph.cutoffY", "graph.symbolSize", "graph.symetricSelections", "showXTitle", "showYTitle"] 
    425     contextHandlers = {"":DomainContextHandler("", [ContextField("targetClass"), ContextField("graph.cutoffX"), 
     425    contextHandlers = {"":DomainContextHandler("", [ContextField("graph.symbolSize"), ContextField("graph.cutoffX"), 
    426426                                                    ContextField("graph.cutoffY")]), 
    427427                       "targets": SetContextHandler("targets")} 
     
    504504        self.resize(800, 600) 
    505505 
     506    def clear(self): 
     507        self.target_widget.set_labels([]) 
     508        self.targets = [] 
     509        self.label_selections = [] 
     510        self.target_group = None, [] 
     511        self.values = {} 
     512        self.graph.setPlotValues({}) 
     513        self.updateTooltips() 
     514         
    506515    def setData(self, data=None): 
    507516        self.closeContext() 
    508517        self.closeContext("targets") 
     518        self.clear() 
    509519        self.data = data 
    510         self.target_group = None, [] 
    511520        self.error(0) 
     521        self.warning([0,1]) 
    512522        if data: 
    513523            self.genesInColumns = not bool(data.domain.classVar) 
     
    516526                self.genesInColumns = not data_hints.get_hint(data, "genesinrows", not self.genesInColumns)  
    517527            self.update_target_labels() 
    518             self.error() 
    519528            if not self.targets: 
    520529                self.error(0, "Data set with no column labels (attribute tags) or row labels (classes).") 
    521530        else: 
     531            self.update_target_labels() 
    522532            self.infoLabel.setText("No data on input") 
    523             self.targets = [] 
    524             self.plot() 
    525              
     533         
    526534        self.openContext("", data) 
    527535        self.openContext("targets", [(label, v) for label, vals in self.targets \ 
     
    534542        if self.target_group != (None, []): 
    535543            self.target_widget.set_selection(*self.target_group) 
     544        else: 
     545            self.plot() 
    536546 
    537547    def update_target_labels(self): 
     
    559569            self.targets = [] 
    560570             
     571        if self.targets: 
     572            label, values = self.targets[0] 
     573            self.target_group = (label, values[:1]) 
     574        else: 
     575            self.target_group = None, [] 
     576             
    561577        self.label_selections = [[] for t in self.targets] 
    562578        self.target_widget.set_labels(self.targets) 
     
    568584        selected = self.label_selections[index] 
    569585        if not selected: 
    570             selected = self.targets[index][:1] 
     586            selected = self.targets[index][1][:1] 
    571587             
    572588        self.target_widget.set_selection(index, selected) 
     
    588604        self.values = {} 
    589605        target_label, target_values = self.target_group 
     606        self.warning([0, 1]) 
     607        self.error(1) 
    590608        if self.data and target_values: 
    591             self.warning([0, 1]) 
    592609            target_label, target_values = self.target_group 
    593610            if self.genesInColumns: 
     
    599616            ind1, ind2 = ttest.test_indices(target) 
    600617             
     618            if not len(ind1) or not len(ind2): 
     619                self.error(1, "Target labels most exclude/include at least one value.") 
     620                 
    601621            if len(ind1) < 2 and len(ind2) < 2: 
    602622                self.warning(0, "Insufficient data to compute statistics. More than one measurement per class should be provided") 
    603623             
    604624            self.progressBarInit() 
    605             tt = ttest(target) 
    606              
    607             self.progressBarSet(25) 
    608             fold = obiExpression.ExpressionSignificance_FoldChange(self.data, useAttributeLabels=self.genesInColumns)(target) 
    609             self.progressBarSet(50) 
     625            try: 
     626                tt = ttest(target) 
     627                self.progressBarSet(25) 
     628                fold = obiExpression.ExpressionSignificance_FoldChange(self.data, useAttributeLabels=self.genesInColumns)(target) 
     629                self.progressBarSet(50) 
     630            except ZeroDivisionError, ex: 
     631                tt, fold = [], [] 
    610632            self.infoLabel.setText("%i genes on input" % len(fold)) 
    611633             
Note: See TracChangeset for help on using the changeset viewer.