FileMigrator
Ce fichier contient la classe FileMigrator permettant de lire un dossier de résultat de PALMTracer depuis Metamorph vers le format actuel.
- class Link(old: str, new: str)[source]
Bases:
NamedTupleStructure permettant le lien entre nouvelle et ancienne nomenclature.
- class FileMigrator[source]
Bases:
objectOutil de migration d’un dossier de traitement PALMTracer (ancien format Metamorph) vers le format Python plus récent.
- Le principe est :
Note
Cette classe ne modifie pas le dossier d’entrée : elle lit depuis
input_folderet écrit dansoutput_folder.- Attributs :
input_folder: Dossier source sélectionné par l’utilisateur.
output_folder: Dossier cible où seront écrits les fichiers convertis.
files: Dictionnaire
{type: [paths...]}rempli paranalyze().suffix: Suffixe optionnel ajouté au nom du dossier de sortie.
meta: Métadonnées globales du jeu de données. Une ligne initialisée à -1 qui sera mis à jour avec durant la migration des fichiers.
- meta: DataFrame
Métadonnées globales du jeu de données. Une ligne initialisée à -1 qui sera mis à jour avec durant la migration des fichiers.
- open(folder: Path)[source]
Sélectionne le dossier d’entrée contenant les résultats PALMTracer.
Le dossier Metamorph / PALMTracer est généralement nommé
<monfichier>.PT. Si ce n’est pas le cas, un avertissement est affiché (sans empêcher l’analyse).- Parameters:
folder (Path) – Chemin du dossier à analyser.
- Raises:
FileNotFoundError – Si
foldern’existe pas.NotADirectoryError – Si
foldern’est pas un dossier.ValueError – Si
folderne finit pas par .PT comme un dossier de sortie type de PALMTracer sur Metamorph.
- analyze()[source]
Analyse
input_folderet classe les fichiers reconnus par catégorie.- Effets de bord :
réinitialise
filespuis la remplit avec des chemins trouvés.ne lit pas le contenu des fichiers (uniquement leur présence).
- Raises:
RuntimeError – Si aucun dossier n’a été sélectionné via
open().
- migrate()[source]
Lance la migration vers le format récent.
Règle de nommage du dossier de sortie : - si l’entrée est
monfichierdebase.PTalors sortiemonfichierdebase_PALM_Tracer- Raises:
RuntimeError – Si
input_foldern’est pas défini.
- make_meta()[source]
Écriture du fichier meta uniquement si au moins une valeur est différente de -1.
- update_meta(column: str, v: int | float)[source]
Mets à jour l’objet meta et vérifie si une valeur différente est présente.
- migrate_localization()[source]
Migre le fichier de localisations PALMTracer vers le format courant.
- Cette méthode :
lit le fichier
locPALMTracer.txts’il est présentextrait les métadonnées globales (dimensions, calibration temporelle et spatiale)
mets à jour
metaviaupdate_meta()renomme et complète les colonnes selon
FILES_COLUMNS["Localization"]écrit le fichier CSV converti dans
output_folder.
Le fichier de sortie est nommé :
<new_name>-<timestamp>.csvoùnew_namecorrespond àFILES_LINK["loc"].new.
- migrate_tracks()[source]
Migre le fichier de tracking PALMTracer vers le format courant.
- Cette méthode :
lit le fichier
trcPALMTracer.txts’il est présentextrait et harmonise les métadonnées globales (image, calibration)
renomme et complète les colonnes selon
FILES_COLUMNS["Tracking"]écrit le fichier CSV converti dans
output_folder.
Le fichier de sortie est nommé :
<new_name>-<timestamp>.csvoùnew_namecorrespond àFILES_LINK["trc"].new.
- migrate_astigmatism_3d_model()[source]
Migre le fichier de modèle d’astigmatisme 3D PALMTracer.
- Cette méthode :
lit le fichier
3DFit.txts’il est présentassigne explicitement les noms de colonnes et les indices de lignes à partir de
FILES_COLUMNS["Astigmatism 3D Model"]etMODEL_ROWSécrit le modèle sous forme de CSV dans
output_folder.
Le fichier de sortie est nommé :
<new_name>-<timestamp>.csvoùnew_namecorrespond àFILES_LINK["A3D"].new.
- migrate_tracks_msd()[source]
Migre le fichier MSD (Mean Square Displacement) PALMTracer.
- Cette méthode :
lit un fichier à structure irrégulière (nombre de colonnes variable par ligne)
supprime la colonne ROI (première colonne)
renomme les colonnes sous la forme :
Track, <metric> 1, <metric> 2, ..., <metric> N;écrit le fichier CSV converti dans
output_folder.
Le nom de la métrique est issu de
FILES_COLUMNS["MSD"]["columns"].Le fichier de sortie est nommé :
<new_name>-<timestamp>.csvoùnew_namecorrespond àFILES_LINK["MSD"].new.
- migrate_tracks_instant_diffusion()[source]
Migre le fichier de diffusion instantanée PALMTracer.
- Cette méthode :
lit un fichier à structure irrégulière (nombre de colonnes variable par ligne)
supprime la colonne ROI (première colonne)
renomme les colonnes sous la forme :
Track, <metric> 1, <metric> 2, ..., <metric> N;écrit le fichier CSV converti dans
output_folder.
Le nom de la métrique est issu de
FILES_COLUMNS["InD"]["columns"].Le fichier de sortie est nommé :
<new_name>-<timestamp>.csvoùnew_namecorrespond àFILES_LINK["InD"].new.
- migrate_tracks_fit()[source]
Migre le fichier d’ajustement de trajectoires PALMTracer.
- Cette méthode :
lit le fichier
trcPALMTracer-Full-D.txtneutralise la colonne ROI (remplacée par une valeur constante)
corrige l’ordre des colonnes (ROI / Track)
détecte automatiquement le mode d’ajustement en fonction du nombre de colonnes
applique les noms de colonnes appropriés à partir de
FILES_COLUMNSécrit le fichier CSV converti dans
output_folder.
- Le mode d’ajustement est déterminé comme suit :
9 colonnes → Fit mode 1.
10 colonnes → Fit mode 2.
11 colonnes → Fit mode 3.
Warning
Toute incohérence sur le nombre de colonnes peut conduire à un mauvais mode d’ajustement.
- static open_old_file(file: Path, header: bool = True, skiprows: int = 2, sep: str = '\t') tuple[DataFrame, list[str]][source]
Ouvre un fichier PALMTracer (MetaMorph) au format texte tabulé.
- Le fichier est supposé structuré de la façon suivante :
skiprowspremières lignes : informations globales (dimensions, calibration, options…)ligne suivante (optionnelle) : titres des colonnes
reste du fichier : données tabulaires
- Parameters:
file (Path) – Chemin vers le fichier PALMTracer à ouvrir.
header (bool) – Indique si une ligne de titres de colonnes est présente après les lignes d’en-tête.
skiprows (int) – Nombre de lignes d’informations à lire et à conserver avant les données.
sep (str) – Séparateur de colonnes utilisé dans le fichier.
- Returns:
Tuple
(dataframe, header_lines)avec les données numériques et la liste des lignes d’informations brutes (sans\n).- Raises:
FileNotFoundError – Si le fichier n’existe pas.
- Return type:
- static open_old_irregular_file(file: Path, skiprows: int = 2, sep: str = '\t') tuple[DataFrame, list[str]][source]
Ouvre un fichier PALMTracer (MetaMorph) au format texte tabulé, en tolérant les lignes avec un nombre de colonnes variable.
Si certaines lignes n’ont pas le même nombre de colonnes, la fonction : - détecte le nombre maximal de colonnes, - complète les lignes plus courtes avec des valeurs manquantes (NaN), - tronque les lignes plus longues à la largeur max (rare, mais protège).
- Parameters:
- Returns:
Tuple
(dataframe, header_lines).- Raises:
FileNotFoundError – Si le fichier n’existe pas.
ValueError – Si le fichier ne contient pas assez de lignes d’en-tête.
- Return type:
- static column_migrator(name: str) str[source]
Retourne une clé actuelle à partir d’un nom de colonne ancien.
- dataframe_migrator(data: DataFrame, target_cols: list[str]) DataFrame[source]
Normalise un DataFrame PALMTracer vers un schéma de colonnes cible.
- Cette méthode :
renomme les colonnes existantes à l’aide de
column_migrator()ignore les colonnes non reconnues
ajoute les colonnes manquantes initialisées à 0
retourne le DataFrame réordonné selon
target_cols.