09.08.2013 Views

Analyse avec le logiciel imagej d'un lot d'images en microscopie par ...

Analyse avec le logiciel imagej d'un lot d'images en microscopie par ...

Analyse avec le logiciel imagej d'un lot d'images en microscopie par ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C:\Docum<strong>en</strong>ts and Settings\montarou\Bureau\correction\chandez\Macro_GM_CCQ_v9.txt jeudi 22 juil<strong>le</strong>t 2010 16:08<br />

in2p3-00530281, version 1 - 28 Oct 2010<br />

// Ouverture Image DAPI<br />

op<strong>en</strong>(DAPI_path+fi<strong>le</strong>DAPI);<br />

fi<strong>le</strong> = getTit<strong>le</strong>();<br />

print("Ouverture du fichier DAPI: "+fi<strong>le</strong>);<br />

run("Duplicate...", "tit<strong>le</strong>=DAPI");<br />

// Convertion <strong>en</strong> 8 bits ==> passage <strong>en</strong> mode gris =0.299red+0.587gre<strong>en</strong>+0.114blue<br />

se<strong>le</strong>ctWindow("DAPI");<br />

run("8-bit");<br />

// Reglage du seuil de definition des masques des noyaux<br />

// Reglage automatique des niveaux haut et bas <strong>par</strong> une methode de la classe "ImageProcessor" d'ImageJ<br />

// La definition des seuils est basé sur l'analyse de l'histogramme de l'image sé<strong>le</strong>ctionnée (image DAPI)<br />

setAutoThreshold();<br />

// Le seuillage pour obt<strong>en</strong>ir <strong>le</strong>s masques est appliqué <strong>par</strong> la commande "Convert to Mask" sur l'image DAPI sé<strong>le</strong>ctionnée<br />

run("Convert to Mask");<br />

// Definition des mesures effectuées sur <strong>le</strong>s masques definissant <strong>le</strong>s noyaux dans l'image DAPI se<strong>le</strong>ctionnée<br />

// Ces mesures sont:<br />

// - l'aire sé<strong>le</strong>ctionnée <strong>en</strong> pixels carré,<br />

// - int<strong>en</strong>sité moy<strong>en</strong>ne, du gris dans l'aire sé<strong>le</strong>ctionnée<br />

// - position du c<strong>en</strong>tre de la se<strong>le</strong>ction,<br />

// - la circularité et <strong>le</strong> perimetre<br />

// L'image sé<strong>le</strong>ctionnée <strong>par</strong> l'argum<strong>en</strong>t redirect="+fi<strong>le</strong>DAPI+" est utilisée comme cib<strong>le</strong> de l'analyse<br />

// l'<strong>en</strong>semb<strong>le</strong> des données sont stockées dans un fichier excel<br />

run("Set Measurem<strong>en</strong>ts...", "area mean c<strong>en</strong>troid redirect="+fi<strong>le</strong>DAPI+" decimal=3<br />

circularity perimeter fit");<br />

Manager<br />

// Se<strong>le</strong>ction des masques ==> La commande "<strong>Analyse</strong> Partic<strong>le</strong>" compte et mesure <strong>le</strong>s objets dans l'image seuillée et ajoute <strong>le</strong>s ROI au ROI<br />

// On ne reti<strong>en</strong>t que <strong>le</strong>s masques qui rempliss<strong>en</strong>t un certain nombre de criteres:<br />

// - size ==> <strong>le</strong>s objets hors de la gamme spécifiée sont ignorés; c'est à dire non compris <strong>en</strong>tre MIN_DAPI_THRESH et "infinity"<br />

// - circularity ==> <strong>le</strong>s objets hors de la gamme spécifiée sont ignorés; c'est à dire non compris <strong>en</strong>tre COUNT_DAPI_THRESH et 1<br />

// 0 correspond à un polygone infinim<strong>en</strong>t allongé et 1 a une cerc<strong>le</strong> <strong>par</strong>fait<br />

// l'option "Show" spécifie quel<strong>le</strong> image ImageJ doit afficher aprés l'analyse :<br />

// Masks ==> image binaire 8-bits cont<strong>en</strong>ant <strong>le</strong>s zones remplies des objets mesurés<br />

// exclude ==> <strong>le</strong>s objets mesurés touchant <strong>le</strong> bord sont annulés<br />

// include ==> <strong>le</strong>s trous internes des objets mesurés sont inclus<br />

// add ==> <strong>le</strong>s objets sé<strong>le</strong>ctionnés sont ajoutés au ROI Manager<br />

run("Analyze Partic<strong>le</strong>s...", "size="+MIN_DAPI_THRESH+"-Infinity pixel circularity="+<br />

COUNT_DAPI_THRESH+"-1.00 show=Masks exclude include add");<br />

// Sauvegarde de l'image des objets sé<strong>le</strong>ctionnés (masques)<br />

run("Duplicate...", "tit<strong>le</strong>=Mask_kernels.tif");<br />

// Extraction du nombre de masques sé<strong>le</strong>ctionnés dans <strong>le</strong> ROI Manager<br />

roi_size = roiManager("count");<br />

// Initialisation des pi<strong>le</strong>s des noms des masques ret<strong>en</strong>us (full path fi<strong>le</strong>name)<br />

Cell_se<strong>le</strong>ction_names = newArray(roi_size);<br />

// Initialisation des pi<strong>le</strong>s des flags des masques ret<strong>en</strong>us<br />

sel_names = newArray(roi_size);<br />

-3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!