class GeneNetworkDisease(db.Model): __tablename__ = 'gene_network_disease' id = db.Column(UUID(as_uuid=True), default=uuid4_string, primary_key=True) gene = db.Column(db.String(32), nullable=True) disease = db.Column(db.String(255), nullable=True) weight = db.Column(db.Float, nullable=True) dataset = db.Column(db.String(8), nullable=True)
class ExpressionRNASeqDisease(db.Model, MappingTableMixin): __tablename__ = 'expression_rna_seq_disease' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) gene = db.Column(db.String(128), nullable=True, index=True) ensembl_id = db.Column(db.String(128), nullable=True) age_related_macular_degeneration = db.Column(db.Float, nullable=True) diabetic_retinopathy = db.Column(db.Float, nullable=True) keratoconus = db.Column(db.Float, nullable=True) primary_open_angle_glaucoma = db.Column(db.Float, nullable=True) retinitis_pigmentosa = db.Column(db.Float, nullable=True) retinoblastoma = db.Column(db.Float, nullable=True) def to_json(self): result = { 'id': self.id, 'gene': self.gene, 'ensembl_id': self.ensembl_id, 'age_related_macular_degeneration': self.age_related_macular_degeneration, 'diabetic_retinopathy': self.diabetic_retinopathy, 'keratoconus': self.keratoconus, 'primary_open_angle_glaucoma': self.primary_open_angle_glaucoma, 'retinitis_pigmentosa': self.retinitis_pigmentosa, 'retinoblastoma': self.retinoblastoma, } return self.map_to_names(result) def to_json_analysis(self): result = { 'id': self.id, 'gene': self.gene, 'ensembl_id': self.ensembl_id, 'age_related_macular_degeneration': self.age_related_macular_degeneration, 'diabetic_retinopathy': self.diabetic_retinopathy, 'keratoconus': self.keratoconus, 'primary_open_angle_glaucoma': self.primary_open_angle_glaucoma, 'retinitis_pigmentosa': self.retinitis_pigmentosa, 'retinoblastoma': self.retinoblastoma, } return result @classmethod def column_mappings(cls): return { 'age_related_macular_degeneration': 'Age-related macular degeneration', 'diabetic_retinopathy': 'Diabetic retinopathy', 'keratoconus': 'Keratoconus', 'primary_open_angle_glaucoma': 'Primary open-angle glaucoma', 'retinitis_pigmentosa': 'Retinitis pigmentosa', 'retinoblastoma': 'Retinoblastoma', }
class ExpressionMicroarrayTissue(db.Model, MappingTableMixin): __tablename__ = 'expression_microarray_tissue' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) gene = db.Column(db.String(128), nullable=True, index=True) ensembl_id = db.Column(db.String(128), nullable=True) retina = db.Column(db.Float, nullable=True) corneal = db.Column(db.Float, nullable=True) corneal_epithelium = db.Column(db.Float, nullable=True) corneal_endothelium = db.Column(db.Float, nullable=True) conjunctiva = db.Column(db.Float, nullable=True) optic_nerve_head = db.Column(db.Float, nullable=True) lymphoblast = db.Column(db.Float, nullable=True) eye_orbit = db.Column(db.Float, nullable=True) lacrimal_gland = db.Column(db.Float, nullable=True) thyroid = db.Column(db.Float, nullable=True) normal_uveal_melanocytes = db.Column(db.Float, nullable=True) def to_json(self): result = { 'id': self.id, 'gene': self.gene, 'ensembl_id': self.ensembl_id, 'retina': self.retina, 'corneal': self.corneal, 'corneal_epithelium': self.corneal_epithelium, 'corneal_endothelium': self.corneal_endothelium, 'conjunctiva': self.conjunctiva, 'optic_nerve_head': self.optic_nerve_head, 'lymphoblast': self.lymphoblast, 'eye_orbit': self.eye_orbit, 'lacrimal_gland': self.lacrimal_gland, 'thyroid': self.thyroid, 'normal_uveal_melanocytes': self.normal_uveal_melanocytes, } return self.map_to_names(result) @classmethod def column_mappings(cls): return { 'retina': 'Retina', 'corneal': 'Corneal', 'corneal_epithelium': 'Corneal epithelium', 'corneal_endothelium': 'Corneal endothelium', 'conjunctiva': 'Conjunctiva', 'optic_nerve_head': 'Optic nerve head', 'lymphoblast': 'Lymphoblast', 'eye_orbit': 'Eye Orbit', 'lacrimal_gland': 'Lacrimal gland', 'thyroid': 'Thyroid', 'normal_uveal_melanocytes': 'Normal uveal melanocytes', }
class GeneTissueCorrect(db.Model): __tablename__ = 'gene_tissue_correct' id = db.Column(UUID(as_uuid=True), default=uuid4_string, primary_key=True) gene = db.Column(db.String(32), nullable=True) module = db.Column(db.String(32), nullable=True) kme = db.Column(db.String(32), nullable=True) tissue = db.Column(db.String(32), nullable=True) def to_json(self): return { 'gene': self.gene, 'module': self.module, 'kme': self.kme, }
class TissueGeneSignificance(db.Model): __tablename__ = 'tissue_gene_significance' id = db.Column(UUID(as_uuid=True), default=uuid4_string, primary_key=True) gene_symbol = db.Column(db.String(128), nullable=True) corneas = db.Column(db.Float, nullable=True) corneal_endothelial_cells = db.Column(db.Float, nullable=True) retina = db.Column(db.Float, nullable=True) retina_macula = db.Column(db.Float, nullable=True) retina_non_macula = db.Column(db.Float, nullable=True) rpe_macula = db.Column(db.Float, nullable=True) rpe_non_macula = db.Column(db.Float, nullable=True) retinal_endothelial_cells = db.Column(db.Float, nullable=True) ipsc_derived_retinal_organoids = db.Column(db.Float, nullable=True) trabecular_meshwork_cells = db.Column(db.Float, nullable=True) def to_json(self): return { 'id': self.id, 'gene_symbol': self.gene_symbol, 'corneas': self.corneas, 'corneal_endothelial_cells': self.corneal_endothelial_cells, 'retina': self.retina, 'retina_macula': self.retina_macula, 'retina_non_macula': self.retina_non_macula, 'rpe_macula': self.rpe_macula, 'rpe_non_macula': self.rpe_non_macula, 'retinal_endothelial_cells': self.retinal_endothelial_cells, 'ipsc_derived_retinal_organoids': self.ipsc_derived_retinal_organoids, 'trabecular_meshwork_cells': self.trabecular_meshwork_cells, }
class Gnomad(db.Model): __tablename__ = 'gnomad' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) chromosome = db.Column(db.String(2), nullable=True) scope = db.Column(db.String(16), nullable=True) variant = db.Column(db.String(16), nullable=True, index=True) territory = db.deferred(db.Column(JSONB, default={}, nullable=True)) def to_json(self): return { 'id': self.id, 'chromosome': self.chromosome, 'scope': self.scope, 'variant': self.variant, 'territory': self.territory, }
class GeneExpression(db.Model): __tablename__ = 'gene_expression' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) gene_id = db.Column(db.String(32), nullable=True) disease = db.Column(db.String(255), nullable=True) gene = db.Column(db.String(32), nullable=True, index=True) value = db.Column(db.Float, nullable=True) color = db.Column(db.String(50), nullable=True) def to_json(self): return { 'id': self.id, 'gene_id': self.gene_id, 'disease': self.disease, 'gene': self.gene, 'value': self.value or 0 }
class Epigenomics(db.Model): __tablename__ = 'epigenomics' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) file_url = db.Column(db.String(256), nullable=False) disease = db.Column(db.String(128), nullable=False) data_type = db.Column(db.String(16), nullable=False) def to_json(self, **kwargs): result = { 'id': self.id, 'url': self.file_url, 'disease': self.disease, 'data_type': self.data_type, 'data_key': self.disease + '/' + self.data_type, } result.update(kwargs) return result
class OutCell(db.Model): id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) name = db.Column(db.String(128), nullable=True) xaxis = db.Column(db.Float, nullable=True) yaxis = db.Column(db.Float, nullable=True) cluster = db.Column(db.String(4), nullable=True) labels = db.Column(db.String(64), nullable=True) cell_type = db.Column(db.String(32), nullable=True) def to_json(self): return { 'id': self.id, 'name': self.name, 'xaxis': self.xaxis, 'yaxis': self.yaxis, 'cluster': self.cluster, 'labels': self.labels, }
class Causality(db.Model): __tablename__ = 'causality' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) variant = db.Column(db.String(16), nullable=True, index=True) p_value = db.Column(db.Float, nullable=True) beta = db.Column(db.Float, nullable=True) disease = db.Column(db.String(255), nullable=True) color = db.Column(db.String(50), nullable=True) def to_json(self): return { 'id': self.id, 'variant': self.variant, 'p_value': self.p_value, 'beta': self.beta or 0, 'disease': self.disease, 'color': self.color }
class Summary(db.Model): __tablename__ = 'summary' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) snpid = db.Column(db.String(32), nullable=True) position_hg38 = db.Column(db.String(32), nullable=True) major_allele = db.Column(db.String(1024), nullable=True) variant = db.Column(db.String(128), nullable=True) protein = db.Column(db.String(64), nullable=True) polyphen = db.Column(db.String(32), nullable=True) cadd = db.Column(db.String(32), nullable=True) sift = db.Column(db.String(32), nullable=True) gerp = db.Column(db.String(32), nullable=True) gene = db.Column(db.String(128), nullable=True) ensembl = db.Column(db.Text, nullable=True) dbsnp = db.Column(db.Text, nullable=True) gnomad = db.Column(db.Text, nullable=True) def to_json(self): return { 'id': self.id, 'snpid': self.snpid, 'position_hg38': self.position_hg38, 'major_allele': self.major_allele, 'variant': self.variant, 'protein': self.protein, 'polyphen': self.polyphen, 'cadd': self.cadd, 'sift': self.sift, 'gerp': self.gerp, 'gene': self.gene, 'ensembl': self.ensembl, 'dbsnp': self.dbsnp, 'gnomad': self.gnomad, } def to_list(self): return { 'id': self.id, 'name': self.snpid, }
class CornealEndothelialCells(db.Model): __tablename__ = 'corneal_endothelial_cells' id = db.Column(Integer, primary_key=True, autoincrement=True) gene = db.Column(db.String(32), nullable=True) contrast_gene = db.Column(db.String(32), nullable=True) weight = db.Column(db.Float, nullable=True) def to_json(self): return { 'gene': self.gene, 'contrast_gene': self.contrast_gene, 'weight': self.weight } def to_reverse_json(self): return { 'gene': self.contrast_gene, 'contrast_gene': self.gene, 'weight': self.weight }
class Retinoblastoma(db.Model): __tablename__ = 'retinoblastoma' id = db.Column(Integer, primary_key=True, autoincrement=True) gene = db.Column(db.String(32), nullable=True) contrast_gene = db.Column(db.String(32), nullable=True) weight = db.Column(db.Float, nullable=True) def to_json(self): return { 'gene': self.gene, 'contrast_gene': self.contrast_gene, 'weight': self.weight } def to_reverse_json(self): return { 'gene': self.contrast_gene, 'contrast_gene': self.gene, 'weight': self.weight }
class AgeRelatedMacularDegeneration(db.Model): __tablename__ = 'age_related_macular_degeneration' id = db.Column(Integer, primary_key=True, autoincrement=True) gene = db.Column(db.String(32), nullable=True) contrast_gene = db.Column(db.String(32), nullable=True) weight = db.Column(db.Float, nullable=True) def to_json(self): return { 'gene': self.gene, 'contrast_gene': self.contrast_gene, 'weight': self.weight } def to_reverse_json(self): return { 'gene': self.contrast_gene, 'contrast_gene': self.gene, 'weight': self.weight }
class DiseaseGo(db.Model): __tablename__ = 'disease_go' id = db.Column(UUID(as_uuid=True), default=uuid4_string, primary_key=True) disease = db.Column(db.String(255), nullable=True) dataset = db.Column(db.String(8), nullable=True) category = db.Column(db.String(128), nullable=True) term = db.Column(db.Text, nullable=True) count = db.Column(db.Integer, nullable=True) percent = db.Column(db.Float, nullable=True) p_value = db.Column(db.Float, nullable=True) genes = db.Column(db.Text, nullable=True) list_total = db.Column(db.Integer, nullable=True) pop_hits = db.Column(db.Integer, nullable=True) pop_total = db.Column(db.Integer, nullable=True) fold_enrichment = db.Column(db.Float, nullable=True) bonferroni = db.Column(db.Float, nullable=True) benjamini = db.Column(db.Float, nullable=True) fdr = db.Column(db.Float, nullable=True) def to_json(self): return { 'id': self.id, 'disease': self.disease, 'dataset': self.dataset, 'category': self.category, 'term': self.term, 'count': self.count, 'percent': self.percent, 'p_value': self.p_value, 'genes': self.genes, 'list_total': self.list_total, 'pop_hits': self.pop_hits, 'pop_total': self.pop_total, 'fold_enrichment': round(self.fold_enrichment, 2), 'bonferroni': self.bonferroni, 'benjamini': self.benjamini, 'fdr': round(self.fdr, 2) }
class MarkersCell(db.Model): id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) gene = db.Column(db.String(128), nullable=True) cluster = db.Column(db.Integer, nullable=True) labels = db.Column(db.String(128), nullable=True) p_val = db.Column(db.Float, nullable=True) avg = db.Column(db.Float, nullable=True) p_val_adj = db.Column(db.Float, nullable=True) pct1 = db.Column(db.Float, nullable=True) pct2 = db.Column(db.Float, nullable=True) cell_type = db.Column(db.String(32), nullable=True) def to_json(self): return { 'id': self.id, 'gene': self.gene, 'cluster': self.cluster, 'labels': self.labels, 'p_val': self.p_val, 'avg_logFC': self.avg, 'p_val_adj': self.p_val_adj, 'pct.1': self.pct1, 'pct.2': self.pct2, }
class EpigeneticAlteration(db.Model): __tablename__ = 'epigenetic_alteration' id = db.Column(UUID(as_uuid=True), default=uuid4_string, primary_key=True) gene = db.Column(db.String(128), nullable=True, index=True) normal_retina = db.Column(db.Float, nullable=True) amd_retina = db.Column(db.Float, nullable=True) normal_rpe = db.Column(db.Float, nullable=True) amd_rpe = db.Column(db.Float, nullable=True) def to_json(self): return { 'gene': self.gene, 'normal_retina': self.normal_retina, 'amd_retina': self.amd_retina, 'normal_rpe': self.normal_retina, 'amd_rpe': self.amd_rpe }
class GeneDiseaseSignificance(db.Model): __tablename__ = 'gene_disease_significance' id = db.Column(UUID(as_uuid=True), default=uuid4_string, primary_key=True) gene = db.Column(db.String(32), nullable=True) amd = db.Column(db.Float, nullable=True) dr = db.Column(db.Float, nullable=True) kc = db.Column(db.Float, nullable=True) glc = db.Column(db.Float, nullable=True) rp = db.Column(db.Float, nullable=True) rb = db.Column(db.Float, nullable=True) def to_json(self): return { 'id': self.id, 'gene': self.gene, 'amd': self.amd, 'dr': self.dr, 'kc': self.kc, 'glc': self.glc, 'rp': self.rp, 'rb': self.rb }
class ExpressionRNASeqTissue(db.Model, MappingTableMixin): __tablename__ = 'expression_rna_seq_tissue' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) gene = db.Column(db.String(128), nullable=True, index=True) ensembl_id = db.Column(db.String(128), nullable=True) corneas = db.Column(db.Float, nullable=True) corneal_endothelial_cells = db.Column(db.Float, nullable=True) retina = db.Column(db.Float, nullable=True) retina_macula = db.Column(db.Float, nullable=True) retina_non_macula = db.Column(db.Float, nullable=True) rpe_macula = db.Column(db.Float, nullable=True) rpe_non_macula = db.Column(db.Float, nullable=True) retinal_endothelial_cells = db.Column(db.Float, nullable=True) ipsc_derived_retinal_organoids = db.Column(db.Float, nullable=True) trabecular_meshwork_cells = db.Column(db.Float, nullable=True) def to_json(self): result = { 'id': self.id, 'gene': self.gene, 'ensembl_id': self.ensembl_id, 'corneas': self.corneas, 'corneal_endothelial_cells': self.corneal_endothelial_cells, 'retina': self.retina, 'retina_macula': self.retina_macula, 'retina_non_macula': self.retina_non_macula, 'rpe_macula': self.rpe_macula, 'rpe_non_macula': self.rpe_non_macula, 'retinal_endothelial_cells': self.retinal_endothelial_cells, 'ipsc_derived_retinal_organoids': self.ipsc_derived_retinal_organoids, 'trabecular_meshwork_cells': self.trabecular_meshwork_cells, } return self.map_to_names(result) def to_json_analysis(self): result = { 'id': self.id, 'gene': self.gene, 'ensembl_id': self.ensembl_id, 'corneas': self.corneas, 'corneal_endothelial_cells': self.corneal_endothelial_cells, 'retina': self.retina, 'retina_macula': self.retina_macula, 'retina_non_macula': self.retina_non_macula, 'rpe_macula': self.rpe_macula, 'rpe_non_macula': self.rpe_non_macula, 'retinal_endothelial_cells': self.retinal_endothelial_cells, 'ipsc_derived_retinal_organoids': self.ipsc_derived_retinal_organoids, 'trabecular_meshwork_cells': self.trabecular_meshwork_cells, } return result @classmethod def column_mappings(cls): return { 'corneas': 'Corneas', 'corneal_endothelial_cells': 'Corneal endothelial cells', 'retina': 'Retina', 'retina_macula': 'Retina macula', 'retina_non_macula': 'Retina non-macula', 'rpe_macula': 'RPE macula', 'rpe_non_macula': 'RPE non-macula', 'retinal_endothelial_cells': 'Retinal endothelial cells', 'ipsc_derived_retinal_organoids': 'iPSC-derived retinal organoids', 'trabecular_meshwork_cells': 'Trabecular meshwork cells', }
class ExpressionMouse(db.Model, MappingTableMixin): __tablename__ = 'expression_mouse' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) gene = db.Column(db.String(128), nullable=True) human = db.Column(db.String(255), nullable=True) e10_5 = db.Column(db.Float, nullable=True) e11_5 = db.Column(db.Float, nullable=True) e12_5 = db.Column(db.Float, nullable=True) e13_5 = db.Column(db.Float, nullable=True) web1_e10_5__12_5 = db.Column(db.Float, nullable=True) web2_e11_5__13_5 = db.Column(db.Float, nullable=True) p8_a = db.Column(db.Float, nullable=True) p8_b = db.Column(db.Float, nullable=True) p12_a = db.Column(db.Float, nullable=True) p12_b = db.Column(db.Float, nullable=True) p20_a = db.Column(db.Float, nullable=True) p20_b = db.Column(db.Float, nullable=True) p42_a = db.Column(db.Float, nullable=True) p42_b = db.Column(db.Float, nullable=True) p52_a = db.Column(db.Float, nullable=True) p52_b = db.Column(db.Float, nullable=True) web_p10_11_12_a = db.Column(db.Float, nullable=True) web_p10_11_12_b = db.Column(db.Float, nullable=True) def to_json(self): result = { 'id': self.id, 'gene': self.gene, 'human': self.human, 'e10_5': self.e10_5, 'e11_5': self.e11_5, 'e12_5': self.e12_5, 'e13_5': self.e13_5, 'web1_e10_5__12_5': self.web1_e10_5__12_5, 'web2_e11_5__13_5': self.web2_e11_5__13_5, 'p8_a': self.p8_a, 'p8_b': self.p8_b, 'p12_a': self.p12_a, 'p12_b': self.p12_b, 'p20_a': self.p20_a, 'p20_b': self.p20_b, 'p42_a': self.p42_a, 'p42_b': self.p42_b, 'p52_a': self.p52_a, 'p52_b': self.p52_b, 'web_p10_11_12_a': self.web_p10_11_12_a, 'web_p10_11_12_b': self.web_p10_11_12_b, } return self.map_to_names(result) @classmethod def column_mappings(cls): return { 'e10_5': 'E10.5', 'e11_5': 'E11.5', 'e12_5': 'E12.5', 'e13_5': 'E13.5', 'web1_e10_5__12_5': 'WEB1(E10.5-12.5)', 'web2_e11_5__13_5': 'WEB2(E11.5-13.5)', 'p8_a': 'P8_A', 'p8_b': 'P8_B', 'p12_a': 'P12_A', 'p12_b': 'P12_B', 'p20_a': 'P20_A', 'p20_b': 'P20_B', 'p42_a': 'P42_A', 'p42_b': 'P42_B', 'p52_a': 'P52_A', 'p52_b': 'P52_B', 'web_p10_11_12_a': 'WEB(P10_11_12_A)', 'web_p10_11_12_b': 'WEB(P10_11_12_B)', }
class GeneticGWAS(db.Model): __tablename__ = 'genetic_gwas' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) gene_id = db.Column(db.String(16), nullable=True) chromosome = db.Column(db.String(2), nullable=True) scope = db.Column(db.String(16), nullable=True) gene = db.Column(db.String(32), nullable=True) variant = db.Column(db.String(255), nullable=True) major_allele = db.Column(db.String(32), nullable=True) minor_allele = db.Column(db.String(128), nullable=True) band = db.Column(db.String(32), nullable=True) ensembl = db.Column(db.String(255), nullable=True) p_value = db.Column(db.Float, nullable=True) beta = db.Column(db.Float, nullable=True) context = db.Column(db.String(128), nullable=True) cadd = db.Column(db.String(32), nullable=True) polyphen = db.Column(db.String(32), nullable=True) sift = db.Column(db.String(32), nullable=True) phylop = db.Column(db.String(32), nullable=True) study = db.Column(db.Text, nullable=True) initial_sample_size = db.Column(db.Text, nullable=True) peplication_sample_size = db.Column(db.Text, nullable=True) disease = db.Column(db.String(255), nullable=True, index=True) pubmed = db.Column(db.String(255), nullable=True) drug = db.Column(db.String(32), nullable=True) def to_variant(self): return {'id': self.variant, 'name': self.variant, 'type': 'variant'} def to_json(self): return { 'id': self.id, 'gene_id': self.gene_id, 'chromosome': self.chromosome, 'scope': self.scope, 'variant_': self.variant, 'gene': self.gene, 'major_allele': self.major_allele, 'minor_allele': self.minor_allele, 'band': self.band, 'ensembl': self.ensembl, 'p_value': self.p_value, 'beta': self.beta, 'context': self.context, 'cadd': self.cadd, 'polyphen': self.polyphen, 'sift': self.sift, 'phylop': self.phylop, 'study': self.study, 'initial_sample_size': self.initial_sample_size, 'peplication_sample_size': self.peplication_sample_size, 'disease': self.disease, 'pubmed': self.pubmed, } def to_json_disease(self): return { 'gene_id': self.gene_id, 'symbol': self.gene, 'band': self.band, 'variants': self.variant, 'position_hg38': self.ensembl.lower(), 'major_allele': self.major_allele, 'minor_allele': self.minor_allele, 'p_value': self.p_value, 'beta': self.beta, 'context': self.context, 'cadd': self.cadd, 'initial': self.initial_sample_size, 'peplication': self.peplication_sample_size, 'pubmed': self.pubmed, 'disease': self.disease, }
class GeneticOMIM(db.Model): __tablename__ = 'genetic_omim' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) gene_id = db.Column(db.String(32), nullable=True) gene = db.Column(db.String(32), nullable=True) gene_name = db.Column(db.String(128), nullable=True) variant = db.Column(db.String(255), nullable=True) summary = db.Column(db.Text, nullable=True) band = db.Column(db.String(32), nullable=True) omim = db.Column(db.String(16), nullable=True) ensembl = db.Column(db.String(128), nullable=True) synonyms = db.Column(db.String(128), nullable=True) location = db.Column(db.Text, nullable=True) clinvar = db.Column(db.Text, nullable=True) decipher = db.Column(db.Text, nullable=True) gnomad = db.Column(db.Text, nullable=True) pubmed = db.Column(db.Text, nullable=True) disease = db.Column(db.String(255), nullable=True, index=True) disease_omim = db.Column(db.String(16), nullable=True) confidence = db.Column(db.String(32), nullable=True) publications = db.Column(db.Text, nullable=True) phenotypes_in_omim = db.Column(db.Text, nullable=True) phenotypes_in_hpo = db.Column(db.String(128), nullable=True) drug = db.Column(db.String(32), nullable=True) def to_json(self): return { 'id': self.id, 'gene_id': self.gene_id, 'gene': self.gene, 'gene_name': self.gene_name, 'variant': self.variant, 'summary': self.summary, 'band': self.band, 'omim': self.omim, 'ensembl': self.ensembl, 'synonyms': self.synonyms, 'location': self.location, 'clinvar': self.clinvar, 'decipher': self.decipher, 'gnomad': self.gnomad, 'disease': self.disease, 'pubmed': self.pubmed, 'disease_omim': self.disease_omim, 'confidence': self.confidence, 'publications': self.publications, 'phenotypes_in_omim': self.phenotypes_in_omim, 'phenotypes_in_hpo': self.phenotypes_in_hpo, } def to_json_disease(self): return { "gene_id": self.gene_id, "symbol": self.gene, "band": self.band, "name": self.gene_name, "variants": self.variant, "ensembl": self.ensembl, "omim": self.omim, 'phenotype': self.phenotypes_in_omim, "confidence": self.confidence, 'pubmed': self.pubmed, 'disease': self.disease, }
class Gene(db.Model): __tablename__ = 'gene' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) symbol = db.Column(db.String(32), nullable=True) name = db.Column(db.String(128), nullable=True) synonyms = db.Column(db.String(255), nullable=True) gene_type = db.Column(db.String(128), nullable=True) location = db.Column(db.Text, nullable=True) strand = db.Column(db.String(32), nullable=True) description = db.Column(db.Text, nullable=True) omim = db.Column(db.String(16), nullable=True) ensembl = db.Column(db.String(32), nullable=True) clinvar = db.Column(db.String(128), nullable=True) decipher = db.Column(db.String(128), nullable=True) gnomad = db.Column(db.String(128), nullable=True) panelapp = db.Column(db.String(128), nullable=True) eye_disease = db.Column(db.Text, nullable=True) phenotypes = db.Column(db.Text, nullable=True) drugbank_id = db.Column(db.Text, nullable=True) drug_target = db.Column(db.Text, nullable=True) def to_list(self): return { 'id': self.id, 'name': self.symbol, } def to_json(self): return { 'id': self.id, 'symbol': self.symbol, 'ensembl': self.ensembl, 'synonyms': self.synonyms, 'location': self.location_split(), 'clinvar': self.clinvar, 'decipher': self.decipher, 'gnomad': self.gnomad, 'panelapp': self.panelapp, 'description': self.description, 'drug_target': self.drug_target_obj(), 'drugbank_id': self.drugbank_id, 'eye_disease': self.eye_disease, 'gene_type': self.gene_type, 'name': self.name, 'omim': self.omim, 'phenotypes': self.hpo_phenotypes_obj(), 'strand': self.strand, } def location_split(self): rs = self.location.split("(GRCh38/hg38)") rs[0] = rs[0] + "(GRCh38/hg38)" return rs def drug_target_obj(self): if not self.drug_target: return [] def to_to_group(a): g_value, g_name = a.split(':') return {'value': g_value, 'name': g_name} result = [to_to_group(c) for c in (self.drug_target.split(';')[0:-1])] return result def hpo_phenotypes_obj(self): if not self.phenotypes: return [] def to_group(a): disease, ref_id, color = OMIM_GROUP_PATTERN.match(a).groups() return {'name': disease, 'omim': ref_id, 'color': color} result = [to_group(c) for c in (self.phenotypes.split(';')[0:-1])] return sorted(result, key=lambda t: t['color'] if t['color'] != 'grey' else 'z')
class ExpressionMicroarrayDisease(db.Model, MappingTableMixin): __tablename__ = 'expression_microarray_disease' id = db.Column(UUID(as_uuid=False), default=uuid4_string, primary_key=True) gene = db.Column(db.String(128), nullable=True, index=True) ensembl_id = db.Column(db.String(128), nullable=True) retinal_detachment = db.Column(db.Float, nullable=True) diabetic_retinopathy = db.Column(db.Float, nullable=True) retinoblastoma = db.Column(db.Float, nullable=True) retinitis_pigmentosa = db.Column(db.Float, nullable=True) keratoconus = db.Column(db.Float, nullable=True) keratitis = db.Column(db.Float, nullable=True) trachoma = db.Column(db.Float, nullable=True) glaucoma = db.Column(db.Float, nullable=True) fuchs_endothelial_corneal_dystrophy = db.Column(db.Float, nullable=True) uveal_melanoma = db.Column(db.Float, nullable=True) uveal_melanoma_mum2b = db.Column(db.Float, nullable=True) uveal_melanoma_ocm1a = db.Column(db.Float, nullable=True) graves_ophthalmopathy = db.Column(db.Float, nullable=True) nonspecific_orbital_inflammation = db.Column(db.Float, nullable=True) sarcoidosis = db.Column(db.Float, nullable=True) granulomatosis_with_polyangiitis = db.Column(db.Float, nullable=True) thyroid_eye_disease = db.Column(db.Float, nullable=True) def to_json(self): result = { 'id': self.id, 'gene': self.gene, 'ensembl_id': self.ensembl_id, 'retinal_detachment': self.retinal_detachment, 'diabetic_retinopathy': self.diabetic_retinopathy, 'retinoblastoma': self.retinoblastoma, 'retinitis_pigmentosa': self.retinitis_pigmentosa, 'keratoconus': self.keratoconus, 'keratitis': self.keratitis, 'trachoma': self.trachoma, 'glaucoma': self.glaucoma, 'fuchs_endothelial_corneal_dystrophy': self.fuchs_endothelial_corneal_dystrophy, 'uveal_melanoma': self.uveal_melanoma, 'uveal_melanoma_mum2b': self.uveal_melanoma_mum2b, 'uveal_melanoma_ocm1a': self.uveal_melanoma_ocm1a, 'graves_ophthalmopathy': self.graves_ophthalmopathy, 'nonspecific_orbital_inflammation': self.nonspecific_orbital_inflammation, 'sarcoidosis': self.sarcoidosis, 'granulomatosis_with_polyangiitis': self.granulomatosis_with_polyangiitis, 'thyroid_eye_disease': self.thyroid_eye_disease, } return self.map_to_names(result) @classmethod def column_mappings(cls): return { 'retinal_detachment': "Retinal detachment", 'diabetic_retinopathy': "Diabetic retinopathy", 'retinoblastoma': "Retinoblastoma", 'retinitis_pigmentosa': "Retinitis pigmentosa", 'keratoconus': "Keratoconus", 'keratitis': "Keratitis", 'trachoma': "Trachoma", 'glaucoma': "Glaucoma", 'fuchs_endothelial_corneal_dystrophy': "Fuchs' endothelial corneal dystrophy", 'uveal_melanoma': "Uveal melanoma", 'uveal_melanoma_mum2b': "Uveal melanoma MUM2B", 'uveal_melanoma_ocm1a': "Uveal melanoma OCM1A", 'graves_ophthalmopathy': "Graves' ophthalmopathy", 'nonspecific_orbital_inflammation': "Nonspecific orbital inflammation", 'sarcoidosis': "Sarcoidosis", 'granulomatosis_with_polyangiitis': "Granulomatosis with polyangiitis", 'thyroid_eye_disease': "Thyroid eye disease", }