Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ref validator refactoring #77

Merged
merged 14 commits into from
Sep 19, 2024
4 changes: 1 addition & 3 deletions bedboss/refgenome_validator/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
from bedboss.refgenome_validator.genome_model import GenomeModel
from bedboss.refgenome_validator.refgenomevalidator import RefValidator

# __all__ = ["GenomeModel"]
from bedboss.refgenome_validator.refgenomevalidator import ReferenceValidator
47 changes: 47 additions & 0 deletions bedboss/refgenome_validator/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
from pydantic import BaseModel, ConfigDict
from typing import Union


class ChromNameStats(BaseModel):
xs: float = 0.0
q_and_m: float = 0.0
q_and_not_m: float = 0.0
not_q_and_m: float = 0.0
jaccard_index: float = 0.0
jaccard_index_binary: float = 0.0
passed_chrom_names: bool = False


class ChromLengthStats(BaseModel):
oobr: Union[float, None] = None
beyond_range: bool = False
num_of_chrom_beyond: int = 0
percentage_bed_chrom_beyond: float = 0.0
percentage_genome_chrom_beyond: float = 0.0


class SequenceFitStats(BaseModel):
sequence_fit: Union[float, None] = None


class RatingModel(BaseModel):
assigned_points: int
tier_ranking: int
# model_config = ConfigDict(extra="forbid")


class CompatibilityStats(BaseModel):
chrom_name_stats: ChromNameStats
chrom_length_stats: ChromLengthStats
chrom_sequence_fit_stats: SequenceFitStats
igd_stats: Union[dict, None] = None
compatibility: Union[RatingModel, None] = None

model_config = ConfigDict(extra="forbid")


class CompatibilityConcise(BaseModel):
xs: float = 0.0
oobr: Union[float, None] = None
sequence_fit: Union[float, None] = None
compatibility: Union[RatingModel, None] = None
Loading