piscis.metrics
==============

.. py:module:: piscis.metrics


Functions
---------

.. autoapisummary::

   piscis.metrics.compute_metrics
   piscis.metrics._compute_metrics
   piscis.metrics.linear_sum_assignment


Module Contents
---------------

.. py:function:: compute_metrics(coords_pred: numpy.ndarray, coords: numpy.ndarray, evaluation_metrics: Union[str, Sequence[str]] = 'f1', distance_metric: str = 'euclidean', distance_thresholds: Union[float, Iterable] = 1.0, epsilon: float = 1e-07, return_df: bool = False) -> Union[Dict[str, float], Tuple[Dict[str, float], pandas.DataFrame]]

   
   Compute evaluation metrics from predicted and ground truth spot coordinates. Adapted from deepBlink.


   :Parameters:

       **coords_pred** : np.ndarray
           Predicted spot coordinates.

       **coords** : np.ndarray
           Ground truth spot coordinates.

       **evaluation_metrics** : Union[str, Sequence[str]], optional
           Evaluation metric or a list of evaluation metrics. Supported evaluation metrics are 'f1', 'precision', 'recall',
           'tp', 'fp', and 'fn'. Default is 'f1'.

       **distance_metric** : str, optional
           Distance metric used to compute the distances between predicted and ground truth spot coordinates. Default is
           'euclidean'.

       **distance_thresholds** : Union[float, Iterable], optional
           Distance threshold or a list of distance thresholds for matching predicted and ground truth spot coordinates.
           Default is 1.0.

       **epsilon** : float, optional
           Small constant for numerical stability. Default is 1e-7.

       **return_df** : bool, optional
           Whether to return a DataFrame with additional information. Default is False.



   :Returns:

       **integral_metrics** : Dict[str, float]
           Dictionary of aggregate metrics integrated over the distance thresholds.

       **df** : pd.DataFrame, optional
           DataFrame with additional information. Only returned if `return_df` is True.









   .. rubric:: References

   .. [R4d83ccd281fc-1] Eichenberger, Bastian, et al. "BBQuercus/deepBlink: Threshold independent detection and localization of
          diffraction-limited spots." GitHub, https://github.com/BBQuercus/deepBlink.

   .. only:: latex

      [R4d83ccd281fc-1]_


   ..
       !! processed by numpydoc !!

.. py:function:: _compute_metrics(distance_matrix: numpy.ndarray, evaluation_metrics: Union[str, Sequence[str]], distance_threshold: float, epsilon: float) -> Tuple[Dict[str, float], Tuple[numpy.ndarray, numpy.ndarray]]

   
   Compute evaluation metrics from a given distance matrix.


   :Parameters:

       **distance_matrix** : np.ndarray
           Distance matrix.

       **evaluation_metrics** : Union[str, Sequence[str]]
           Evaluation metric or a list of evaluation metrics. Supported evaluation metrics are 'f1', 'precision', 'recall',
           'tp', 'fp', and 'fn'.

       **distance_threshold** : float
           Distance threshold for matching predicted and ground truth spot coordinates.

       **epsilon** : float
           Small constant for numerical stability.














   ..
       !! processed by numpydoc !!

.. py:function:: linear_sum_assignment(cost_matrix: numpy.ndarray, threshold: Optional[float] = None) -> Tuple[numpy.ndarray, numpy.ndarray]

   
   Solve the linear sum assignment problem for a given cost matrix.


   :Parameters:

       **cost_matrix** : np.ndarray
           Cost matrix.

       **threshold** : float, optional
           Threshold for matching. Default is None.



   :Returns:

       **matches** : Tuple[np.ndarray, np.ndarray]
           Tuple of row and column indices of the matches.











   ..
       !! processed by numpydoc !!

