Пример #1
0
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)
Пример #2
0
class AppConfig(db.Model):
    __tablename__ = 'app_config'

    key = db.Column(db.Text(), primary_key=True)
    value = db.Column(JSONB(), nullable=True)

    @classmethod
    def get_config_value(cls, key):
        config = db.session.query(cls).get(key)
        return config.value if config else None
Пример #3
0
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',
        }
Пример #4
0
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,
        }
Пример #5
0
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,
        }
Пример #6
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
Пример #7
0
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
        }
Пример #8
0
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
        }
Пример #9
0
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
        }
Пример #10
0
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,
        }
Пример #11
0
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,
        }
Пример #12
0
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
        }
Пример #13
0
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
        }
Пример #14
0
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
        }
Пример #15
0
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
        }
Пример #16
0
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,
        }
Пример #17
0
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',
        }
Пример #18
0
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,
        }
Пример #19
0
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,
        }
Пример #20
0
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)',
        }
Пример #21
0
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",
        }
Пример #22
0
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',
        }
Пример #23
0
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)
        }
Пример #24
0
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')
Пример #25
0
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,
        }