Changeset 1842:f5f76d0b5ed9 in orange-bioinformatics for _bioinformatics/widgets/OWHeatMap.py


Ignore:
Timestamp:
08/13/13 15:57:52 (8 months ago)
Author:
markotoplak
Branch:
default
Message:

Code organization in OWHeatMap.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _bioinformatics/widgets/OWHeatMap.py

    r1840 r1842  
    188188                    "ShowDataFileNames", "BAnnotationVar", 
    189189                    "SelectionType", 
    190                     "CurrentPalette", "SortGenes", "colorSettings", "selectedSchemaIndex", 
     190                    "SortExamples", "SortAttributes", 
     191                    "CurrentPalette", "colorSettings", "selectedSchemaIndex", 
    191192                    "palette", "ShowColumnLabels", "ColumnLabelPosition"] 
    192193 
     
    416417         
    417418        self._ordering_cache = {} 
    418         self._ordering_cache_examples = {} 
    419         self._ordering_cache_attributes = {} 
    420419         
    421420        self.resize(800,400) 
     
    616615         
    617616        self._ordering_cache.clear() 
    618         self._ordering_cache_examples.clear() 
    619         self._ordering_cache_attributes.clear() 
    620617         
    621618        self.clear() 
     
    647644        group_domains = [dom for _, dom in groups] 
    648645 
    649         # Both rows and columns 
    650         if self.SortExamples > 1 and self.SortAttributes > 0: 
     646        attr_ordering = range(len(group_domains[0][1].attributes)) 
     647        attr_cluster = None 
     648        data_ordering = [] 
     649        data_clusters = [None] 
     650        sorted_data = data 
     651 
     652        if self.SortExamples > 1: 
    651653            self.progressBarInit() 
    652654 
    653             args_key = tuple(tuple(d) for d in group_domains), self.SortExamples == 3, self.SortAttributes == 2 
    654             cluster_ordering = self._ordering_cache.get(args_key, None) 
    655             if cluster_ordering is None: 
     655            args_key = tuple(tuple(d) for d in group_domains), self.SortExamples == 3, "data" 
     656            cluster_ordering_examples = self._ordering_cache.get(args_key, None) 
     657            if cluster_ordering_examples is None: 
    656658 
    657659                # Rows separately 
     
    661663                                      progress_callback=self.progressBarSet) 
    662664 
     665                # Cache the clusters 
     666                self._ordering_cache[args_key] = (data_ordering, data_clusters) 
     667            else: 
     668                 data_ordering, data_clusters = cluster_ordering_examples 
     669             
     670            sorted_data = [data[i] for i in itertools.chain(*data_ordering)] 
     671            self.progressBarFinished() 
     672         
     673        # Only columns 
     674        if self.SortAttributes > 0: 
     675            self.progressBarInit() 
     676 
     677            args_key = tuple(tuple(d) for d in group_domains), self.SortAttributes == 2, "attributes" 
     678            cluster_ordering_attributes = self._ordering_cache.get(args_key, None) 
     679            if cluster_ordering_attributes is None: 
     680 
    663681                # Columns separately 
    664682                attr_ordering, attr_cluster = \ 
     
    668686 
    669687                # Cache the clusters 
    670                 self._ordering_cache[args_key] = (attr_ordering, attr_cluster, 
    671                                                   data_ordering, data_clusters) 
    672             else: 
    673                  attr_ordering, attr_cluster, data_ordering, data_clusters = cluster_ordering 
    674                      
    675             sorted_data = [data[i] for i in itertools.chain(*data_ordering)] 
    676             self.progressBarFinished() 
    677          
    678         # Only rows 
    679         elif self.SortExamples > 1: 
    680             self.progressBarInit() 
    681  
    682             args_key = tuple(tuple(d) for d in group_domains), self.SortExamples == 3 
    683             cluster_ordering_examples = self._ordering_cache_examples.get(args_key, None) 
    684             if cluster_ordering_examples is None: 
    685  
    686                 # Rows separately 
    687                 data_ordering, data_clusters = \ 
    688                         hierarchical_cluster_ordering_data(data, group_domains, 
    689                                       opt_order=self.SortExamples == 3, 
    690                                       progress_callback=self.progressBarSet) 
    691  
    692                 # Cache the clusters 
    693                 self._ordering_cache_examples[args_key] = (data_ordering, data_clusters) 
    694             else: 
    695                  data_ordering, data_clusters = cluster_ordering_examples 
    696              
    697             attr_ordering = range(len(group_domains[0][1].attributes)) 
    698             attr_cluster = None 
    699             sorted_data = [data[i] for i in itertools.chain(*data_ordering)] 
    700             self.progressBarFinished() 
    701          
    702         # Only columns 
    703         elif self.SortAttributes > 0: 
    704             self.progressBarInit() 
    705  
    706             args_key = tuple(tuple(d) for d in group_domains), self.SortAttributes == 2 
    707             cluster_ordering_attributes = self._ordering_cache_attributes.get(args_key, None) 
    708             if cluster_ordering_attributes is None: 
    709  
    710                 # Columns separately 
    711                 attr_ordering, attr_cluster = \ 
    712                         hierarchical_cluster_ordering_attr(data, group_domains, 
    713                                       opt_order=self.SortAttributes == 2, 
    714                                       progress_callback=self.progressBarSet) 
    715  
    716                 # Cache the clusters 
    717                 self._ordering_cache_attributes[args_key] = (attr_ordering, attr_cluster) 
     688                self._ordering_cache[args_key] = (attr_ordering, attr_cluster) 
    718689            else: 
    719690                 attr_ordering, attr_cluster = cluster_ordering_attributes 
    720691             
    721             data_ordering = [] 
    722             data_clusters = [None] 
    723             sorted_data = data 
    724692            self.progressBarFinished() 
    725693 
    726         else: 
    727             attr_ordering = range(len(group_domains[0][1].attributes)) 
    728             attr_cluster = None 
    729             data_ordering = [] 
    730             data_clusters = [None] 
    731             sorted_data = data 
    732              
    733694        self.heatmapconstructor = [] 
    734695        self._group_data = [] 
Note: See TracChangeset for help on using the changeset viewer.