Source code for bioblend.galaxy.genomes

"""
Contains possible interactions with the Galaxy Histories
"""

from typing import (
    Any,
    Dict,
    Literal,
    Optional,
    TYPE_CHECKING,
)

from bioblend.galaxy.client import Client

if TYPE_CHECKING:
    from bioblend.galaxy import GalaxyInstance


[docs] class GenomeClient(Client): module = "genomes" def __init__(self, galaxy_instance: "GalaxyInstance") -> None: super().__init__(galaxy_instance)
[docs] def get_genomes(self) -> list: """ Returns a list of installed genomes :rtype: list :return: List of installed genomes """ genomes = self._get() return genomes
[docs] def show_genome( self, id: str, num: Optional[str] = None, chrom: Optional[str] = None, low: Optional[str] = None, high: Optional[str] = None, ) -> Dict[str, Any]: """ Returns information about build <id> :type id: str :param id: Genome build ID to use :type num: str :param num: num :type chrom: str :param chrom: chrom :type low: str :param low: low :type high: str :param high: high :rtype: dict :return: Information about the genome build """ params: Dict[str, str] = {} if num: params["num"] = num if chrom: params["chrom"] = chrom if low: params["low"] = low if high: params["high"] = high return self._get(id=id, params=params)
[docs] def install_genome( self, func: Literal["download", "index"] = "download", source: Optional[str] = None, dbkey: Optional[str] = None, ncbi_name: Optional[str] = None, ensembl_dbkey: Optional[str] = None, url_dbkey: Optional[str] = None, indexers: Optional[list] = None, ) -> Dict[str, Any]: """ Download and/or index a genome. :type func: str :param func: Allowed values: 'download', Download and index; 'index', Index only :type source: str :param source: Data source for this build. Can be: UCSC, Ensembl, NCBI, URL :type dbkey: str :param dbkey: DB key of the build to download, ignored unless 'UCSC' is specified as the source :type ncbi_name: str :param ncbi_name: NCBI's genome identifier, ignored unless NCBI is specified as the source :type ensembl_dbkey: str :param ensembl_dbkey: Ensembl's genome identifier, ignored unless Ensembl is specified as the source :type url_dbkey: str :param url_dbkey: DB key to use for this build, ignored unless URL is specified as the source :type indexers: list :param indexers: POST array of indexers to run after downloading (indexers[] = first, indexers[] = second, ...) :rtype: dict :return: dict( status: 'ok', job: <job ID> ) If error: dict( status: 'error', error: <error message> ) """ payload: Dict[str, Any] = {} if source: payload["source"] = source if func: payload["func"] = func if dbkey: payload["dbkey"] = dbkey if ncbi_name: payload["ncbi_name"] = ncbi_name if ensembl_dbkey: payload["ensembl_dbkey"] = ensembl_dbkey if url_dbkey: payload["url_dbkey"] = url_dbkey if indexers: payload["indexers"] = indexers return self._post(payload)