Source code for dae.annotation.utils

import logging

from dae.annotation.annotation_config import (
    AnnotatorInfo,
)
from dae.annotation.annotation_pipeline import (
    AnnotationPipeline,
)
from dae.genomic_resources.gene_models.gene_models import (
    GeneModels,
)
from dae.genomic_resources.gene_models.gene_models_factory import (
    build_gene_models_from_resource_id,
)
from dae.genomic_resources.genomic_context import get_genomic_context
from dae.genomic_resources.reference_genome import (
    ReferenceGenome,
    build_reference_genome_from_resource_id,
)
from dae.genomic_resources.repository import (
    GenomicResourceRepo,
)

logger = logging.getLogger(__name__)


[docs] def find_annotator_gene_models( info: AnnotatorInfo, grr: GenomicResourceRepo, ) -> GeneModels: """Get gene models from the annotator info or genomic context.""" gene_models_resource_id = info.parameters.get("gene_models") if gene_models_resource_id is not None: logger.debug( "Gene models for %s taken from %s", info.type, gene_models_resource_id) return build_gene_models_from_resource_id( gene_models_resource_id, grr, ) gene_models = get_genomic_context().get_gene_models() if gene_models is None: raise ValueError( f"Can't create {info.type}: " f"gene models resource is missing in config " f"and context") return gene_models
[docs] def find_annotator_reference_genome( info: AnnotatorInfo, gene_models: GeneModels, pipeline: AnnotationPipeline, grr: GenomicResourceRepo, ) -> ReferenceGenome: """Get reference genome from the annotator info or genomic context.""" genome_resource_id = info.parameters.get("genome") or \ gene_models.reference_genome_id or \ (pipeline.preamble.input_reference_genome if pipeline.preamble is not None else None) genome: ReferenceGenome | None if genome_resource_id is not None: logger.debug( "Reference genome for %s taken from %s", info.type, genome_resource_id) return build_reference_genome_from_resource_id( genome_resource_id, grr) genome = get_genomic_context().get_reference_genome() if genome is None: raise ValueError( f"The {info} has no reference genome" " specified and no genome was found" " in the gene models' configuration," " the context or the annotation config's" " preamble.") return genome