Source code for aigct.db_model

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] auc = Column(Float)
[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] auc = Column(Float)
[docs] num_positive = Column(Integer)
[docs] num_negative = Column(Integer)
[docs] source = relationship("VariantEffectSource", back_populates="gene_aucs")