def set_dataset(self, data=None):
        self.closeContext()
        self.clear()
        self.Error.clear()
        # print(data)
        if data:
            self.input_data = data
            self.tax_id = data.attributes[TableAnnotation.tax_id]
            self.use_attr_names = data.attributes[
                TableAnnotation.gene_as_attr_name]
            if self.use_attr_names:
                self.gene_id_attribute = data.attributes[
                    TableAnnotation.gene_id_attribute]
            else:
                self.gene_id_column = data.attributes[
                    TableAnnotation.gene_id_column]
            self.annotation_index = None

            _c2i = {
                a.taxid: i
                for i, a in enumerate(self.available_annotations)
            }
            try:
                self.annotation_index = _c2i[self.tax_id]
            except KeyError:
                self.Error.serverfiles_unavailable()
                # raise ValueError('Taxonomy {} not supported.'.format(self.tax_id))
                return

            self.gene_info = gene.GeneInfo(self.tax_id)

            self.__invalidate()
Ejemplo n.º 2
0
    def test_gene_info(self):
        ncbi_id = 6331
        organism = '9606'

        gene_info_obj = gene.GeneInfo(organism)
        gene_info = gene_info_obj.get_gene_by_id(ncbi_id)

        self.assertIsNone(gene_info.input_name)

        for tag in gene.GENE_INFO_TAGS:
            self.assertIsNotNone(getattr(gene_info, tag))
    def handle_genes_input(self, data):
        self.Error.clear()
        self.__reset_widget_state()
        # clear output
        self.Outputs.matched_genes.send(None)
        # clear input values
        self.input_genes = []
        self.input_data = None
        self.tax_id = None
        self.use_attr_names = None
        self.gene_id_attribute = None
        self.gs_widget.clear()
        self.gs_widget.clear_gene_sets()
        self.update_info_box()

        if data:
            self.input_data = data
            self.tax_id = str(self.input_data.attributes.get(TAX_ID, None))
            self.use_attr_names = self.input_data.attributes.get(
                GENE_AS_ATTRIBUTE_NAME, None)
            self.gene_id_attribute = self.input_data.attributes.get(
                GENE_ID_ATTRIBUTE, None)
            self.gene_id_column = self.input_data.attributes.get(
                GENE_ID_COLUMN, None)
            self.update_info_box()

            if not (self.use_attr_names is not None and
                    ((self.gene_id_attribute is None) ^
                     (self.gene_id_column is None))):

                if self.tax_id is None:
                    self.Error.missing_annotation()
                    return

                self.Error.missing_gene_id()
                return

            elif self.tax_id is None:
                self.Error.missing_tax_id()
                return

            if self.__check_organism_mismatch():
                self.Error.organism_mismatch()
                return

            self.gs_widget.load_gene_sets(self.tax_id)
            self.gene_info = gene.GeneInfo(self.tax_id)

            # if input data change, we need to refresh custom sets
            if self.custom_data:
                self.gs_widget.clear_custom_sets()
                self.handle_custom_gene_sets()

            self.invalidate()
    def set_dataset(self, data=None):
        self.closeContext()
        self.clear()
        self.Error.clear()
        if data:
            self.input_data = data
            self.tax_id = str(self.input_data.attributes.get(TAX_ID, None))
            self.use_attr_names = self.input_data.attributes.get(
                GENE_AS_ATTRIBUTE_NAME, None)
            self.gene_id_attribute = self.input_data.attributes.get(
                GENE_ID_ATTRIBUTE, None)
            self.gene_id_column = self.input_data.attributes.get(
                GENE_ID_COLUMN, None)
            self.annotation_index = None

            if not (self.use_attr_names is not None and
                    ((self.gene_id_attribute is None) ^
                     (self.gene_id_column is None))):

                if self.tax_id is None:
                    self.Error.missing_annotation()
                    return

                self.Error.missing_gene_id()
                return

            elif self.tax_id is None:
                self.Error.missing_tax_id()
                return

            _c2i = {
                a.taxid: i
                for i, a in enumerate(self.available_annotations)
            }
            try:
                self.annotation_index = _c2i[self.tax_id]
            except KeyError:
                self.Error.serverfiles_unavailable()
                # raise ValueError('Taxonomy {} not supported.'.format(self.tax_id))
                return

            self.gene_info = gene.GeneInfo(self.tax_id)

            self.__invalidate()
def get_ncbi_info(taxid):
    return gene.GeneInfo(taxid)