Source code for gain.genomic_resources.gene_models.to_gpf_gene_models_format

import argparse
import sys

from gain.genomic_resources.gene_models.gene_models_factory import (
    build_gene_models_from_file,
)
from gain.genomic_resources.gene_models.serialization import (
    save_as_default_gene_models,
)


def _build_argument_parser() -> argparse.ArgumentParser:
    """Create the command line parser of the tool."""
    parser = argparse.ArgumentParser(
        description="Convert gene models to default GPF gene models format")

    parser.add_argument(
        "input_gene_models",
        help="input gene models file",
        type=str,
    )
    parser.add_argument(
        "output_gene_models",
        help="output gene models file",
        type=str,
    )
    parser.add_argument(
        "--gm-format",
        help="gene models format (refseq, ccds or knowngene)",
        type=str,
    )
    parser.add_argument(
        "--gm-names",
        help="gene names mapping file [type None for no mapping]",
        default=None,
        type=str,
    )
    parser.add_argument(
        "--chrom-mapping",
        help="chromosome names mapping file",
        type=str,
        default=None,
    )
    return parser


[docs] def main(argv: list[str] | None = None) -> None: """Convert gene models to default GPF gene models format.""" if argv is None: argv = sys.argv[1:] parser = _build_argument_parser() args = parser.parse_args(argv) gene_models = build_gene_models_from_file( args.input_gene_models, file_format=args.gm_format, gene_mapping_file_name=args.gm_names, chrom_mapping_file_name=args.chrom_mapping, ) gene_models.load() save_as_default_gene_models(gene_models, args.output_gene_models)