Changeset 1807:666d56b81a52 in orange-bioinformatics


Ignore:
Timestamp:
05/24/13 14:10:21 (11 months ago)
Author:
Flashpoint <vid.flashpoint@…>
Branch:
default
Message:

The OWtest.py prototype widget for custom gene sets now correctly imports and deletes the genesets

Location:
_bioinformatics
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _bioinformatics/obiGeneSets.py

    r1805 r1807  
    1010import cPickle as pickle, os, tempfile, sys 
    1111from collections import defaultdict 
     12import datetime 
    1213 
    1314import Orange.core as orange 
     
    232233            setBgone = os.path.join(pth, setfile) 
    233234            os.remove(setBgone)  
     235 
     236def modification_date(file): 
     237    t = os.path.getmtime(file) 
     238    return datetime.datetime.fromtimestamp(t) 
    234239 
    235240def list_serverfiles_from_flist(flist): 
  • _bioinformatics/widgets/prototypes/OWtest.py

    r1806 r1807  
    11""" 
    22<name>test</name> 
    3 <description>Import custom geneset files</description> 
     3<description>Manage custom geneset files</description> 
    44 
    55""" 
     
    1212import OWGUI 
    1313 
    14 from Orange.bio.obiGeneSets import loadGMT, list_local, register, local_path, remove_local 
     14from Orange.bio.obiGeneSets import loadGMT, list_local, register, local_path, remove_local, modification_date 
    1515 
    1616class standard_icons(object): 
     
    3535 
    3636    def __init__(self, parent=None, signalManager=None, 
    37                  title="Custom Geneset File (*.gmt) Import"): 
     37                 title="Custom Geneset File (*.gmt) Manager"): 
    3838        OWWidget.__init__(self, parent, signalManager, title, 
    39                           wantMainArea=False) 
     39                          wantMainArea=True) 
    4040 
    4141        self.inputs = [] 
     
    6363                                         clicked=self.on_open_dialog) 
    6464 
    65         self.reload_button = QPushButton("Reload", icon=icons.reload_icon, 
    66                                          toolTip="Reload the selected file", 
    67                                          clicked=self.on_reload_file) 
    68  
    6965        layout.addWidget(self.recent_combo, 2) 
    7066        layout.addWidget(self.browse_button) 
    71         layout.addWidget(self.reload_button) 
    7267        
    73         ################ 
    74         # File Preview # 
    75         ################ 
     68        # The preview field 
    7669        form = QFormLayout() 
    7770         
     
    8275 
    8376        OWGUI.button(self.controlArea, self, "Import", callback=self.import_data) 
     77 
     78        # The geneset table 
     79        ma = self.mainArea 
     80 
     81        self.listView = QTreeWidget(ma) 
     82        ma.layout().addWidget(self.listView) 
     83        self.listView.setAllColumnsShowFocus(1) 
     84        self.listView.setColumnCount(2) 
     85        self.listView.setHeaderLabels(["Genesets name", "Import time"]) 
     86 
     87        self.listView.header().setStretchLastSection(True) 
     88        self.listView.header().setClickable(True) 
     89        self.listView.header().setSortIndicatorShown(True) 
     90        self.listView.setSortingEnabled(True) 
     91 
     92        self.listView.setSelectionMode(QAbstractItemView.SingleSelection) 
     93        self.listView.setSelectionBehavior(QAbstractItemView.SelectRows) 
     94 
     95        self.populate_table() 
     96 
     97        OWGUI.button(self.controlArea, self, "Delete", callback=self.delete_data) 
    8498 
    8599        self.selected_file = None  
     
    90104                    lambda: self.set_selected_file(self.recent_files[0]) 
    91105                    ) 
     106 
     107    def populate_table(self): 
     108        self.listView.clear() 
     109        for geneset in os.listdir(local_path()): 
     110            item = QTreeWidgetItem(self.listView) 
     111            name = geneset[geneset.index("gs_")+3:geneset.index(".gmt")+4] 
     112            the_file = os.path.join(local_path(), geneset) 
     113            mod_time = str(modification_date(the_file)) 
     114            item.setText(0, name) 
     115            item.setText(1, mod_time[:mod_time.rfind(".")]) 
     116 
     117        print list_local() 
    92118 
    93119    def on_select_recent(self, recent): 
     
    127153  
    128154        self.update_preview() 
    129  
    130  
    131     # Funkcija za brisanje fajla iz lokalnega repozitorija. Potrebno jo je še nekam zapakirat. 
    132     # remove_local(self.genesetname) 
    133  
     155     
    134156    def update_preview(self): 
    135157        pass 
     
    167189            self.preview_view.setModel(model) 
    168190        """ 
    169  
    170     def import_data(self): 
     191     
     192    def import_data(self):     
    171193        self.error(0)      
    172194        if self.selected_file: 
     
    176198                for geneset in geneset_split: 
    177199                    register(geneset) 
     200                self.populate_table() 
    178201            except Exception, ex: 
    179202                self.error(0, "An error occurred while " 
    180203                              "loading the file:\n\t%r" % self.selected_file 
     204                              )    
     205 
     206    def delete_data(self):    
     207        self.error(0) 
     208        if self.listView.selectedItems(): 
     209            try: 
     210                unwantedGeneset = str(self.listView.selectedItems()[0].text(0)) 
     211                remove_local(unwantedGeneset) 
     212                self.populate_table() 
     213            except Exception, ex: 
     214                self.error(0, "An error occurred while " 
     215                              "deleting the file:\n\t%r" % unwantedGeneset 
    181216                              )     
    182          
     217        
    183218if __name__ == "__main__": 
    184219    import sys 
Note: See TracChangeset for help on using the changeset viewer.