def setData(self, data=None): if not self.__initialized: self.initfuture.result() self.initialize() if self.itemsfuture is not None: raise Exception("Already processing") self.closeContext() self.data = data if data is not None: self.geneAttrComboBox.clear() self.attributes = \ [attr for attr in data.domain.variables + data.domain.metas if isinstance(attr, (Orange.data.StringVariable, Orange.data.DiscreteVariable))] for var in self.attributes: self.geneAttrComboBox.addItem(*gui.attributeItem(var)) self.taxid = data_hints.get_hint(self.data, "taxid", self.taxid) self.useAttr = data_hints.get_hint( self.data, "genesinrows", self.useAttr) self.openContext(data) self.gene_attr = min(self.gene_attr, len(self.attributes) - 1) if self.taxid in self.organisms: self.organism_index = self.organisms.index(self.taxid) self.updateInfoItems() else: self.clear()
def setData(self, data=None): if not self.__initialized: self.initfuture.result() self.initialize() if self.itemsfuture is not None: raise Exception("Already processing") self.data = data if data is not None: self.geneAttrComboBox.clear() self.attributes = [ attr for attr in data.domain.variables + data.domain.metas if isinstance(attr, (Orange.data.StringVariable, Orange.data.DiscreteVariable)) ] for var in self.attributes: self.geneAttrComboBox.addItem(*gui.attributeItem(var)) self.taxid = str(data_hints.get_hint(self.data, TAX_ID)) self.useAttr = data_hints.get_hint(self.data, GENE_NAME, default=self.useAttr) self.gene_attr = min(self.gene_attr, len(self.attributes) - 1) if self.taxid in self.organisms: self.organism_index = self.organisms.index(self.taxid) self.updateInfoItems() else: self.clear()
def SetData(self, data=None): if self.__runstate == OWKEGGPathwayBrowser.Initializing: self.__initialize_finish() self.closeContext() self.data = data self.warning(0) self.error(0) self.information(0) if data is not None: vars = data.domain.variables + data.domain.metas vars = [ var for var in vars if isinstance(var, Orange.data.StringVariable) ] self.geneAttrCandidates[:] = vars # Try to guess the gene name variable if vars: names_lower = [v.name.lower() for v in vars] scores = [(name == "gene", "gene" in name) for name in names_lower] imax, _ = max(enumerate(scores), key=itemgetter(1)) else: imax = -1 self.geneAttrIndex = imax taxid = data_hints.get_hint(data, "taxid", None) if taxid: try: code = kegg.from_taxid(taxid) self.organismIndex = self.organismCodes.index(code) except Exception as ex: print(ex, taxid) self.useAttrNames = data_hints.get_hint(data, "genesinrows", self.useAttrNames) self.openContext(data) if len(self.geneAttrCandidates) == 0: self.useAttrNames = True self.geneAttrIndex = -1 else: self.geneAttrIndex = min(self.geneAttrIndex, len(self.geneAttrCandidates) - 1) else: self.Clear() self.__invalidated = True
def SetData(self, data=None): if self.__runstate == OWKEGGPathwayBrowser.Initializing: self.__initialize_finish() self.closeContext() self.data = data self.warning(0) self.error(0) self.information(0) if data is not None: vars = data.domain.variables + data.domain.metas vars = [var for var in vars if isinstance(var, Orange.data.StringVariable)] self.geneAttrCandidates[:] = vars # Try to guess the gene name variable if vars: names_lower = [v.name.lower() for v in vars] scores = [(name == "gene", "gene" in name) for name in names_lower] imax, _ = max(enumerate(scores), key=itemgetter(1)) else: imax = -1 self.geneAttrIndex = imax taxid = data_hints.get_hint(data, "taxid", None) if taxid: try: code = kegg.from_taxid(taxid) self.organismIndex = self.organismCodes.index(code) except Exception as ex: print(ex, taxid) self.useAttrNames = data_hints.get_hint(data, "genesinrows", self.useAttrNames) self.openContext(data) if len(self.geneAttrCandidates) == 0: self.useAttrNames = True self.geneAttrIndex = -1 else: self.geneAttrIndex = min(self.geneAttrIndex, len(self.geneAttrCandidates) - 1) else: self.Clear() self.__invalidated = True
def setDataset(self, data=None): if self.__state == OWGOEnrichmentAnalysis.Initializing: self.__initialize_finish() self.closeContext() self.clear() self.clusterDataset = data if data is not None: domain = data.domain allvars = domain.variables + domain.metas self.candidateGeneAttrs = [var for var in allvars if isstring(var)] self.geneAttrIndexCombo.clear() for var in self.candidateGeneAttrs: self.geneAttrIndexCombo.addItem(*gui.attributeItem(var)) taxid = data_hints.get_hint(data, "taxid", "") code = None try: code = go.from_taxid(taxid) except KeyError: pass except Exception as ex: print(ex) if code is not None: filename = "gene_association.%s.tar.gz" % code if filename in self.annotationFiles.values(): self.annotationIndex = \ [i for i, name in enumerate(self.annotationCodes) \ if self.annotationFiles[name] == filename].pop() self.useAttrNames = data_hints.get_hint(data, "genesinrows", self.useAttrNames) self.openContext(data) self.geneAttrIndex = min(self.geneAttrIndex, len(self.candidateGeneAttrs) - 1) if len(self.candidateGeneAttrs) == 0: self.useAttrNames = True self.geneAttrIndex = -1 elif self.geneAttrIndex < len(self.candidateGeneAttrs): self.geneAttrIndex = len(self.candidateGeneAttrs) - 1 self._updateEnrichment()
def set_data(self, data): self.closeContext() self.clear() self.error([0, 1]) self.data = data if self.data is not None: self.initialize(data) if self.data is not None and not self.targets: # If both attr. labels and classes are missing, show an error self.error( 1, "Cannot compute gene scores! Differential expression " "widget requires a data-set with a discrete class " "variable(s) or column labels!", ) self.data = None if self.data is not None: # Initialize the selected groups/labels. # Default selected group key index = 0 rowshint = data_hints.get_hint(data, GENE_AS_ATTRIBUTE_NAME, False) if not rowshint: # Select the first row group split candidate (if available) indices = [ i for i, grp in enumerate(self.targets) if isinstance(grp, guiutils.RowGroup) ] if indices: index = indices[0] self.current_group_index = index # Restore target label selection from context settings items = {(grp.name, val) for grp in self.targets for val in grp.values} self.openContext(items) # Restore current group / selection model = self.label_selection_widget.model() selection = [ model.index(i, 0, model.index(keyind, 0)) for keyind, selection in enumerate(self.stored_selections) for i in selection ] selection = guiutils.itemselection(selection) self.label_selection_widget.setSelection(selection) self.label_selection_widget.setCurrentGroupIndex( self.current_group_index) self.commit()
def setDataset(self, data=None): self.closeContext() self.clear() self.clusterDataset = data if data is not None: domain = data.domain allvars = domain.variables + domain.metas self.candidateGeneAttrs = [var for var in allvars if isstring(var)] self.geneAttrIndexCombo.clear() for var in self.candidateGeneAttrs: self.geneAttrIndexCombo.addItem(*gui.attributeItem(var)) taxid = data_hints.get_hint(data, "taxid", "") try: code = go.from_taxid(taxid) except KeyError: pass else: _c2i = { a.orgcode: i for i, a in enumerate(self.availableAnnotations) } try: self.annotationIndex = _c2i[code] except KeyError: pass self.useAttrNames = data_hints.get_hint(data, "genesinrows", self.useAttrNames) self.openContext(data) self.geneAttrIndex = min(self.geneAttrIndex, len(self.candidateGeneAttrs) - 1) if len(self.candidateGeneAttrs) == 0: self.useAttrNames = True self.geneAttrIndex = -1 elif self.geneAttrIndex < len(self.candidateGeneAttrs): self.geneAttrIndex = len(self.candidateGeneAttrs) - 1 self.__invalidate()
def setData(self, data=None): """Set the input dataset with query gene names""" if self.__state & OWSetEnrichment.Initializing: self.__initialize_finish() self.error(0) self.closeContext() self.clear() self.groupsWidget.clear() self.data = data if data is not None: varlist = [ var for var in data.domain.variables + data.domain.metas if isinstance(var, Orange.data.StringVariable) ] self.geneAttrs = varlist for var in varlist: self.geneAttrComboBox.addItem(*gui.attributeItem(var)) oldtaxid = self.taxid self.geneattr = min(self.geneattr, len(self.geneAttrs) - 1) taxid = data_hints.get_hint(data, "taxid", "") if taxid in self.taxid_list: self.speciesIndex = self.taxid_list.index(taxid) self.taxid = taxid self.genesinrows = data_hints.get_hint(data, "genesinrows", self.genesinrows) self.openContext(data) if oldtaxid != self.taxid: self.taxid = "< Do not look >" self.setCurrentOrganism(taxid) self.refreshHierarchy() self._invalidate()
def setDataset(self, data=None): self.closeContext() self.clear() self.clusterDataset = data if data is not None: domain = data.domain allvars = domain.variables + domain.metas self.candidateGeneAttrs = [var for var in allvars if isstring(var)] self.geneAttrIndexCombo.clear() for var in self.candidateGeneAttrs: self.geneAttrIndexCombo.addItem(*gui.attributeItem(var)) taxid = data_hints.get_hint(data, "taxid", "") try: code = go.from_taxid(taxid) except KeyError: pass else: _c2i = {a.orgcode: i for i, a in enumerate(self.availableAnnotations)} try: self.annotationIndex = _c2i[code] except KeyError: pass self.useAttrNames = data_hints.get_hint(data, "genesinrows", self.useAttrNames) self.openContext(data) self.geneAttrIndex = min(self.geneAttrIndex, len(self.candidateGeneAttrs) - 1) if len(self.candidateGeneAttrs) == 0: self.useAttrNames = True self.geneAttrIndex = -1 elif self.geneAttrIndex < len(self.candidateGeneAttrs): self.geneAttrIndex = len(self.candidateGeneAttrs) - 1 self.__invalidate()
def set_data(self, data): self.closeContext() self.data = data if data is not None: self.varmodel[:] = string_variables(data.domain) taxid = data_hints.get_hint(data, "taxid", default=self.taxid) if taxid in self.taxids: self.set_organism(self.taxids.index(taxid)) self.use_attr_names = data_hints.get_hint( data, "genesinrows", default=self.use_attr_names) if not (0 <= self.gene_var_index < len(self.varmodel)): self.gene_var_index = len(self.varmodel) - 1 self.openContext(data) self.invalidate() self.commit() else: self.varmodel[:] = [] self.send("Network", None)
def setDataset(self, data=None): self.closeContext() self.clear() self.clusterDataset = data if data is not None: domain = data.domain allvars = domain.variables + domain.metas self.candidateGeneAttrs = [var for var in allvars if isstring(var)] self.geneAttrIndexCombo.clear() for var in self.candidateGeneAttrs: self.geneAttrIndexCombo.addItem(*gui.attributeItem(var)) tax_id = data_hints.get_hint(data, TAX_ID, '') if tax_id is not None: _c2i = { a.taxid: i for i, a in enumerate(self.availableAnnotations) } try: self.annotationIndex = _c2i[tax_id] except KeyError: pass self.useAttrNames = data_hints.get_hint(data, GENE_NAME, default=self.useAttrNames) self.geneAttrIndex = min(self.geneAttrIndex, len(self.candidateGeneAttrs) - 1) if len(self.candidateGeneAttrs) == 0: self.useAttrNames = True self.geneAttrIndex = -1 elif self.geneAttrIndex < len(self.candidateGeneAttrs): self.geneAttrIndex = len(self.candidateGeneAttrs) - 1 self.__invalidate()
def setData(self, data=None): """Set the input dataset with query gene names""" if self.__state & OWSetEnrichment.Initializing: self.__initialize_finish() self.Error.clear() self.closeContext() self.clear() self.groupsWidget.clear() self.data = data if data is not None: varlist = [var for var in data.domain.variables + data.domain.metas if isinstance(var, Orange.data.StringVariable)] self.geneAttrs = varlist for var in varlist: self.geneAttrComboBox.addItem(*gui.attributeItem(var)) oldtaxid = self.taxid self.geneattr = min(self.geneattr, len(self.geneAttrs) - 1) taxid = data_hints.get_hint(data, "taxid", "") if taxid in self.taxid_list: self.speciesIndex = self.taxid_list.index(taxid) self.taxid = taxid self.genesinrows = data_hints.get_hint( data, "genesinrows", self.genesinrows) self.openContext(data) if oldtaxid != self.taxid: self.taxid = "< Do not look >" self.setCurrentOrganism(taxid) self.refreshHierarchy() self._invalidate()
def set_data(self, data=None): self.closeContext() self.clear() self.data = data self.error(0) self.warning([0, 1]) if data is not None: self.init_from_data() if not self.targets: self.error(0, "Data has no suitable defined groups/labels") genesinrows = data_hints.get_hint(data, "genesinrows", True) # Select the first RowGroup if genesinrows hint is False if not genesinrows: ind = [ i for i, grp in enumerate(self.targets) if isinstance(grp, grouputils.RowGroup) ] if ind: self.current_group_index = ind[0] else: self.current_group_index = 0 if self.targets else -1 else: self.current_group_index = 0 # TODO: Why does the current_group_index not get restored self.openContext([(grp.name, v) for grp in self.targets for v in grp.values]) model = self.target_widget.model() # FIX: This assumes fixed target key/values order. indices = [ model.index(i, 0, model.index( keyind, 0, )) for keyind, selected in enumerate(self.stored_selections) for i in selected ] selection = guiutils.itemselection(indices) self.target_widget.setCurrentGroupIndex(self.current_group_index) self.target_widget.setSelection(selection) self.plot() else: self.infoLabel.setText("No data on input.") self.unconditional_commit()
def set_data(self, data): self.closeContext() self.data = data if data is not None: self.varmodel[:] = string_variables(data.domain) taxid = data_hints.get_hint(data, "taxid", default=self.taxid) if taxid in self.taxids: self.set_organism(self.taxids.index(taxid)) self.use_attr_names = data_hints.get_hint( data, "genesinrows", default=self.use_attr_names ) if not (0 <= self.gene_var_index < len(self.varmodel)): self.gene_var_index = len(self.varmodel) - 1 self.openContext(data) self.invalidate() self.commit() else: self.varmodel[:] = [] self.send("Network", None)
def set_data(self, data): self.closeContext() self.clear() self.error([0, 1]) self.data = data if self.data is not None: self.initialize(data) if self.data is not None and not self.targets: # If both attr. labels and classes are missing, show an error self.error( 1, "Cannot compute gene scores! Differential expression " "widget requires a data-set with a discrete class " "variable(s) or attribute labels!" ) self.data = None if self.data is not None: # Initialize the selected groups/labels. # Default selected group key index = 0 rowshint = data_hints.get_hint(data, "genesinrows", False) if not rowshint: # Select the first row group split candidate (if available) indices = [i for i, grp in enumerate(self.targets) if isinstance(grp, grouputils.RowGroup)] if indices: index = indices[0] self.current_group_index = index # Restore target label selection from context settings items = {(grp.name, val) for grp in self.targets for val in grp.values} self.openContext(items) # Restore current group / selection model = self.label_selection_widget.model() selection = [model.index(i, 0, model.index(keyind, 0)) for keyind, selection in enumerate(self.stored_selections) for i in selection] selection = guiutils.itemselection(selection) self.label_selection_widget.setSelection(selection) self.label_selection_widget.setCurrentGroupIndex( self.current_group_index) self.commit()
def handle_input(self, data): if data: self.input_data = data self.gene_matcher = gene.GeneMatcher(self._get_selected_organism()) self.gene_column_combobox.clear() self.column_candidates = [ attr for attr in data.domain.variables + data.domain.metas if isinstance(attr, (StringVariable, DiscreteVariable)) ] for var in self.column_candidates: self.gene_column_combobox.addItem(*attributeItem(var)) self.tax_id = str(data_hints.get_hint(self.input_data, TAX_ID)) self.use_attr_names = data_hints.get_hint( self.input_data, GENE_NAME, default=self.use_attr_names) self.gene_col_index = min(self.gene_col_index, len(self.column_candidates) - 1) if self.tax_id in self.organisms: self.selected_organism = self.organisms.index(self.tax_id) self.on_input_option_change()
def set_data(self, data=None): self.closeContext() self.clear() self.data = data self.error(0) self.warning([0, 1]) if data is not None: self.init_from_data() if not self.targets: self.error(0, "Data has no suitable defined groups/labels") genesinrows = data_hints.get_hint(data, "genesinrows", True) # Select the first RowGroup if genesinrows hint is False if not genesinrows: ind = [i for i, grp in enumerate(self.targets) if isinstance(grp, grouputils.RowGroup)] if ind: self.current_group_index = ind[0] else: self.current_group_index = 0 if self.targets else -1 else: self.current_group_index = 0 # TODO: Why does the current_group_index not get restored self.openContext([(grp.name, v) for grp in self.targets for v in grp.values]) model = self.target_widget.model() # FIX: This assumes fixed target key/values order. indices = [model.index(i, 0, model.index(keyind, 0,)) for keyind, selected in enumerate(self.stored_selections) for i in selected] selection = guiutils.itemselection(indices) self.target_widget.setCurrentGroupIndex(self.current_group_index) self.target_widget.setSelection(selection) self.plot() else: self.infoLabel.setText("No data on input.") self.unconditional_commit()