Changeset 1409:4a01b57fe4aa in orange-bioinformatics


Ignore:
Timestamp:
06/06/11 15:34:08 (3 years ago)
Author:
ales_erjavec <ales.erjavec@…>
Branch:
default
Convert:
d1b73ec3b22e3ccbeb255aedbffd4ed57a91d9c6
Message:

Caching the computed clustering.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • widgets/OWHeatMap.py

    r1403 r1409  
    374374        self.sorted_data = None 
    375375         
     376        self._ordering_cache = {} 
     377         
    376378        self.resize(800,400) 
    377379 
     
    569571    def set_dataset(self, data=None, id=None): 
    570572        self.closeContext("Selection") 
     573        self._ordering_cache.clear() 
    571574        self.clear() 
    572575        self.data = data 
     
    599602        if self.SortGenes > 1: 
    600603            self.progressBarInit() 
    601             attr_ordering, attr_cluster, data_ordering, data_clusters = \ 
    602                     hierarchical_cluster_ordering(data, group_domains, 
    603                                                   opt_order=self.SortGenes == 3, 
    604                                                   progress_callback=self.progressBarSet) 
     604             
     605            args_key = tuple(tuple(d) for d in group_domains), self.SortGenes == 3 
     606            cluster_ordering = self._ordering_cache.get(args_key, None) 
     607            if cluster_ordering is None: 
     608                attr_ordering, attr_cluster, data_ordering, data_clusters = \ 
     609                        hierarchical_cluster_ordering(data, group_domains, 
     610                                      opt_order=self.SortGenes == 3, 
     611                                      progress_callback=self.progressBarSet) 
     612                # Cache the clusters 
     613                self._ordering_cache[args_key] = (attr_ordering, attr_cluster, 
     614                                                  data_ordering, data_clusters) 
     615            else: 
     616                 attr_ordering, attr_cluster, data_ordering, data_clusters = cluster_ordering 
     617                     
    605618            sorted_data = [data[i] for i in itertools.chain(*data_ordering)] 
    606619            self.progressBarFinished() 
Note: See TracChangeset for help on using the changeset viewer.