Astigmatism3D

Fichier contenant des fonctions lié à l’astigmatisme 3D (estimation de la position axiale en fonction des écarts-types sur X et Y).

z_from_planes(planes: ndarray, z_min: float, z_max: float) ndarray[source]

Estime une position Z (en unités physiques) à partir d’indices de plans.

Les indices de plans sont supposés répartis linéairement entre z_min et z_max : - min(planes)z_min - max(planes)z_max - valeurs intermédiaires interpolées linéairement.

Parameters:
  • planes (ndarray) – Tableau des indices de plans (entiers). Peut-être de n’importe quelle forme.

  • z_min (float) – Valeur minimale de Z correspondant au premier plan.

  • z_max (float) – Valeur maximale de Z correspondant au dernier plan.

Returns:

Tableau NumPy, de même forme que planes, contenant les valeurs de Z estimées.

Return type:

ndarray

z_from_step(n_planes: int, z_step: float, center: bool = True) ndarray[source]

Estime les positions Z (en unités physiques) pour une pile de plans équidistants.

Parameters:
  • n_planes (int) – Nombre total de plans. Doit être strictement positif.

  • z_step (float) – Distance entre deux plans consécutifs (même unité que la sortie). Doit être strictement positive.

  • center (bool) – Si True, centre la pile autour de 0. Sinon, démarre à 0.

Returns:

Tableau NumPy contenant les valeurs de Z estimées.

Return type:

ndarray

remove_multi_loc(loc: DataFrame) DataFrame[source]

Supprime les localisations multiples par plan en conservant, pour chaque plan ambigu, la localisation la plus proche de la position moyenne estimée à partir des plans ne contenant qu’une seule localisation.

Le principe est le suivant :
  • si un plan ne contient qu’une seule localisation, celle-ci est conservée ;

  • si un plan contient plusieurs localisations, seule la localisation la plus proche de la moyenne (X, Y);

  • si aucun plan ne contient une unique localisation, la désambiguïsation n’est pas possible de manière fiable et le DataFrame d’origine est renvoyé.

Parameters:

loc (DataFrame) – DataFrame contenant au minimum les colonnes "X", "Y" et "Plane".

Returns:

DataFrame filtré avec au plus une localisation par plan.

Return type:

DataFrame

sigma_model(model: ndarray, z: ndarray, pixel_size: float, sampling: float = 1) ndarray[source]

Modèle astigmatique sigma(z).

Parameters:
  • model (ndarray) – Modèle astigmatique de forme (2, 5) : paramètres X puis Y, chaque ligne = [Z0, W, C3, C4, A].

  • z (ndarray) – Ensemble des Z à utiliser pour trouver le sigma en fonction du modèle.

  • pixel_size (float) – Taille des pixels en nanomètres.

  • sampling (float) – Facteur d’agrandissement (les fichiers de localisation sauvegardés le sont avant agrandissement donc à laisser à 1).

Returns:

Tableau NumPy contenant les valeurs de sigma en fonction de Z pour le modèle.

Return type:

ndarray

model_validity(dataset: ndarray, model: ndarray, pixel_size: float, sampling: float = 1) dict[source]

Calcule des métriques d’erreur entre (Sx, Sy) observés et (Sx, Sy) prédits par le modèle aux mêmes positions Z.

  • RMSE (Root Mean Square Error) : racine de la moyenne des erreurs quadratiques. Mesure l’erreur typique en pénalisant davantage les grandes erreurs. Modèle parfait : RMSE = 0 (en pratique, proche de l’écart-type du bruit si les données sont bruitées).

  • MAE (Mean Absolute Error) : moyenne des erreurs absolues. Mesure l’erreur moyenne en valeur absolue, moins sensible aux outliers que le RMSE. Modèle parfait : MAE = 0 (en pratique, proche de l’amplitude moyenne du bruit).

  • R² (coefficient de détermination) : fraction de la variance des observations expliquée par le modèle. Modèle parfait : R² = 1.0. Un R² proche de 0 indique que le modèle n’explique pas mieux que la moyenne. Note : R² peut être négatif si le modèle est très mauvais.

Parameters:
  • dataset (ndarray) – Tableau (N, 3) contenant les colonnes [Sx, Sy, Z] (sigmas en pixels, Z en unités cohérentes avec le modèle).

  • model (ndarray) – Modèle astigmatique de forme (2, 5) : paramètres X puis Y, chaque ligne = [Z0, W, C3, C4, A].

  • pixel_size (float) – Taille pixel dans les mêmes unités que Z (par ex. nm), utilisée dans le calcul de sigma.

  • sampling (float) – Facteur d’échantillonnage (adimensionnel) appliqué dans le calcul de sigma (laisser à 1).

Returns:

Dictionnaire de métriques : RMSE/MAE (en pixels) et R² (adimensionnel) pour X, Y et global.

Return type:

dict

model_projection_validity(dataset: ndarray, model: ndarray, z_max: float, n_curve: int, pixel_size: float, sampling: float = 1) dict[source]

Évalue la validité d’un modèle astigmatique pour l’estimation de Z en projetant les observations (SigmaX, SigmaY) sur la courbe modèle.

Le Z estimé correspond au point de la courbe le plus proche dans le plan (SigmaX, SigmaY). Les métriques retournées quantifient à la fois la précision axiale et la cohérence des données avec le modèle.

  • RMSE_Z (Root Mean Square Error) : Erreur quadratique moyenne sur Z. Mesure la précision axiale typique. Modèle parfait (sans bruit) : RMSE_Z = 0.

  • MAE_Z (Mean Absolute Error) : Erreur moyenne absolue sur Z, plus robuste aux outliers que le RMSE. Modèle parfait : MAE_Z = 0.

  • P95_Z : 95e percentile de ΔZ. Indique une borne haute réaliste de l’erreur axiale pour la majorité des localisations.

  • Bias_Z : Moyenne de ΔZ. Reflète un biais systématique du modèle. Modèle parfait : Bias_Z = 0.

  • Std_Z : Écart-type de ΔZ. Mesure la dispersion de l’erreur axiale autour du biais.

  • Mean_dist_px : Distance moyenne (en pixels) des points observés à la courbe modèle dans l’espace (SigmaX, SigmaY). Sert de score de cohérence / confiance.

  • P95_dist_px : 95e percentile de la distance à la courbe. Utile pour définir un seuil de rejet des estimations peu fiables.

Parameters:
  • dataset (ndarray) – Tableau (N, 3) contenant les colonnes [SigmaX, SigmaY, Z] (sigmas en pixels, Z dans des unités cohérentes avec le modèle).

  • model (ndarray) – Modèle astigmatique de forme (2, 5) : paramètres X puis Y, chaque ligne = [Z0, W, C3, C4, A].

  • z_max (float) – Valeur maximale de Z (le modèle est évalué sur [-z_max, +z_max]).

  • n_curve (int) – Nombre de points d’échantillonnage de la courbe modèle en Z. Doit être suffisamment grand pour éviter une quantification de Z.

  • pixel_size (float) – Taille du pixel dans les mêmes unités que Z (ex. nm).

  • sampling (float) – Facteur d’échantillonnage (adimensionnel) utilisé dans le modèle de sigma (généralement égal à 1).

Returns:

Dictionnaire de métriques décrivant la précision axiale (en unités de Z) et la cohérence des données avec le modèle (distances en pixels).

Return type:

dict