Method to query :class:`pyhgnc.manager.models.OrthologyPrediction`

        :param int ortholog_species: NCBI taxonomy identifier
        :param str human_entrez_gene: Entrez gene identifier
        :param str human_ensembl_gene: Ensembl identifier
        :param str human_name: human gene name
        :param str human_symbol: human gene symbol
        :param str human_chr: human chromosome
        :param str human_assert_ids:
        :param str ortholog_species_entrez_gene: Entrez gene identifier for ortholog
        :param str ortholog_species_ensembl_gene: Ensembl gene identifier for ortholog
        :param str ortholog_species_db_id: Species specific database identifier (e.g. MGI:1920453)
        :param str ortholog_species_name: gene name of ortholog
        :param str ortholog_species_symbol: gene symbol of ortholog
        :param str ortholog_species_chr: chromosome identifier (ortholog)
        :param str ortholog_species_assert_ids:
        :param str support:
        :param int hgnc_identifier: HGNC identifier
        :param str hgnc_symbol: HGNC symbol

        :param limit:
            - if `isinstance(limit,int)==True` -> limit
            - if `isinstance(limit,tuple)==True` -> format:= tuple(page_number, results_per_page)
            - if limit == None -> all results
        :type limit: int or tuple(int) or None

        :param bool as_df: if `True` results are returned as :class:`pandas.DataFrame`

        :return:
            - if `as_df == False` -> list(:class:`.models.Keyword`)
            - if `as_df == True`  -> :class:`pandas.DataFrame`
        :rtype: list(:class:`.models.Keyword`) or :class:`pandas.DataFrame`

def orthology_prediction(self,
                             ortholog_species=None,
                             human_entrez_gene=None,
                             human_ensembl_gene=None,
                             human_name=None,
                             human_symbol=None,
                             human_chr=None,
                             human_assert_ids=None,
                             ortholog_species_entrez_gene=None,
                             ortholog_species_ensembl_gene=None,
                             ortholog_species_db_id=None,
                             ortholog_species_name=None,
                             ortholog_species_symbol=None,
                             ortholog_species_chr=None,
                             ortholog_species_assert_ids=None,
                             support=None,
                             hgnc_identifier=None,
                             hgnc_symbol=None,
                             limit=None,
                             as_df=False):
        """Method to query :class:`pyhgnc.manager.models.OrthologyPrediction`

        :param int ortholog_species: NCBI taxonomy identifier
        :param str human_entrez_gene: Entrez gene identifier
        :param str human_ensembl_gene: Ensembl identifier
        :param str human_name: human gene name
        :param str human_symbol: human gene symbol
        :param str human_chr: human chromosome
        :param str human_assert_ids:
        :param str ortholog_species_entrez_gene: Entrez gene identifier for ortholog
        :param str ortholog_species_ensembl_gene: Ensembl gene identifier for ortholog
        :param str ortholog_species_db_id: Species specific database identifier (e.g. MGI:1920453)
        :param str ortholog_species_name: gene name of ortholog
        :param str ortholog_species_symbol: gene symbol of ortholog
        :param str ortholog_species_chr: chromosome identifier (ortholog)
        :param str ortholog_species_assert_ids:
        :param str support:
        :param int hgnc_identifier: HGNC identifier
        :param str hgnc_symbol: HGNC symbol

        :param limit:
            - if `isinstance(limit,int)==True` -> limit
            - if `isinstance(limit,tuple)==True` -> format:= tuple(page_number, results_per_page)
            - if limit == None -> all results
        :type limit: int or tuple(int) or None

        :param bool as_df: if `True` results are returned as :class:`pandas.DataFrame`

        :return:
            - if `as_df == False` -> list(:class:`.models.Keyword`)
            - if `as_df == True`  -> :class:`pandas.DataFrame`
        :rtype: list(:class:`.models.Keyword`) or :class:`pandas.DataFrame`
        """
        q = self.session.query(models.OrthologyPrediction)

        model_queries_config = (
            (ortholog_species, models.OrthologyPrediction.ortholog_species),
            (human_entrez_gene, models.OrthologyPrediction.human_entrez_gene),
            (human_ensembl_gene, models.OrthologyPrediction.human_ensembl_gene),
            (human_name, models.OrthologyPrediction.human_name),
            (human_symbol, models.OrthologyPrediction.human_symbol),
            (human_chr, models.OrthologyPrediction.human_chr),
            (human_assert_ids, models.OrthologyPrediction.human_assert_ids),
            (ortholog_species_entrez_gene, models.OrthologyPrediction.ortholog_species_entrez_gene),
            (ortholog_species_ensembl_gene, models.OrthologyPrediction.ortholog_species_ensembl_gene),
            (ortholog_species_db_id, models.OrthologyPrediction.ortholog_species_db_id),
            (ortholog_species_name, models.OrthologyPrediction.ortholog_species_name),
            (ortholog_species_symbol, models.OrthologyPrediction.ortholog_species_symbol),
            (ortholog_species_chr, models.OrthologyPrediction.ortholog_species_chr),
            (ortholog_species_assert_ids, models.OrthologyPrediction.ortholog_species_assert_ids),
            (support, models.OrthologyPrediction.support),
        )
        q = self.get_model_queries(q, model_queries_config)

        one_to_many_queries_config = (
            (hgnc_identifier, models.HGNC.identifier),
            (hgnc_symbol, models.HGNC.symbol),
        )
        q = self.get_one_to_many_queries(q, one_to_many_queries_config)

        return self._limit_and_df(q, limit, as_df)