"""
This type stub file was generated by pyright.
"""

"""Metrics for estimating performance of drug discovery methods implemented in
ODDT"""
def roc_auc(y_true, y_score, pos_label=..., ascending_score=...):
    """Computes ROC AUC score

    Parameters
    ----------
    y_true : array, shape=[n_samples]
        True binary labels, in range {0,1} or {-1,1}. If positive label is
        different than 1, it must be explicitly defined.

    y_score : array, shape=[n_samples]
        Scores for tested series of samples

    pos_label: int
        Positive label of samples (if other than 1)

    ascending_score: bool (default=True)
        Indicates if your score is ascendig. Ascending score icreases with
        deacreasing activity. In other words it ascends on ranking list
        (where actives are on top).

    Returns
    -------
    roc_auc : float
        ROC AUC in range 0:1
    """
    ...

def rmse(y_true, y_pred): # -> Any:
    """Compute Root Mean Squared Error (RMSE)

    Parameters
    ----------
    y_true : array-like of shape = [n_samples] or [n_samples, n_outputs]
        Ground truth (correct) target values.

    y_pred : array-like of shape = [n_samples] or [n_samples, n_outputs]
        Estimated target values.

    Returns
    -------
    rmse : float
        A positive floating point value (the best value is 0.0).
    """
    ...

def enrichment_factor(y_true, y_score, percentage=..., pos_label=..., kind=...):
    """Computes enrichment factor for given percentage, i.e. EF_1% is
    enrichment factor for first percent of given samples. This function assumes
    that results are already sorted and samples with best predictions are first.

    Parameters
    ----------
    y_true : array, shape=[n_samples]
        True binary labels, in range {0,1} or {-1,1}. If positive label is
        different than 1, it must be explicitly defined.

    y_score : array, shape=[n_samples]
        Scores for tested series of samples

    percentage : int or float
        The percentage for which EF is being calculated

    pos_label: int
        Positive label of samples (if other than 1)

    kind: 'fold' or 'percentage' (default='fold')
        Two kinds of enrichment factor: fold and percentage.
        Fold shows the increase over random distribution (1 is random, the
        higher EF the better enrichment). Percentage returns the fraction of
        positive labels within the top x% of dataset.

    Returns
    -------
    ef : float
        Enrichment Factor for given percenage in range 0:1
    """
    ...

def roc_log_auc(y_true, y_score, pos_label=..., ascending_score=..., log_min=..., log_max=...):
    """Computes area under semi-log ROC.

    Parameters
    ----------
    y_true : array, shape=[n_samples]
        True binary labels, in range {0,1} or {-1,1}. If positive label is
        different than 1, it must be explicitly defined.

    y_score : array, shape=[n_samples]
        Scores for tested series of samples

    pos_label: int
        Positive label of samples (if other than 1)

    ascending_score: bool (default=True)
        Indicates if your score is ascendig. Ascending score icreases with
        deacreasing activity. In other words it ascends on ranking list
        (where actives are on top).

    log_min : float (default=0.001)
        Minimum value for estimating AUC. Lower values will be clipped for
        numerical stability.

    log_max : float (default=1.)
        Maximum value for estimating AUC. Higher values will be ignored.

    Returns
    -------
    auc : float
        semi-log ROC AUC
    """
    ...

def random_roc_log_auc(log_min=..., log_max=...):
    """Computes area under semi-log ROC for random distribution.

    Parameters
    ----------
    log_min : float (default=0.001)
        Minimum logarithm value for estimating AUC

    log_max : float (default=1.)
        Maximum logarithm value for estimating AUC.

    Returns
    -------
    auc : float
        semi-log ROC AUC for random distribution
    """
    ...

def standard_deviation_error(y_true, y_pred):
    """Standard Deviation (SD) error implemented as used by Li et. al for
    CASF-2013 (http://dx.doi.org/10.1021/ci500081m).

    Parameters
    ----------
    y_true : array-like
        True values.

    y_pred : array-like
        Prediction to be scored.

    Returns
    -------
    sd : float
        semi-log ROC AUC for random distribution


    """
    ...

def rie(y_true, y_score, alpha=..., pos_label=...):
    """Computes Robust Initial Enhancement [1]_. This function assumes that results
    are already sorted and samples with best predictions are first.

    Parameters
    ----------
    y_true : array, shape=[n_samples]
        True binary labels, in range {0,1} or {-1,1}. If positive label is
        different than 1, it must be explicitly defined.

    y_score : array, shape=[n_samples]
        Scores for tested series of samples

    alpha: float
        Alpha. 1/Alpha should be proportional to the percentage in EF.

    pos_label: int
        Positive label of samples (if other than 1)

    Returns
    -------
    rie_score : float
         Robust Initial Enhancement

    References
    ----------
    .. [1] Sheridan, R. P.; Singh, S. B.; Fluder, E. M.; Kearsley, S. K.
           Protocols for bridging the peptide to nonpeptide gap in topological
           similarity searches. J. Chem. Inf. Comput. Sci. 2001, 41, 1395-1406.
           DOI: 10.1021/ci0100144

    """
    ...

def bedroc(y_true, y_score, alpha=..., pos_label=...):
    """Computes Boltzmann-Enhanced Discrimination of Receiver Operating
    Characteristic [1]_.  This function assumes that results are already sorted
    and samples with best predictions are first.

    Parameters
    ----------
    y_true : array, shape=[n_samples]
        True binary labels, in range {0,1} or {-1,1}. If positive label is
        different than 1, it must be explicitly defined.

    y_score : array, shape=[n_samples]
        Scores for tested series of samples

    alpha: float
        Alpha. 1/Alpha should be proportional to the percentage in EF.

    pos_label: int
        Positive label of samples (if other than 1)

    Returns
    -------
    bedroc_score : float
        Boltzmann-Enhanced Discrimination of Receiver Operating Characteristic

    References
    ----------
    .. [1] Truchon J-F, Bayly CI. Evaluating virtual screening methods: good
           and bad metrics for the "early recognition" problem.
           J Chem Inf Model. 2007;47: 488-508.
           DOI: 10.1021/ci600426e

    """
    ...

