<figure><img src="image_1.png" /></figure>

HAL
open science

# Automatisation de l'analyse des images et du traitement des données produites à l'aide des logiciels ImageJ et Excel ®

Jérôme Chapuis, Nicolas Pons, Philippe Tixador, Pierre Sibille

<figure><img src="image_2.png" /></figure>

## To cite this version:

Jérôme Chapuis, Nicolas Pons, Philippe Tixador, Pierre Sibille. Automatisation de l'analyse des images et du traitement des données produites à l'aide des logiciels ImageJ et Excel ®. Les Cahiers des techniques de l'INRA, 2012. hal-04237187

HAL Id: hal-04237187

https://hal.inrae.fr/hal-04237187

Submitted on 11 Oct 2023

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.
# Automatisation de l'analyse des images et du traitement des données produites à l'aide des logiciels ImageJ et Excel®

Jérôme Chapuis<fnref n="1" />*, Nicolas <fnref n="2" />, Philippe Tixador<fnref n="1" />, Pierre Sibille<fnref n="1" />

**Résumé.** Nous décrivons l'utilisation combinée des logiciels Image J et Excel pour une analyse simple et rapide de plusieurs dizaines de photos afin d'obtenir un tableau final compilant tous les résultats chiffrés. Cette méthode permet d'automatiser, de standardiser des analyses sur plusieurs photos et d'en extraire des données numériques qui donneront des résultats objectifs et précis. Cette technique est modifiable pour une application à différentes études qui nécessitent l'analyse quantitative et qualitative d'images.

**Mots clés** : analyse d'image, ImageJ, Excel, macros

## Introduction

Un des axes de recherche développé dans l'équipe MAP<fnref n="2" /> de l'Unité de Virologie Immunologie Moléculaires de Jouy-en-Josas, est l'étude de la biologie des agents pathogènes non conventionnels de type prion.

En alternative à l'expérimentation animale, nous utilisons des modèles de cultures cellulaires capables de les propager.

Un système miniaturisé de culture des cellules a été mis au point pour la propagation de ces agents infectieux. En complément, une technique de détection des formes pathologiques de la PrP<sup>Sc</sup> par immunofluorescence a été développée qui permet la quantification et le titrage de ces agents infectieux (Tixador et al. 2010).

Nous pouvons donc tester simplement, en plaques multi-puits, des centaines d'échantillons différents.

Cette méthode permet de déterminer le niveau d'infectiosité propagé dans la culture mais aussi le nombre de cellules dans l'échantillon. Cependant, cette approche méthodologique génère un très grand nombre de données photographiques, dont l'analyse se révélait extrêmement lourde.

Nous avons donc développé des programmes (macros) sous Image J et Excel permettant d'analyser l'ensemble de ces données de façon automatique, rapide et fiable.

Cette méthodologie peut être applicable à un grand nombre d'études réalisées à l'Inra : quantification d'expression de différents phénotypes, détermination de la qualité et du nombre de cellules eucaryotes ou procaryotes (cellules rondes ou cellules en bâtonnet...) en culture après divers traitements... (Verrier et al. 2012).

<footnote n="1">¹ INRA, U892, Virologie Immunologie Moléculaires, Jouy-en-Josas F-78350, France</footnote>

<footnote n="2">² INRA, U1319, MICALIS, Jouy-en-Josas F-78350, France</footnote>

<footnote>* jerome.chapuis@jouy.inra.fr</footnote>
## Principe de la méthode, matériel utilisé

Nous disposons d'un microscope Zeiss « Axio Observer Z1 » équipé d'une platine, d'un revolver porte objectifs et d'un revolver de filtre motorisés. Le tout est géré par le logiciel Axio Vision et permet une prise de photos **automatisée** sur des plaques multi-puits.

Pour l'analyse d'image, nous utilisons Image J un logiciel libre de droits et flexible. (Rasband, 1997-2011).

Avec ce logiciel, il existe déjà un grand nombre d'applications pré-établies qui permettent une analyse d'image très performante.

L'analyse d'image est le cœur de nos problématiques mais cela est déjà détaillé dans un numéro spécial du Cahier des Techniques de l'INRA qui présente le logiciel Image:

"Des développements méthodologiques en imagerie à l'Inra" et en particulier dans l'article

« Association d'un microscope à un système de capture d'image : Analyse d'images par le logiciel ImageJ » de Christel Le Bon, Céline Boulard, Pascale Jolivet J.

Si le préambule à toutes les analyses d'images est d'avoir des images de qualité, leur analyse et leur gestion demeure parfois un point délicat.

Pour valider des résultats il est nécessaire d'avoir un nombre suffisamment important d'événements pour que le résultat de l'analyse puisse être considéré comme statistiquement fiable. Mais c'est justement ce nombre important qui rend ces données longues et difficiles à analyser.

Nous avons développé cette méthodologie dédiée à l'analyse automatisée en vue de l'exploitation statistique d'images. Via les logiciels ImageJ et Excel, nous pouvons exploiter, assez simplement, le nombre important d'images générées par nos études.

Image J est un logiciel dédié à l'analyse d'image. Il permet d'extraire un très grand nombre d'informations différentes tel que le nombre d'objet, leurs tailles, leurs formes ou l'intensité des signaux émis par les objets étudiés.

Ce logiciel peut fonctionner avec des plugins ou des programmes écrits pour des applications spécifiques (macro).

Toutes ces fonctions sont appliquées les unes après les autres afin d'obtenir l'information désirée.

C'est ce point que nous avons développé.

Notre méthode repose sur l'utilisation de macros sous image J puis sous Excel, modifiables et flexibles.

L'analyse des images est effectuée par une **macro image J** (écrite sous JAVA). Les paramètres d'intérêt préalablement établis avec des photos vont servir de référence à l'ensemble des photos analysées : ces paramètres sont retranscrits dans la macro d'image J, qui produit les valeurs numériques de l'analyse.

La macro image J ouvre automatiquement et successivement les photos à analyser (contenues dans un même dossier), les traite avec les paramètres définis. Puis transcrit l'analyse en résultats chiffrés qui sont enregistrés dans un fichier cible (format Excel) dont le nom est calqué sur le nom d'origine de la photo.

Nous aurons ainsi un fichier Excel par photo analysée, l'ensemble étant regroupé dans un dossier spécifique. La macro ferme le fichier photo source et le fichier Excel cible avant de
passer à la photo suivante. Cela permet de traiter des centaines de photos sans jamais saturer la mémoire de l'ordinateur.

A l'aide d'une **macro Excel**, l'ensemble des fichiers générés est ensuite compilé dans une nouvelle feuille Excel contenant le bilan de chaque image traitée. Cela permet à chaque étape de revenir à la photo source pour contrôler les résultats.

Il ne reste après qu'à faire le traitement de ces données par l'utilisation d'un tableur ou d'un logiciel statistique.

Cette méthode permet d'appliquer les mêmes filtres d'analyse à des centaines de photos en quelques minutes et de sortir des tableaux Excel pour une analyse statistique des résultats.

Cette méthode peut être schématisée en six étapes :

<table><thead><tr><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th></tr></thead><tbody><tr><td><strong>Prise des photos</strong><br>au microscope, regroupées dans un dossier</td><td><strong>Avec Image.J</strong><br>Définition manuelle des paramètres d'analyse sur les images de références</td><td><strong>Dans la macro Image J</strong><br>Transcriptions des paramètres pour le traitement de toutes les photos de la série</td><td><strong>Avec Image.J</strong><br>Exécution de la macro Image J qui génère, un fichier Excel par photo</td><td><strong>Avec Excel</strong><br>Exécution de la macro Excel, qui extrait les données pour les synthétiser en une feuille Excel</td><td>Etude statistique des résultats</td></tr></tbody></table>

## Détails des scripts

### 1 - ImageJ :

ImageJ permet avec la fonction « Record » d'enregistrer dans l'éditeur de script toutes les procédures réalisées au fur et à mesure de leur mise en œuvre dans le traitement de l'image. On peut ensuite les transférer par un copier/ coller dans une macro qui sera appliquée ensuite à chaque photo.

Pour l'exemple, nous allons compter le nombre de noyaux cellulaires sur une photo, on va réaliser cette opération : (Figure 1).

Ouvrir le « Record... » (Pour enregistrer nos applications).
<figure><img src="image_3.png" /><figcaption>**Figure 1.** Barre des menus du logiciel ImageJ, lancement du record.</figcaption></figure>

Réaliser l'ensemble des analyses souhaitées sur votre image. Vous obtenez ce type d'enregistrement dans le Recorder :

```R
// Ouverture d'une image en deux couleurs (format TIFF)
open("C:\\Documents and Settings\jerome\Bureau\Necessaire à l'analyse
d'image\pour ImageJ\Photos test\\268 PMCA-0001_A01_01_p1DAPI -GFP.TIF");

// Décomposition de l'image en trois images en niveaux de gris
run("Split Channels");

// Sélection (manuelle) de l'image mono couleur a analyser
// Début de la séquence d'analyse d'image (image en 16bit)
setThreshold(500, 1770);
run("Convert to Mask");
run("Nucleus Counter", "smallest=1 largest=1000 threshold=Current
smooth=[Median 3x3] subtract watershed");
imageCalculator("Subtract", "Analysis", "boundaries");
imageCalculator("Add create", "Analysis", "boundaries");
```

Le résultat de l'opération se présente comme ci-dessous (Figure 2).
<figure><img src="image_4.png" /><figcaption>**Figure 2. Fenêtres du logiciel ImageJ, résultats d'analyses.**</figcaption></figure>

Pour automatiser ces enchaînements, il faut copier les instructions d'analyse d'image (uniquement), les coller dans un fichier texte « Macro » de votre logiciel ImageJ.

Pour ouvrir le fichier, sélectionner à la racine le dossier « ImageJ » puis le fichier « macros »:
C:\ImageJ\macros\.

Créer un nouveau fichier ou simplement ouvrir une ancienne macro que vous modifiez. Sauvegarder votre macro (en la renommant).

Retourner dans ImageJ et sélectionner :
« Plugins » puis « Macros » puis « Install... », Choisissez votre macro.

Une fois la macro installée, lancer l'analyse en la sélectionnant dans :
« Plugins » puis « Macros »

Sélectionner votre macro, choisissez votre dossier de photos....la macro est lancée.

Attention, avant de lancer la macro, vous devez vérifier les points suivants :
- pour que les fichiers Excel soient générés vous devez avoir défini le chemin d'accès dans la macro. Il est donc **indispensable** d'avoir créé le dossier cible (sur votre bureau) avant de lancer la macro.

Par exemple un fichier « résultats » sur mon bureau, sera écrit de cette manière :

C:\\Documents and Settings\\jerome\\Bureau\\resultats.

Pensez à modifier le chemin pour votre ordinateur.

- ImageJ fonctionne avec des plugins qu'il faut absolument avoir chargés.

Dans notre cas, pour la macro :

« Excel Writer » est indispensable pour le transfert de données.

« Window Closer » est nécessaire pour fermer les images en cours d'analyses.

Pour l'exemple :

« Particle Analysis » qui contient l'application « Nucleus Counter » est indispensable pour réaliser le comptage des particules sélectionnées.

Si vous ne les avez pas dans votre liste « plugins », toutes ces applications sont disponibles avec une aide et des images tests sur le site web de l'unité de Virologie et Immunologie Moléculaires (VIM). Voir l'aide « Pour préparer votre analyse » mise sur le site web de la VIM.

<http://www.jouy.inra.fr/vim/plateaux_techniques/imagerie/microscope>

Vous pouvez aussi les charger sur le site web d'image J

<http://imagej.nih.gov/ij/plugins/index.html>

Sauf « Particule Analysis » qui n'est plus disponible sous cette version.

En fonction du type d'image et de votre version d'image J, il peut y avoir au départ, un mode de traitement différent pour séparer les couleurs de la photo (les « Split »).

La fonction « run ("Split Channels"); » permet de séparer la plupart des photos sur les versions récente d'image J. Si possible, nous conseillons un « Update Image J ».

Mais c'est surtout les préfixes ou suffixes donnés aux images, lors du « split », qui peuvent changer, il faut donc en tenir compte pour la sélection automatique des images.

Chaque couleur de l'image « spliter » ayant un nom spécifique.

Ce nom sera utilisé pour sélectionner la photo « bleu » et lui appliquer les différentes opérations avant de sélectionner l'autre image « vert » pour la traiter à son tour.

Dans l'écriture de script, les signets «//» permettent de mettre des commentaires, ce sont des lignes non prise en compte dans le programme.
Voici une macro complète pour le traitement des images.

// Recherche du répertoire à analyser puis sélection et ouverture
automatique des photos dans le répertoire

dir = getDirectory("Choose a Directory ");

list = getFileList dir);

for (i=0;i<list.length; i++) {

path = dir+list[i];

showProgress(i, list.length);

if (!lendsWith(path, "/")) open(path);

if (nImages>=1) {

// Exemple de photos multicaunaux, en deux couleurs (bleu et vert),

// Séparation des « merges » en trois photos niveaux de gris.

run("Split Channels ");

// Sélection de l'image pour le canal "blue" (ou dans les photos
exemples le canal désiré, ici le C2-)

// selectWindow(list[i]+" (blue)");

selectWindow("C2-" + list[i]);

// Début de la séquence d'analyse choisie pour le canal "blue",

//zone pour copier vos séquences d'analyse (ici un comptage de
noyaux)

setThreshold(480, 4095);

run("Convert to Mask");

run("Nucleus Counter", "smallest=1 largest=1000 threshold=Otsu

smooth=[Median 3x3] watershed");

run("Measure");

// Macro de sauvegarde des données en fichier Excel avec chemin
d'accès au répertoire pour les « blue » renommé avec le nom du fichier plus
le suffixe « bleu »

run("Excel..., "select...=[C:\\Documents and
Settings\\jerome\\Bureau\\resultats\\"+list[i]+" bleu.xls]");

// Remise à zéro du compteur

run("Clear Results");

// Sélection de l'image choisie pour le canal "green" ou dans les
photos exemples, ici le C1-)

// selectWindow(list[i]+" (green)");

selectWindow("C1-" + list[i]);

// Début de la séquence d'analyse choisie pour le canal "green"

setThreshold(350, 4095);

run("Convert to Mask");

run("Measure");

// Macro de sauvegarde des données en fichier Excel avec chemin
d'accès au répertoire pour les « green» renommé avec le nom du fichier plus
le suffixe « vert »
```vba
run("Excel...", "select...=[C:\Documents and Settings\jerome\Bureau\resultats\"+list[i] + "vert.xls]");

// Fermeture des images ouvertes puis passage à la photo n+1

run("Window Closer");
}}
```

## 2 - Excel

Vous obtenez un dossier résultats contenant autant de fichiers Excel que de photos analysées. Pour regrouper les informations dans un seul dossier il suffit, à partir d'un fichier Excel ainsi créé, de repérer dans quelles colonnes se trouvent les informations désirées pour les récupérer ensuite à l'aide d'un script approprié :

Macro EXCEL de récupération des données de chaque photo :

```vba
'Macro pour gérer les fichiers Excel contenu dans un dossier : les ouvrir, récupérer l'information désirée et la copier dans un nouveau fichier Excel "bilan"
```

```vba
Dim i, Signaux, Intensite, Nombre, PositionPremChiffre, NbChiffre, NumCaractere, PremFichier, NbFeuil As Integer
Dim NomFichier, Chemin, Nom, NomAbrege, Caractere, Nombres, PreCaractere, File_Is As String
Dim NomChemFichier As Variant
Dim Fso As Object
Dim x As Boolean
```

```vba
'Créer le fichier bilan sur le bureau
Workbooks.Add
ActiveWorkbook SaveAs Filename:= "C:\Documents and Settings\jerome\Bureau\bilan manip.xls"
```

```vba
Cells(1, 1).Value = "Nom de Fichier"
Cells(1, 2).Value = "Nombre de signaux"
Cells(1, 3).Value = "Intensité des signaux"
```

```vba
'Récupérer le chemin et le nom des fichiers à ouvrir
ApplicationDialogs(xlDialogOpen).Show
Nom = ActiveWorkbook.Name
Chemin = ActiveWorkbook.Path
NomAbrege = Left$(Nom, Len(Nom) - 14)
ActiveWorkbook.close savechanges:=False
```

```vba
i = 1
File_Is = Dir(Chemin + "\*.XLS")
Do Until File_Is ="
    Workbooks.Open Filename:=Chemin + "\" + File_Is
```

```vba
'Trier nombre de Dapi (dernière cellule active colonne A)
NbFeuil = Worksheets.Count
ActiveWorkbook.Worksheets(ActiveSheet Index).Select
Range("A65536").End(xlUp).Select
If ActiveCell <> "" Or i > 0 Then
Nombre = ActiveCell.Value
```
Else
  **Nombre** = 0
End If

'Trier intensité (dernière cellule active colonne E)
  ActiveWorkbook.Worksheets(ActiveSheet Index).Select
  Range("E65536").End(xlUp).Select
  If ActiveCell <> "" And i > 0 Then
    Intensite = ActiveCell.Value
  Else
    **Intensite** = 0
End If

'Trier « Zone libre » pour augmenter le nombre de paramètre

'Transfert des données sélectionnées sur la nouvelle feuille

ActiveWorkbook.close savechanges:=false
Windows("bilan manip.xls").Activate
Sheets.Item(1).Select
Sheets Item(1).Cells(i + 1, 1).Value = File_Is
Sheets Item(1).Cells(i + 1, 2).Value = Nombre
Sheets Item(1).Cells(i + 1, 3).Value = Intensite
File_Is = Dir
i = i + 1
Loop
End Sub

Cette macro doit être enregistrée dans Excel. (Voir l'aide « Pour préparer votre analyse d'image » mise en ligne sur le site web de la VIM.)

Pour augmenter le nombre de paramètres à collecter, il suffit de copier une séquence « dernière cellule active », de la coller à la suite dans la « zone libre » (en modifiant la colonne à sélectionner) et de lui donner un nouveau nom.

On doit indiquer le lieu du transfert dans la nouvelle feuille dans la rubrique « Transfert des données » en lui indiquant la colonne choisie.

Par exemple : je veux ajouter à la suite de « Intensité » une « nouvelle donnée »

Range("C65536").End(xlUp).Select
If ActiveCell <> "" And i > 0 Then
  Intensite = ActiveCell.Value
Else
  **Intensite** = 0
End If

'Trier Nouvelle donnée (dernière cellule active colonne D)

ActiveWorkbook.Worksheets(ActiveSheet Index).Select
Range("D65536").End(xlUp).Select
If ActiveCell <> "" And i > 0 Then
  Intensite = ActiveCell.Value
Else
  **Nouvelle donnée** = 0
End If
On reporte cette « nouvelle donnée » dans la rubrique « Transfert » en incrémentant la colonne de réception des données

### Transfert des données sélectionnées sur la nouvelle feuille

ActiveWorkbook.close savechanges:=False

Windows("bilan DAPI.xls").Activate
Sheets.Item(1).Select
Sheets.Item(1).Cells(i + 1, 1).Value = File_Is
Sheets.Item(1).Cells(i + 1, 2).Value = Nombre
Sheets.Item(1).Cells(i + 1, 3).Value = Intensite
Sheets Item(1).Cells(i + 1, 4).Value = Nouvelle donnée

File_Is = Dir

On la reporte également dans les « mots » de référence, au début du script :

Dim i, Nouvelle donnée, Signaux, Intensite, Nombre, PositionPremChiffre, NbChiffre, NumCaractere, PremFichier, NbFeuil As Integer

## En conclusion

La méthode adaptée à vos besoins, vous permet d'analyser des centaines de photos en quelques minutes et d'obtenir des valeurs statistiques en un seul fichier Excel.

De plus, tous les fichiers issus d'une même photo conservent la même dénomination. On peut ainsi vérifier l'information à chaque étape.

L'observation des photos générées permet de corréler une information numérique à des observations visuelles des signaux (localisation membranaire, intracellulaire, nucléaire...).

Vous pouvez modifier à souhait le type d'analyse pour effectuer une ou plusieurs études par photo.

Cette procédure optimise et simplifie une analyse longue et fastidieuse, ce qui permet d'augmenter le nombre d'événements pris en compte et d'améliorer ainsi la qualité statistique des résultats.

## Références bibliographiques / Outils

Le Bon C, Boulard C, Jolivet P (2009) Association d'un microscope à un système de capture d'image : analyse d'images par le logiciel ImageJ. *Le Cahier des Techniques de l'Inra* ; Numéro spécial 2009,
http://www.inra.fr/les_partenariats/collaborations_et_partenaires/entreprises/en_direct_des_la_bos/cahier_imagerie

Tixador P, Herzog L, Reine F, Jaumain E, Chapuis J, Le Dur A, Laude H, Béringue V (2010)
The physical relationship between infectivity and prion protein aggregates is strain-dependent
PLoS Pathog. (voir chapitre : Rov cell assay for infectivity titration).
Verrier ER, Langevin C, Thory C, Houel A, Ducrocq V, Benmansour A, Quillet E, Boudinot P (2012) Genetic resistance to rhabdovirus infection in teleost fish is paralleled to the derived cell resistance status, PLoS One.

*Liens pour charger tous les plugins proposés, les macros indiqués
Unité de Virologie et Immunologie Moléculaires, INRA de Jouy en Josas

http://www.jouy.inra.fr/vim/plateaux_techniques/imagerie/microscope

En complément, vous trouverez une note explicative, des photos et des fichiers Excel tests.

*Site officiel d'Image J (programme et plugins téléchargeables) :

Rasband WS, ImageJ, U. S. National Institutes of Health, Bethesda, Maryland, USA, http://imagej.nih.gov/ij/, 1997-2011.

*Tutorial pour « particle_analysis ».

http://www.uhnresearch.ca/facilities/wcif/imagej/particle_analysis.htm

Remerciements

Tous nos remerciements à Céline CHAPUIS et Pierre ADENOT pour la lecture critique du
manuscrit et leurs remarques constructives.