Source code for dae.tools.generate_denovo_gene_sets

import argparse
import logging
import sys

from dae.gpf_instance.gpf_instance import GPFInstance
from dae.utils.verbosity_configuration import VerbosityConfiguration

logger = logging.getLogger("generate_denovo_gene_sets")


[docs] def main( argv: list[str] | None = None, *, gpf_instance: GPFInstance | None = None, ) -> None: """Generate denovo gene sets CLI.""" description = "Generate genovo gene sets tool" parser = argparse.ArgumentParser(description=description) VerbosityConfiguration.set_arguments(parser) parser.add_argument( "--show-studies", help="This option will print available " "genotype studies and groups names", default=False, action="store_true", ) parser.add_argument( "--studies", help="Specify genotype studies and groups " "names for generating denovo gene sets. Default to all.", default=None, action="store", ) parser.add_argument( "--force", help="Force generation of denovo gene sets even if they are already " "cached.", default=False, action="store_true", ) if argv is None: argv = sys.argv[1:] args = parser.parse_args(argv) VerbosityConfiguration.set(args) if gpf_instance is None: gpf_instance = GPFInstance.build() denovo_gene_sets_db = gpf_instance.denovo_gene_sets_db if args.show_studies: for study_id in denovo_gene_sets_db.get_genotype_data_ids(): logger.warning("study with denovo gene sets: %s", study_id) else: if args.studies: filtered_study_ids = None studies = args.studies.split(",") else: studies = gpf_instance.get_genotype_data_ids() filtered_study_ids = [ study_id for study_id in denovo_gene_sets_db.get_genotype_data_ids() if study_id in studies ] logger.info( "generating de Novo gene sets for studies: %s", filtered_study_ids) # pylint: disable=protected-access denovo_gene_sets_db.build_cache( filtered_study_ids, force=args.force)