Palm

class Palm[source]

Bases: object

Classe permettant d’utiliser la DLL externe PALM, exécuter les algorithmes de détection de points et les paramètres liés.

Méthodes

Initialization

Palm.is_valid() bool[source]

Vérifie la validité de la DLL utilisée pour PALM.

Returns:

True si la DLL est valide, False sinon.

Return type:

bool

Argument Parser

static Palm.max_allocation_bytes(fraction_available: float = 0.5, safety_gb: int = 1) int[source]

Permet de calculer la quantité de mémoire disponible au maximum pour une allocation.

Parameters:
  • fraction_available (float) – Pourcentage de la RAM disponible à utiliser au maximum.

  • safety_gb (int) – Marge de sécurité à garder disponible.

Returns:

Valeur en byte de l’allocation maximum tolérée.

Return type:

int

DLL Call

Palm.localization(stack: ndarray, threshold: float, watershed: bool, fit: int, fit_params: ndarray, planes: list[int] | None = None) DataFrame[source]

Exécute un traitement d’image avec une DLL PALM externe pour détecter des points dans une pile ou une image.

Parameters:
  • stack (ndarray) – Pile d’images en entrée sous forme de tableau numpy (possibilité d’envoyer une image directement).

  • threshold (float) – Seuil pour la détection.

  • watershed (bool) – Active ou désactive le mode watershed.

  • fit (int) – Mode d’ajustement (défini par get_fit).

  • fit_params (ndarray) – Paramètres du mode d’ajustement.

  • planes (list[int] | None) – Liste des plans à analyser (None pour tous les plans, les plans sont contigus par principe).

Returns:

Liste des points détectés sous forme de dataframe contenant toutes les informations reçues de la DLL.

Return type:

DataFrame

Palm.auto_threshold(image: ndarray, fit_params: ndarray) float[source]

Calcule un seuil automatique basé sur la segmentation de l’image.

Parameters:
  • image (ndarray) – Image 2D sous forme de tableau NumPy.

  • fit_params (ndarray) – Paramètres du mode d’ajustement.

Returns:

Seuil calculé (écart type final).

Return type:

float

Palm.tracking(localizations: DataFrame, max_distance: float, min_life: int = 1, decrease: float = 10, cost_birth: float = 0.5) DataFrame[source]

Exécute l’algorithme de tracking sur les points localisés.

Cette méthode applique un algorithme de suivi (tracking) sur les données de localisation fournies, en prenant en compte divers paramètres influençant le coût et la durée de vie des trajectoires.

Parameters:
  • localizations (DataFrame) – Liste des points détectés sous forme de dataframe contenant toutes les informations reçues de la DLL.

  • max_distance (float) – Distance maximale autorisée entre deux points pour les relier entre deux plans successifs.

  • min_life (int) – Longueur minimale d’une trajectoire pour qu’elle soit conservée dans le résultat final.

  • decrease (float) – Facteur de pénalisation appliqué au coût d’association entre des plans éloignés.

  • cost_birth (float) – Coût associé à la création d’une nouvelle trajectoire (point non associé à une trajectoire existante).

Returns:

DataFrame contenant les trajectoires détectées.

Return type:

DataFrame

Palm.blinking_reconnection(tracks: DataFrame, pixel_size: float, mode: int, max_duration: int, max_speed: float) DataFrame[source]

Exécute l’algorithme de reconnexion des trajectoires sur celles déjà localisées.

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

  • tracks (DataFrame) – Liste des points déjà trackés sous forme de dataframe contenant toutes les informations reçues de la DLL.

  • mode (int) – Mode de dispersion des points (0: immobile, 1: diffus, 2: linéaire).

  • max_duration (int) – Durée maximale d’un scintillement.

  • max_speed (float) – Vitesse maximale d’un point entre deux plans (en pixel).

Returns:

DataFrame contenant les trajectoires détectées.

Return type:

DataFrame

Palm.tracks_compute(tracks: DataFrame, is_msd: bool, is_ind: bool, is_3d: bool, is_log: bool, pixel_size: float, exposure_time: float, fit_mode: int, fit_params: ndarray) dict[str, DataFrame][source]

Exécute l’algorithme de calcul sur les trajectoires.

Parameters:
  • tracks (DataFrame) – Liste des points déjà trackés sous forme de dataframe contenant toutes les informations reçues de la DLL.

  • is_msd (bool) – Calcul MSD.

  • is_ind (bool) – Calcul de la diffusion instantanée.

  • is_3d (bool) – Calcul sur la 3D.

  • is_log (bool) – Applique un logarithme sur le résultat.

  • pixel_size (float) – Taille des pixels en micromètre.

  • exposure_time (float) – Calibration temporelle utile pour les calculs.

  • fit_mode (int) – Mode d’ajustement.

  • fit_params (ndarray) – Paramètres de l’ajustement (pour le moment uniquement fit length).

Returns:

DataFrame contenant les trajectoires détectées.

Return type:

dict[str, DataFrame]

Note

Pour obtenir des valeurs de diffusion en µm², le paramètre pixel_size doit être exprimé en micromètres par pixel (µm/px)

Palm.align(stack: ndarray, factors: ndarray, upsampling: int = 1) ndarray[source]

Exécute un traitement d’image avec une DLL PALM externe pour détecter des points dans une pile ou une image.

Parameters:
  • stack (ndarray) – Pile d’images en entrée sous forme de tableau numpy (possibilité d’envoyer une image directement).

  • factors (ndarray) – Facteurs d’alignement.

  • upsampling (int) – Facteur d’agrandissement de l’image (par défaut : 1 aucun agrandissement).

Returns:

Image alignée.

Return type:

ndarray

Palm.wavelett(stack: ndarray, level: int = 2) ndarray[source]

Exécute un traitement d’image avec une DLL PALM externe pour détecter des points dans une pile ou une image.

Parameters:
  • stack (ndarray) – Pile d’images en entrée sous forme de tableau numpy (possibilité d’envoyer une image directement).

  • level (int) – Niveau d’ondelette en sortie.

Returns:

Image décomposée.

Return type:

ndarray

Palm.astigmatism_3d_calibration(points: ndarray, pixel_size: float, center: bool = True) DataFrame[source]

Exécute un traitement avec une DLL PALM externe pour calibrer un modèle d’astigmatisme permettant d’estimer une position axiale.

Parameters:
  • points (ndarray) – Ensemble des points nécessaire à la calibration sous forme de tableau numpy 2D avec pour colonnes [Sigma X, Sigma Y, Z].

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

  • center (bool) – Permet de centrer le modèle pour que si \(\sigma_x(0) \approx \sigma_y(0)\).

Returns:

Modèle d’astigmatisme (un tableau numpy 2D de 2 lignes et 5 paramètres par ligne).

Return type:

DataFrame

Palm.astigmatism_3d_estimation(sigmas: ndarray, pixel_size: float, model: ndarray, z_max: float = 800) ndarray[source]

Exécute un traitement avec une DLL PALM externe pour estimer une position axiale à partir d’un modèle.

Parameters:
  • sigmas (ndarray) – Ensemble des points à estimer sous forme de tableau numpy 2D avec pour colonnes [sigma_x, sigma_y].

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

  • model (ndarray) – Modèle d’astigmatisme (un tableau numpy 2D de 2 lignes et 5 paramètres par ligne).

  • z_max (float) – Distance absolue maximale sur Z par rapport à l’origine.

Returns:

Ensemble des Z estimés pour chaque point.

Return type:

ndarray