/* * Cell_Adhesion_Assay * Authors: Pau Carrillo-Barberà * Department of Cellular & Functional Biology * University of Valencia (Valencia, Spain) */ macro "Cell_Adhesion" { //choose a macro mode and a directory #@ String (label=" ", value="High Throughput Analysis
Cell Adhesion Assay
", visibility=MESSAGE, persist=false) heading #@ String(label="Select mode:", choices={"Analysis", "Pre-Analysis (parameter tweaking)"}, style="radioButtonVertical") mode #@ File(label="Select directory:", style="directory") dir #@ String (label="Load pre-established
parameter dataset:", choices={"No", "Yes"}, style="radioButtonHorizontal") importPD #@ String (label=" ", value="", visibility=MESSAGE, persist=false) logo #@ String (label=" ", value="Neuromolecular Biology Lab
ERI BIOTECMED, Universitat de València (Valencia, Spain)
", visibility=MESSAGE, persist=false) message //open pre-established parameter dataset if (importPD=="Yes") { pdPath=File.openDialog("Select a parameter dataset file"); parametersString=File.openAsString(pdPath); parameterRows=split(parametersString, "\n"); parameters=newArray(parameterRows.length); for(i=0; i=qcDebris) { satPixClass[count]=true; } else { satPixClass[count]=false; } //quality control: no content selectImage(counterstain); run("Duplicate...", "title=QC_nc"); run("8-bit"); run("Subtract Background...", "rolling=50"); run("Enhance Contrast...", "saturated=0.4 normalize"); run("Find Maxima...", "noise=75 output=[Count]"); maxCount[count]=getResult("Count", 0); run("Clear Results"); if (maxCount[count]>=1000) { noContClass[count]=true; } else { noContClass[count]=false; } //quality control & measurements: monolayer selectImage(counterstain); run("Duplicate...", "title=QC_monolayer"); totalArea[count]=areaImage; run("Clear Results"); run("Enhance Contrast...", "saturated="+enhanceCounterstaining+" normalize"); run("Mean...", "radius="+meanCounterstaining); run("Median...", "radius="+medianCounterstaining); setAutoThreshold(thresholdMethod+" dark"); run("Convert to Mask"); resetThreshold(); run("Options...", "iterations="+dilateIter+" count=1 do=Dilate"); run("Set Measurements...", "area_fraction display redirect=None decimal=2"); setThreshold(255, 255); run("Measure"); areaFraction[count]=getResult("%Area", 0); monolayerArea[count]=totalArea[count]*areaFraction[count]; run("Clear Results"); if (areaFraction[count]=1000) { trackerCount[count]=0; } trackerRatio[count]=trackerCount[count]/(monolayerArea[count]*0.000001); //close run("Close All"); selectWindow("Results"); run("Close"); count++; } } } setBatchMode(false); //results table title1 = "Results table"; title2 = "["+title1+"]"; f = title2; run("Table...", "name="+title2+" width=500 height=500"); print(f, "\\Headings:n\tRow\tColumn\tField\tMean/s.d.\t%SatPix\tDebris\tMaxCount\tNoCont\tTotalArea\tMonolayerArea\t%MonoArea\tQC monolayer\tCells\tCells/mm2"); for (i=0; i