from sqlalchemy import Column, String, Float, Integer, ForeignKey
from sqlalchemy.orm import DeclarativeBase, relationship
[docs]
class Base(DeclarativeBase):
pass
[docs]
class VariantEffectSource(Base):
[docs]
__tablename__ = "variant_effect_source"
[docs]
code = Column(String(20), primary_key=True)
[docs]
name = Column(String(100), nullable=False)
[docs]
source_type = Column(String(20))
[docs]
description = Column(String(500))
[docs]
task_aucs = relationship("VariantEffectTaskAuc", back_populates="source")
[docs]
gene_aucs = relationship("VariantEffectGeneAuc", back_populates="source")
[docs]
class VariantEffectTaskAuc(Base):
[docs]
__tablename__ = "variant_effect_task_auc"
[docs]
task_code = Column(String(15), primary_key=True)
[docs]
score_source = Column(
String(20), ForeignKey("variant_effect_source.code"), primary_key=True
)
[docs]
num_positive = Column(Integer)
[docs]
num_negative = Column(Integer)
[docs]
source = relationship("VariantEffectSource", back_populates="task_aucs")
[docs]
class VariantEffectGeneAuc(Base):
[docs]
__tablename__ = "variant_effect_gene_auc"
[docs]
task_code = Column(String(15), primary_key=True)
[docs]
score_source = Column(
String(20), ForeignKey("variant_effect_source.code"), primary_key=True
)
[docs]
gene_symbol = Column(String(20), primary_key=True)
[docs]
num_positive = Column(Integer)
[docs]
num_negative = Column(Integer)
[docs]
source = relationship("VariantEffectSource", back_populates="gene_aucs")