<protocol VERSION="4">
<blocks>
<workflow ID="532024142" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Segmentation C: Clustered objects with convex shapes" height="171" keepsResults="true" width="435" xLocation="477" yLocation="326">
<blocks>
<block ID="654611229" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Channel signal" height="145" keepsResults="true" width="466" xLocation="252" yLocation="0">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="2" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="718099495" blockType="plugins.adufour.filtering.GaussianFilter" className="plugins.adufour.filtering.FilterToolbox" collapsed="true" definedName="Gaussian filter" height="323" keepsResults="true" width="427" xLocation="452" yLocation="0">
<variables>
<input>
<variable ID="input" name="input" runtime="false" visible="true"/>
<variable ID="filterX" name="sigma (x)" runtime="false" value="0.0" visible="true"/>
<variable ID="filterY" name="sigma (y)" runtime="false" value="0.0" visible="true"/>
<variable ID="filterZ" name="sigma (z)" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="output" name="output" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="619123890" blockType="plugins.adufour.hierarchicalkmeans.HierarchicalKMeans" className="plugins.adufour.hierarchicalkmeans.HierarchicalKMeans" collapsed="true" definedName="HK-Means" height="477" keepsResults="true" width="599" xLocation="655" yLocation="0">
<variables>
<input>
<variable ID="Input" name="Input" runtime="false" visible="true"/>
<variable ID="Gaussian pre-filter" name="Gaussian pre-filter" runtime="false" value="0.0" visible="true"/>
<variable ID="Frame" name="Frame" runtime="false" value="0" visible="true"/>
<variable ID="Number of classes" name="Intensity classes" runtime="false" value="2" visible="true"/>
<variable ID="Min size (px)" name="Min object size (px)" runtime="false" value="5000" visible="true"/>
<variable ID="Max size (px)" name="Max object size (px)" runtime="false" value="1000000" visible="true"/>
<variable ID="Final threshold" name="Min object intensity" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="binary sequence" name="binary sequence" runtime="false" visible="true"/>
<variable ID="output regions" name="list of ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1593437154" blockType="plugins.adufour.activecontours.ActiveContours" className="plugins.adufour.activecontours.ActiveContours" collapsed="true" definedName="Active Contours" height="1217" keepsResults="true" width="643" xLocation="822" yLocation="0">
<variables>
<input>
<variable ID="input sequence" name="Input" runtime="false" visible="true"/>
<variable ID="Input ROI" name="input ROI" runtime="false" visible="true"/>
<variable ID="regularization: weight" name="Contour smoothness" runtime="false" value="0.05" visible="false"/>
<variable ID="edge: weight" name="Edge weight" runtime="false" value="0.0" visible="false"/>
<variable ID="edge: channel" name="Find edges in channel" runtime="false" value="0" visible="false"/>
<variable ID="region: weight" name="Region weight" runtime="false" value="1.0" visible="false"/>
<variable ID="region: sensitivity" name="Region sensitivity" runtime="false" value="1.0" visible="false"/>
<variable ID="region: channel" name="Find regions in channel" runtime="false" value="0" visible="false"/>
<variable ID="balloon: weight" name="Contour inflation" runtime="false" value="0.0" visible="false"/>
<variable ID="contour resolution" name="Contour sampling" runtime="false" value="2.0" visible="true"/>
<variable ID="region bounds" name="Bound field to ROI of" runtime="false" value="No Sequence" visible="true"/>
<variable ID="time step" name="Evolution time step" runtime="false" value="1.0" visible="true"/>
<variable ID="convergence value" name="Convergence criterion" runtime="false" value="0.1" visible="true"/>
<variable ID="max. iterations" name="Max. iterations" runtime="false" value="100000" visible="true"/>
<variable ID="type of ROI output" name="Type of ROI" runtime="false" value="AREA" visible="true"/>
<variable ID="tracking" name="Track objects over time" runtime="false" value="false" visible="true"/>
<variable ID="division sensitivity" name="Division sensitivity" runtime="false" value="0.0" visible="true"/>
<variable ID="axis constraint" name="Axis constraint" runtime="false" value="0.0" visible="true"/>
<variable ID="Volume weight" name="Volume weight" runtime="false" value="0.01" visible="true"/>
<variable ID="watch entering objects" name="Watch entering objects" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="Regions of interest" name="Regions of interest" runtime="false" visible="true"/>
<variable ID="Tracks" name="Tracks" runtime="false" visible="true"/>
<variable ID="Labels" name="Labels" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="374244602" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented objects" height="101" keepsResults="true" width="306" xLocation="0" yLocation="381">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Tiff" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1814208802" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Text" height="101" keepsResults="true" width="349" xLocation="0" yLocation="500">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="901560498" blockType="plugins.tprovoost.sequenceblocks.op.FillInnerSequence" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Fill inner sequence" height="166" keepsResults="true" width="466" xLocation="1024" yLocation="0">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="rois" name="Roi(s)" runtime="false" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="255.0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="365555398" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="1278" keepsResults="true" width="1212" xLocation="1237" yLocation="0">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.ij.IJ)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;Make Binary&quot;, &quot;&quot;)&#10;IJ.run(imp, &quot;Watershed&quot;, &quot;&quot;)&#10;&#10;imPlus2 = imp&#10;output0 = ImageJUtil.convertToIcySequence(imPlus2, null)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="4" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="320627011" name="input1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="122180700" name="input2" runtime="true" type="java.io.File" value="" visible="true"/>
<variable ID="973572973" name="input3" runtime="true" type="java.lang.String" value="" visible="true"/>
<variable ID="1201093033" name="input4" runtime="true" type="java.lang.String" value="" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="543013563" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display objects signal" height="231" keepsResults="true" width="282" xLocation="51" yLocation="133">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1650202839" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display pre-segmented objects" height="228" keepsResults="true" width="272" xLocation="1030" yLocation="232">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="2135507592" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display pre-processed objects" height="229" keepsResults="true" width="266" xLocation="661" yLocation="228">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="738259599" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1432" yLocation="0">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1499146886" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="83" keepsResults="true" width="466" xLocation="247" yLocation="97">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="602259393" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="false" definedName="Javascript" height="798" keepsResults="true" width="675" xLocation="1501" yLocation="84">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.icy.roi.ROI2DRectangle)&#10;importClass(Packages.icy.type.DataIteratorUtil)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.ij.IJ)&#10;&#10;//Create empty sequence with the same size as input&#10;width = input1.getWidth()&#10;height = input1.getHeight()&#10;seq = input1.getCopy()&#10;roi = new ROI2DRectangle(0, 0, width, height)&#10;it = new SequenceDataIterator(seq, roi)&#10;DataIteratorUtil.set(it, 0.0)&#10;&#10;name = input5.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;&#10;//if(n==-1){&#10;//&#9;name2=name&#10;//}else{&#10;//&#9;name2 = name.substring(0, n)&#10;//}&#10;Title = name + &quot;_&quot; + input3.substring(0)&#10;&#10;seq.setName(Title)&#10;seq.removeAllROI()&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;it = new SequenceDataIterator(seq, input0[i])&#10;&#9;DataIteratorUtil.set(it, 1.0 + i)&#10;}&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;FileUtil.createDir(input4 + &quot;\\&quot; + input3)&#10;path = input4.getAbsolutePath()&#10;dir = path + &quot;\\&quot; + input3 + &quot;\\&quot; + Title&#10;IJ.saveAs(imp, input2, dir)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="5" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="18370571" name="input1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1034411660" name="input2" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1928355043" name="input3" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1943103479" name="input4" runtime="true" type="java.io.File" visible="true"/>
<variable ID="1163176565" name="input5" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.Object" visible="true"/>
</output>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="654611229" dstVarID="sequence" srcBlockID="532024142" srcVarID="Sequence"/>
<link dstBlockID="543013563" dstVarID="object" srcBlockID="532024142" srcVarID="Sequence"/>
<link dstBlockID="365555398" dstVarID="320627011" srcBlockID="532024142" srcVarID="Sequence"/>
<link dstBlockID="1499146886" dstVarID="Sequence" srcBlockID="532024142" srcVarID="Sequence"/>
<link dstBlockID="602259393" dstVarID="1163176565" srcBlockID="532024142" srcVarID="Sequence"/>
<link dstBlockID="718099495" dstVarID="input" srcBlockID="654611229" srcVarID="extracted"/>
<link dstBlockID="602259393" dstVarID="18370571" srcBlockID="654611229" srcVarID="extracted"/>
<link dstBlockID="619123890" dstVarID="Input" srcBlockID="718099495" srcVarID="output"/>
<link dstBlockID="2135507592" dstVarID="object" srcBlockID="718099495" srcVarID="output"/>
<link dstBlockID="1593437154" dstVarID="Input ROI" srcBlockID="619123890" srcVarID="output regions"/>
<link dstBlockID="1593437154" dstVarID="input sequence" srcBlockID="619123890" srcVarID="Input"/>
<link dstBlockID="901560498" dstVarID="rois" srcBlockID="1593437154" srcVarID="Regions of interest"/>
<link dstBlockID="901560498" dstVarID="sequence" srcBlockID="1593437154" srcVarID="Labels"/>
<link dstBlockID="1650202839" dstVarID="object" srcBlockID="1593437154" srcVarID="input sequence"/>
<link dstBlockID="602259393" dstVarID="1034411660" srcBlockID="374244602" srcVarID="text"/>
<link dstBlockID="602259393" dstVarID="1928355043" srcBlockID="1814208802" srcVarID="text"/>
<link dstBlockID="365555398" dstVarID="input0" srcBlockID="901560498" srcVarID="sequence"/>
<link dstBlockID="738259599" dstVarID="input sequence" srcBlockID="365555398" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="602259393" dstVarID="input0" srcBlockID="738259599" srcVarID="ROI"/>
<link dstBlockID="602259393" dstVarID="1943103479" srcBlockID="1499146886" srcVarID="Folder"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="532024142" value="D:\Liza\Documents\Fac\Sciences\Thèse\Sciences\ARN\Manips\Résultats\IFI\Image proto 2\pATM\Test\Merge" visible="true"/>
<variable ID="extension" blockID="532024142" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="532024142" value="false" visible="true"/>
<variable ID="654611229:sequence" blockID="654611229" value="No Sequence" visible="false"/>
<variable ID="654611229:channel" blockID="654611229" value="2" visible="false"/>
<variable ID="718099495:input" blockID="718099495" value="No Sequence" visible="false"/>
<variable ID="718099495:filterX" blockID="718099495" value="0.0" visible="false"/>
<variable ID="718099495:filterY" blockID="718099495" value="0.0" visible="false"/>
<variable ID="718099495:filterZ" blockID="718099495" value="0.0" visible="false"/>
<variable ID="619123890:Input" blockID="619123890" value="No Sequence" visible="false"/>
<variable ID="619123890:Gaussian pre-filter" blockID="619123890" value="0.0" visible="false"/>
<variable ID="619123890:Frame" blockID="619123890" value="0" visible="false"/>
<variable ID="619123890:Number of classes" blockID="619123890" value="2" visible="false"/>
<variable ID="619123890:Min size (px)" blockID="619123890" value="5000" visible="false"/>
<variable ID="619123890:Max size (px)" blockID="619123890" value="1000000" visible="false"/>
<variable ID="619123890:Final threshold" blockID="619123890" value="0.0" visible="false"/>
<variable ID="1593437154:input sequence" blockID="1593437154" value="No Sequence" visible="false"/>
<variable ID="1593437154:Input ROI" blockID="1593437154" value="No ROI" visible="false"/>
<variable ID="1593437154:regularization: weight" blockID="1593437154" value="0.05" visible="false"/>
<variable ID="1593437154:edge: weight" blockID="1593437154" value="0.0" visible="false"/>
<variable ID="1593437154:edge: channel" blockID="1593437154" value="0" visible="false"/>
<variable ID="1593437154:region: weight" blockID="1593437154" value="1.0" visible="false"/>
<variable ID="1593437154:region: sensitivity" blockID="1593437154" value="1.0" visible="false"/>
<variable ID="1593437154:region: channel" blockID="1593437154" value="0" visible="false"/>
<variable ID="1593437154:balloon: weight" blockID="1593437154" value="0.0" visible="false"/>
<variable ID="1593437154:contour resolution" blockID="1593437154" value="2.0" visible="false"/>
<variable ID="1593437154:region bounds" blockID="1593437154" value="No Sequence" visible="false"/>
<variable ID="1593437154:time step" blockID="1593437154" value="1.0" visible="false"/>
<variable ID="1593437154:convergence value" blockID="1593437154" value="0.1" visible="false"/>
<variable ID="1593437154:max. iterations" blockID="1593437154" value="100000" visible="false"/>
<variable ID="1593437154:type of ROI output" blockID="1593437154" value="AREA" visible="false"/>
<variable ID="1593437154:tracking" blockID="1593437154" value="false" visible="false"/>
<variable ID="1593437154:division sensitivity" blockID="1593437154" value="0.0" visible="false"/>
<variable ID="1593437154:axis constraint" blockID="1593437154" value="0.0" visible="false"/>
<variable ID="1593437154:Volume weight" blockID="1593437154" value="0.01" visible="false"/>
<variable ID="1593437154:watch entering objects" blockID="1593437154" value="false" visible="false"/>
<variable ID="374244602:text" blockID="374244602" value="Tiff" visible="false"/>
<variable ID="1814208802:text" blockID="1814208802" value="Segmented nuclei" visible="false"/>
<variable ID="901560498:sequence" blockID="901560498" value="No Sequence" visible="false"/>
<variable ID="901560498:rois" blockID="901560498" value="No ROI" visible="false"/>
<variable ID="901560498:value" blockID="901560498" value="255.0" visible="false"/>
<variable ID="365555398:Script" blockID="365555398" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.ij.IJ)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;Make Binary&quot;, &quot;&quot;)&#10;IJ.run(imp, &quot;Watershed&quot;, &quot;&quot;)&#10;&#10;imPlus2 = imp&#10;output0 = ImageJUtil.convertToIcySequence(imPlus2, null)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="false"/>
<variable ID="365555398:Add Input" blockID="365555398" value="4" visible="false"/>
<variable ID="365555398:Add output" blockID="365555398" value="0" visible="false"/>
<variable ID="365555398:input0" blockID="365555398" value="" visible="false"/>
<variable ID="365555398:320627011" blockID="365555398" value="" visible="false"/>
<variable ID="365555398:122180700" blockID="365555398" value="" visible="false"/>
<variable ID="365555398:973572973" blockID="365555398" value="" visible="false"/>
<variable ID="365555398:1201093033" blockID="365555398" value="" visible="false"/>
<variable ID="543013563:object" blockID="543013563" value="" visible="false"/>
<variable ID="1650202839:object" blockID="1650202839" value="" visible="false"/>
<variable ID="2135507592:object" blockID="2135507592" value="" visible="false"/>
<variable ID="738259599:input sequence" blockID="738259599" value="No Sequence" visible="false"/>
<variable ID="738259599:extract mode" blockID="738259599" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="738259599:value" blockID="738259599" value="0.0" visible="false"/>
<variable ID="1499146886:Sequence" blockID="1499146886" value="No Sequence" visible="false"/>
<variable ID="602259393:Script" blockID="602259393" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.icy.roi.ROI2DRectangle)&#10;importClass(Packages.icy.type.DataIteratorUtil)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.ij.IJ)&#10;&#10;//Create empty sequence with the same size as input&#10;width = input1.getWidth()&#10;height = input1.getHeight()&#10;seq = input1.getCopy()&#10;roi = new ROI2DRectangle(0, 0, width, height)&#10;it = new SequenceDataIterator(seq, roi)&#10;DataIteratorUtil.set(it, 0.0)&#10;&#10;name = input5.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;&#10;//if(n==-1){&#10;//&#9;name2=name&#10;//}else{&#10;//&#9;name2 = name.substring(0, n)&#10;//}&#10;Title = name + &quot;_&quot; + input3.substring(0)&#10;&#10;seq.setName(Title)&#10;seq.removeAllROI()&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;it = new SequenceDataIterator(seq, input0[i])&#10;&#9;DataIteratorUtil.set(it, 1.0 + i)&#10;}&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;FileUtil.createDir(input4 + &quot;\\&quot; + input3)&#10;path = input4.getAbsolutePath()&#10;dir = path + &quot;\\&quot; + input3 + &quot;\\&quot; + Title&#10;IJ.saveAs(imp, input2, dir)" visible="false"/>
<variable ID="602259393:Add Input" blockID="602259393" value="5" visible="false"/>
<variable ID="602259393:Add output" blockID="602259393" value="0" visible="false"/>
<variable ID="602259393:input0" blockID="602259393" value="" visible="false"/>
<variable ID="602259393:18370571" blockID="602259393" value="" visible="false"/>
<variable ID="602259393:1034411660" blockID="602259393" value="" visible="false"/>
<variable ID="602259393:1928355043" blockID="602259393" value="" visible="false"/>
<variable ID="602259393:1943103479" blockID="602259393" value="" visible="false"/>
<variable ID="602259393:1163176565" blockID="602259393" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="532024142" visible="true"/>
<variable ID="Sequence" blockID="532024142" visible="true"/>
<variable ID="654611229:extracted" blockID="654611229" visible="false"/>
<variable ID="718099495:output" blockID="718099495" visible="false"/>
<variable ID="619123890:binary sequence" blockID="619123890" visible="false"/>
<variable ID="619123890:output regions" blockID="619123890" visible="false"/>
<variable ID="1593437154:Regions of interest" blockID="1593437154" visible="false"/>
<variable ID="1593437154:Tracks" blockID="1593437154" visible="false"/>
<variable ID="1593437154:Labels" blockID="1593437154" visible="false"/>
<variable ID="365555398:output0" blockID="365555398" visible="false"/>
<variable ID="738259599:ROI" blockID="738259599" visible="false"/>
<variable ID="1499146886:Folder" blockID="1499146886" visible="false"/>
<variable ID="602259393:output0" blockID="602259393" visible="false"/>
</output>
</variables>
</workflow>
<block ID="686286284" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="false" definedName="Select Folder" height="230" keepsResults="true" width="457" xLocation="0" yLocation="0">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.plugins.tprovoost.scripteditor.uitools.filedialogs.FileDialog)&#10;importClass(Packages.icy.file.FileUtil)&#10;&#10;file = FileDialog.openFolder()&#10;if (file == null) throw &quot;Please open a folder first!&quot;&#10;output0 = file" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="0" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="java.lang.Object" value="" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.io.File" visible="true"/>
</output>
</variables>
</block>
<workflow ID="388466965" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Segmentation A: Non clustered objects" height="152" keepsResults="true" width="428" xLocation="470" yLocation="1">
<blocks>
<block ID="941062590" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Channel signal" height="167" keepsResults="true" width="466" xLocation="249" yLocation="33">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="2" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="236182041" blockType="plugins.adufour.filtering.GaussianFilter" className="plugins.adufour.filtering.FilterToolbox" collapsed="true" definedName="Gaussian filter" height="348" keepsResults="true" width="456" xLocation="458" yLocation="33">
<variables>
<input>
<variable ID="input" name="input" runtime="false" visible="true"/>
<variable ID="filterX" name="sigma (x)" runtime="false" value="0.0" visible="true"/>
<variable ID="filterY" name="sigma (y)" runtime="false" value="0.0" visible="true"/>
<variable ID="filterZ" name="sigma (z)" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="output" name="output" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1377097482" blockType="plugins.adufour.hierarchicalkmeans.HierarchicalKMeans" className="plugins.adufour.hierarchicalkmeans.HierarchicalKMeans" collapsed="true" definedName="HK-Means" height="317" keepsResults="true" width="422" xLocation="700" yLocation="32">
<variables>
<input>
<variable ID="Input" name="Input" runtime="false" visible="true"/>
<variable ID="Gaussian pre-filter" name="Gaussian pre-filter" runtime="false" value="0.0" visible="true"/>
<variable ID="Frame" name="Frame" runtime="false" value="0" visible="true"/>
<variable ID="Number of classes" name="Intensity classes" runtime="false" value="2" visible="true"/>
<variable ID="Min size (px)" name="Min object size (px)" runtime="false" value="5000" visible="true"/>
<variable ID="Max size (px)" name="Max object size (px)" runtime="false" value="1000000" visible="true"/>
<variable ID="Final threshold" name="Min object intensity" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="binary sequence" name="binary sequence" runtime="false" visible="true"/>
<variable ID="output regions" name="list of ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="289851022" blockType="plugins.adufour.activecontours.ActiveContours" className="plugins.adufour.activecontours.ActiveContours" collapsed="true" definedName="Active Contours" height="572" keepsResults="true" width="337" xLocation="902" yLocation="32">
<variables>
<input>
<variable ID="input sequence" name="Input" runtime="false" visible="true"/>
<variable ID="Input ROI" name="input ROI" runtime="false" visible="true"/>
<variable ID="regularization: weight" name="Contour smoothness" runtime="false" value="0.05" visible="false"/>
<variable ID="edge: weight" name="Edge weight" runtime="false" value="0.0" visible="false"/>
<variable ID="edge: channel" name="Find edges in channel" runtime="false" value="0" visible="false"/>
<variable ID="region: weight" name="Region weight" runtime="false" value="1.0" visible="false"/>
<variable ID="region: sensitivity" name="Region sensitivity" runtime="false" value="1.0" visible="false"/>
<variable ID="region: channel" name="Find regions in channel" runtime="false" value="0" visible="false"/>
<variable ID="balloon: weight" name="Contour inflation" runtime="false" value="0.001" visible="false"/>
<variable ID="contour resolution" name="Contour sampling" runtime="false" value="2.0" visible="true"/>
<variable ID="region bounds" name="Bound field to ROI of" runtime="false" value="No Sequence" visible="true"/>
<variable ID="time step" name="Evolution time step" runtime="false" value="1.0" visible="true"/>
<variable ID="convergence value" name="Convergence criterion" runtime="false" value="0.01" visible="true"/>
<variable ID="max. iterations" name="Max. iterations" runtime="false" value="100000" visible="true"/>
<variable ID="type of ROI output" name="Type of ROI" runtime="false" value="AREA" visible="true"/>
<variable ID="tracking" name="Track objects over time" runtime="false" value="false" visible="true"/>
<variable ID="division sensitivity" name="Division sensitivity" runtime="false" value="0.0" visible="true"/>
<variable ID="axis constraint" name="Axis constraint" runtime="false" value="0.0" visible="true"/>
<variable ID="Volume weight" name="Volume weight" runtime="false" value="0.01" visible="true"/>
<variable ID="watch entering objects" name="Watch entering objects" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="Regions of interest" name="Regions of interest" runtime="false" visible="true"/>
<variable ID="Tracks" name="Tracks" runtime="false" visible="true"/>
<variable ID="Labels" name="Labels" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="100941535" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented objects" height="101" keepsResults="true" width="303" xLocation="6" yLocation="430">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Tiff" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1383419486" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Text" height="134" keepsResults="true" width="337" xLocation="349" yLocation="435">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1505261431" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display objects signal" height="235" keepsResults="true" width="312" xLocation="0" yLocation="143">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1413462476" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display pre-processed objects" height="235" keepsResults="true" width="318" xLocation="335" yLocation="170">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="972202465" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display segmented objects" height="238" keepsResults="true" width="333" xLocation="727" yLocation="270">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="964277210" blockType="plugins.tprovoost.sequenceblocks.infos.GetName" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Get name" height="83" keepsResults="true" width="466" xLocation="656" yLocation="111">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="name" name="Name" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="768681132" blockType="plugins.tprovoost.sequenceblocks.infos.SetName" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Set name" height="123" keepsResults="true" width="466" xLocation="1011" yLocation="193">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="name" name="Name" runtime="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="439278621" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="142" keepsResults="true" width="466" xLocation="1173" yLocation="0">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1364088563" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="false" definedName="Javascript" height="374" keepsResults="true" width="469" xLocation="1278" yLocation="54">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;seq = input0&#10;name = seq.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;if (n==-1){&#10;&#9;name2=name&#10;} else {&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;title = name2 + &quot;_&quot; + input3&#10;seq.removeAllROI()&#10;&#10;file = input1&#10;FileUtil.createDir(file + &quot;\\&quot; + input3)&#10;path = file.getAbsolutePath()&#10;dir = path + &quot;\\&quot; + input3 + &quot;\\&quot; + title&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.saveAs(imp, input2, dir)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="3" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="352999237" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="216265632" name="input2" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="742920856" name="input3" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="941062590" dstVarID="sequence" srcBlockID="388466965" srcVarID="Sequence"/>
<link dstBlockID="439278621" dstVarID="Sequence" srcBlockID="388466965" srcVarID="Sequence"/>
<link dstBlockID="964277210" dstVarID="sequence" srcBlockID="388466965" srcVarID="Sequence"/>
<link dstBlockID="1505261431" dstVarID="object" srcBlockID="388466965" srcVarID="Sequence"/>
<link dstBlockID="236182041" dstVarID="input" srcBlockID="941062590" srcVarID="extracted"/>
<link dstBlockID="1377097482" dstVarID="Input" srcBlockID="236182041" srcVarID="output"/>
<link dstBlockID="1413462476" dstVarID="object" srcBlockID="236182041" srcVarID="output"/>
<link dstBlockID="289851022" dstVarID="Input ROI" srcBlockID="1377097482" srcVarID="output regions"/>
<link dstBlockID="289851022" dstVarID="input sequence" srcBlockID="1377097482" srcVarID="Input"/>
<link dstBlockID="768681132" dstVarID="sequence" srcBlockID="289851022" srcVarID="Labels"/>
<link dstBlockID="972202465" dstVarID="object" srcBlockID="289851022" srcVarID="Labels"/>
<link dstBlockID="1364088563" dstVarID="216265632" srcBlockID="100941535" srcVarID="text"/>
<link dstBlockID="1364088563" dstVarID="742920856" srcBlockID="1383419486" srcVarID="text"/>
<link dstBlockID="768681132" dstVarID="name" srcBlockID="964277210" srcVarID="name"/>
<link dstBlockID="1364088563" dstVarID="input0" srcBlockID="768681132" srcVarID="sequence"/>
<link dstBlockID="1364088563" dstVarID="352999237" srcBlockID="439278621" srcVarID="Folder"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="388466965" value="" visible="true"/>
<variable ID="extension" blockID="388466965" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="388466965" value="false" visible="true"/>
<variable ID="941062590:sequence" blockID="941062590" value="No Sequence" visible="false"/>
<variable ID="941062590:channel" blockID="941062590" value="2" visible="false"/>
<variable ID="236182041:input" blockID="236182041" value="No Sequence" visible="false"/>
<variable ID="236182041:filterX" blockID="236182041" value="0.0" visible="false"/>
<variable ID="236182041:filterY" blockID="236182041" value="0.0" visible="false"/>
<variable ID="236182041:filterZ" blockID="236182041" value="0.0" visible="false"/>
<variable ID="1377097482:Input" blockID="1377097482" value="No Sequence" visible="false"/>
<variable ID="1377097482:Gaussian pre-filter" blockID="1377097482" value="0.0" visible="false"/>
<variable ID="1377097482:Frame" blockID="1377097482" value="0" visible="false"/>
<variable ID="1377097482:Number of classes" blockID="1377097482" value="2" visible="false"/>
<variable ID="1377097482:Min size (px)" blockID="1377097482" value="5000" visible="false"/>
<variable ID="1377097482:Max size (px)" blockID="1377097482" value="1000000" visible="false"/>
<variable ID="1377097482:Final threshold" blockID="1377097482" value="0.0" visible="false"/>
<variable ID="289851022:input sequence" blockID="289851022" value="No Sequence" visible="false"/>
<variable ID="289851022:Input ROI" blockID="289851022" value="No ROI" visible="false"/>
<variable ID="289851022:regularization: weight" blockID="289851022" value="0.05" visible="false"/>
<variable ID="289851022:edge: weight" blockID="289851022" value="0.0" visible="false"/>
<variable ID="289851022:edge: channel" blockID="289851022" value="0" visible="false"/>
<variable ID="289851022:region: weight" blockID="289851022" value="1.0" visible="false"/>
<variable ID="289851022:region: sensitivity" blockID="289851022" value="1.0" visible="false"/>
<variable ID="289851022:region: channel" blockID="289851022" value="0" visible="false"/>
<variable ID="289851022:balloon: weight" blockID="289851022" value="0.001" visible="false"/>
<variable ID="289851022:contour resolution" blockID="289851022" value="2.0" visible="false"/>
<variable ID="289851022:region bounds" blockID="289851022" value="No Sequence" visible="false"/>
<variable ID="289851022:time step" blockID="289851022" value="1.0" visible="false"/>
<variable ID="289851022:convergence value" blockID="289851022" value="0.01" visible="false"/>
<variable ID="289851022:max. iterations" blockID="289851022" value="100000" visible="false"/>
<variable ID="289851022:type of ROI output" blockID="289851022" value="AREA" visible="false"/>
<variable ID="289851022:tracking" blockID="289851022" value="false" visible="false"/>
<variable ID="289851022:division sensitivity" blockID="289851022" value="0.0" visible="false"/>
<variable ID="289851022:axis constraint" blockID="289851022" value="0.0" visible="false"/>
<variable ID="289851022:Volume weight" blockID="289851022" value="0.01" visible="false"/>
<variable ID="289851022:watch entering objects" blockID="289851022" value="false" visible="false"/>
<variable ID="100941535:text" blockID="100941535" value="Tiff" visible="false"/>
<variable ID="1383419486:text" blockID="1383419486" value="Segmented nuclei" visible="false"/>
<variable ID="1505261431:object" blockID="1505261431" value="" visible="false"/>
<variable ID="1413462476:object" blockID="1413462476" value="" visible="false"/>
<variable ID="972202465:object" blockID="972202465" value="" visible="false"/>
<variable ID="964277210:sequence" blockID="964277210" value="No Sequence" visible="false"/>
<variable ID="768681132:sequence" blockID="768681132" value="No Sequence" visible="false"/>
<variable ID="768681132:name" blockID="768681132" value="" visible="false"/>
<variable ID="439278621:Sequence" blockID="439278621" value="No Sequence" visible="false"/>
<variable ID="1364088563:Script" blockID="1364088563" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;seq = input0&#10;name = seq.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;if (n==-1){&#10;&#9;name2=name&#10;} else {&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;title = name2 + &quot;_&quot; + input3&#10;seq.removeAllROI()&#10;&#10;file = input1&#10;FileUtil.createDir(file + &quot;\\&quot; + input3)&#10;path = file.getAbsolutePath()&#10;dir = path + &quot;\\&quot; + input3 + &quot;\\&quot; + title&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.saveAs(imp, input2, dir)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="false"/>
<variable ID="1364088563:Add Input" blockID="1364088563" value="3" visible="false"/>
<variable ID="1364088563:Add output" blockID="1364088563" value="0" visible="false"/>
<variable ID="1364088563:input0" blockID="1364088563" value="" visible="false"/>
<variable ID="1364088563:352999237" blockID="1364088563" value="" visible="false"/>
<variable ID="1364088563:216265632" blockID="1364088563" value="" visible="false"/>
<variable ID="1364088563:742920856" blockID="1364088563" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="388466965" visible="true"/>
<variable ID="Sequence" blockID="388466965" visible="true"/>
<variable ID="941062590:extracted" blockID="941062590" visible="false"/>
<variable ID="236182041:output" blockID="236182041" visible="false"/>
<variable ID="1377097482:binary sequence" blockID="1377097482" visible="false"/>
<variable ID="1377097482:output regions" blockID="1377097482" visible="false"/>
<variable ID="289851022:Regions of interest" blockID="289851022" visible="false"/>
<variable ID="289851022:Tracks" blockID="289851022" visible="false"/>
<variable ID="289851022:Labels" blockID="289851022" visible="false"/>
<variable ID="964277210:name" blockID="964277210" visible="false"/>
<variable ID="439278621:Folder" blockID="439278621" visible="false"/>
<variable ID="1364088563:output0" blockID="1364088563" visible="false"/>
</output>
</variables>
</workflow>
<workflow ID="1227986369" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Segmentation E: Clustered cytoplasm" height="171" keepsResults="true" width="430" xLocation="484" yLocation="706">
<blocks>
<block ID="1465294030" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="false" definedName="Channel cytoplasms" height="187" keepsResults="true" width="279" xLocation="28" yLocation="117">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="959273479" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented nuclei" height="101" keepsResults="true" width="299" xLocation="42" yLocation="343">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="tif" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="926327277" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Text" height="101" keepsResults="true" width="361" xLocation="364" yLocation="346">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="\Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1572606294" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented cytoplasms" height="101" keepsResults="true" width="327" xLocation="751" yLocation="344">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Tiff" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="355546002" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Text" height="101" keepsResults="true" width="403" xLocation="1095" yLocation="342">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Segmented cytoplasms" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1881981832" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="120" keepsResults="true" width="466" xLocation="539" yLocation="75">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="44424109" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Folder segmented nuclei" height="230" keepsResults="true" width="575" xLocation="337" yLocation="10">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1314603832" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="888" keepsResults="true" width="1057" xLocation="643" yLocation="0">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="name0 = input0.getName()&#10;name = &quot;_&quot; + input2.substring(1) + &quot;.&quot;&#10;n = name0.lastIndexOf(&quot;.&quot;)&#10;&#10;if (n==-1){&#10;&#9;title = name0&#10;}else{&#10;&#9;title=name0.substring(0, n)&#10;}&#10;output0 = &quot;\\&quot; + title + name + input1&#10;output1 = title&#10;" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1684571657" name="input1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="466487386" name="input2" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
<variable ID="1337716981" name="output1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="869684616" name="output2" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block ID="1457603694" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="248" keepsResults="true" width="1474" xLocation="864" yLocation="1">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1773773167" blockType="plugins.adufour.blocks.tools.io.FileToSequence" className="plugins.adufour.blocks.tools.io.FileToSequence" collapsed="true" definedName="File to sequence" height="145" keepsResults="true" width="279" xLocation="1084" yLocation="1">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
<variable ID="Series" name="Series" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1370966191" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1301" yLocation="4">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="950850564" blockType="plugins.adufour.filtering.GaussianFilter" className="plugins.adufour.filtering.FilterToolbox" collapsed="true" definedName="Gaussian filter" height="269" keepsResults="true" width="456" xLocation="510" yLocation="187">
<variables>
<input>
<variable ID="input" name="input" runtime="false" visible="true"/>
<variable ID="filterX" name="sigma (x)" runtime="false" value="0.0" visible="true"/>
<variable ID="filterY" name="sigma (y)" runtime="false" value="0.0" visible="true"/>
<variable ID="filterZ" name="sigma (z)" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="output" name="output" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="455185749" blockType="plugins.tprovoost.sequenceblocks.add.AddRois" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Add rois" height="158" keepsResults="true" width="565" xLocation="755" yLocation="182">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="rois(s)" name="Roi(s)" runtime="false" visible="true"/>
<variable ID="remove" name="Remove previous" runtime="false" value="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1238839709" blockType="plugins.adufour.activecontours.ActiveContours" className="plugins.adufour.activecontours.ActiveContours" collapsed="true" definedName="Active Contours" height="586" keepsResults="true" width="412" xLocation="934" yLocation="176">
<variables>
<input>
<variable ID="input sequence" name="Input" runtime="false" visible="true"/>
<variable ID="Input ROI" name="input ROI" runtime="false" visible="true"/>
<variable ID="regularization: weight" name="Contour smoothness" runtime="false" value="0.05" visible="false"/>
<variable ID="edge: weight" name="Edge weight" runtime="false" value="0.0" visible="false"/>
<variable ID="edge: channel" name="Find edges in channel" runtime="false" value="0" visible="false"/>
<variable ID="region: weight" name="Region weight" runtime="false" value="1.0" visible="false"/>
<variable ID="region: sensitivity" name="Region sensitivity" runtime="false" value="1.0" visible="false"/>
<variable ID="region: channel" name="Find regions in channel" runtime="false" value="0" visible="false"/>
<variable ID="balloon: weight" name="Contour inflation" runtime="false" value="0.01" visible="false"/>
<variable ID="contour resolution" name="Contour sampling" runtime="false" value="2.0" visible="true"/>
<variable ID="region bounds" name="Bound field to ROI of" runtime="false" value="No Sequence" visible="true"/>
<variable ID="time step" name="Evolution time step" runtime="false" value="1.0" visible="true"/>
<variable ID="convergence value" name="Convergence criterion" runtime="false" value="0.05" visible="true"/>
<variable ID="max. iterations" name="Max. iterations" runtime="false" value="100000" visible="true"/>
<variable ID="type of ROI output" name="Type of ROI" runtime="false" value="AREA" visible="true"/>
<variable ID="tracking" name="Track objects over time" runtime="false" value="false" visible="true"/>
<variable ID="division sensitivity" name="Division sensitivity" runtime="false" value="0.0" visible="true"/>
<variable ID="axis constraint" name="Axis constraint" runtime="false" value="0.0" visible="true"/>
<variable ID="Volume weight" name="Volume weight" runtime="false" value="0.01" visible="true"/>
<variable ID="watch entering objects" name="Watch entering objects" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="Regions of interest" name="Regions of interest" runtime="false" visible="true"/>
<variable ID="Tracks" name="Tracks" runtime="false" visible="true"/>
<variable ID="Labels" name="Labels" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="470689233" blockType="plugins.tprovoost.sequenceblocks.op.FillInnerSequence" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Fill inner sequence" height="166" keepsResults="true" width="466" xLocation="1221" yLocation="191">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="rois" name="Roi(s)" runtime="false" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="182634250" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display segmented cytoplasms" height="293" keepsResults="true" width="368" xLocation="858" yLocation="469">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="916668246" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display segmented nuclei" height="293" keepsResults="true" width="374" xLocation="443" yLocation="462">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1876136429" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="false" definedName="Javascript" height="834" keepsResults="true" width="588" xLocation="1504" yLocation="4">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;seq = input0&#10;title = &quot;\\&quot; + input2 + &quot;_&quot; + input4&#10;seq.removeAllROI()&#10;&#10;FileUtil.createDir(input1 + &quot;\\&quot; + input4)&#10;path = input1.getAbsolutePath() + &quot;\\&quot; + input4 + &quot;\\&quot;&#10;dir = path + title&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.saveAs(imp, input3, dir)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="4" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1125768073" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="533533930" name="input2" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="730835987" name="input3" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1915203306" name="input4" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.Object" visible="true"/>
</output>
</variables>
</block>
<block ID="1049095544" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display cytoplasms" height="292" keepsResults="true" width="377" xLocation="34" yLocation="455">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="1881981832" dstVarID="Sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1314603832" dstVarID="input0" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1465294030" dstVarID="sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="950850564" dstVarID="input" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="1049095544" dstVarID="object" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="1314603832" dstVarID="1684571657" srcBlockID="959273479" srcVarID="text"/>
<link dstBlockID="44424109" dstVarID="suffix" srcBlockID="926327277" srcVarID="text"/>
<link dstBlockID="1876136429" dstVarID="730835987" srcBlockID="1572606294" srcVarID="text"/>
<link dstBlockID="1876136429" dstVarID="1915203306" srcBlockID="355546002" srcVarID="text"/>
<link dstBlockID="44424109" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="1876136429" dstVarID="1125768073" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="1457603694" dstVarID="input file" srcBlockID="44424109" srcVarID="output file"/>
<link dstBlockID="1314603832" dstVarID="466487386" srcBlockID="44424109" srcVarID="suffix"/>
<link dstBlockID="1457603694" dstVarID="suffix" srcBlockID="1314603832" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="1876136429" dstVarID="533533930" srcBlockID="1314603832" srcVarID="1337716981" srcVarType="java.lang.String"/>
<link dstBlockID="1773773167" dstVarID="input file" srcBlockID="1457603694" srcVarID="output file"/>
<link dstBlockID="916668246" dstVarID="object" srcBlockID="1773773167" srcVarID="sequence"/>
<link dstBlockID="1370966191" dstVarID="input sequence" srcBlockID="1773773167" srcVarID="sequence"/>
<link dstBlockID="455185749" dstVarID="rois(s)" srcBlockID="1370966191" srcVarID="ROI"/>
<link dstBlockID="1238839709" dstVarID="Input ROI" srcBlockID="1370966191" srcVarID="ROI"/>
<link dstBlockID="455185749" dstVarID="sequence" srcBlockID="950850564" srcVarID="output"/>
<link dstBlockID="1238839709" dstVarID="input sequence" srcBlockID="455185749" srcVarID="sequence"/>
<link dstBlockID="470689233" dstVarID="rois" srcBlockID="1238839709" srcVarID="Input ROI"/>
<link dstBlockID="470689233" dstVarID="sequence" srcBlockID="1238839709" srcVarID="Labels"/>
<link dstBlockID="182634250" dstVarID="object" srcBlockID="470689233" srcVarID="sequence"/>
<link dstBlockID="1876136429" dstVarID="input0" srcBlockID="470689233" srcVarID="sequence"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="1227986369" value="" visible="true"/>
<variable ID="extension" blockID="1227986369" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="1227986369" value="false" visible="true"/>
<variable ID="1465294030:sequence" blockID="1465294030" value="No Sequence" visible="false"/>
<variable ID="1465294030:channel" blockID="1465294030" value="0" visible="false"/>
<variable ID="959273479:text" blockID="959273479" value="tif" visible="false"/>
<variable ID="926327277:text" blockID="926327277" value="\Segmented nuclei" visible="false"/>
<variable ID="1572606294:text" blockID="1572606294" value="Tiff" visible="false"/>
<variable ID="355546002:text" blockID="355546002" value="Segmented cytoplasms" visible="false"/>
<variable ID="1881981832:Sequence" blockID="1881981832" value="No Sequence" visible="false"/>
<variable ID="44424109:input file" blockID="44424109" value="" visible="false"/>
<variable ID="44424109:remove ext." blockID="44424109" value="false" visible="false"/>
<variable ID="44424109:suffix" blockID="44424109" value="\Segmented nuclei" visible="false"/>
<variable ID="1314603832:Script" blockID="1314603832" value="name0 = input0.getName()&#10;name = &quot;_&quot; + input2.substring(1) + &quot;.&quot;&#10;n = name0.lastIndexOf(&quot;.&quot;)&#10;&#10;if (n==-1){&#10;&#9;title = name0&#10;}else{&#10;&#9;title=name0.substring(0, n)&#10;}&#10;output0 = &quot;\\&quot; + title + name + input1&#10;output1 = title&#10;" visible="false"/>
<variable ID="1314603832:Add Input" blockID="1314603832" value="2" visible="false"/>
<variable ID="1314603832:Add output" blockID="1314603832" value="2" visible="false"/>
<variable ID="1314603832:input0" blockID="1314603832" value="" visible="false"/>
<variable ID="1314603832:1684571657" blockID="1314603832" value="" visible="false"/>
<variable ID="1314603832:466487386" blockID="1314603832" value="" visible="false"/>
<variable ID="1457603694:input file" blockID="1457603694" value="" visible="false"/>
<variable ID="1457603694:remove ext." blockID="1457603694" value="false" visible="false"/>
<variable ID="1457603694:suffix" blockID="1457603694" value="" visible="false"/>
<variable ID="1773773167:input file" blockID="1773773167" value="" visible="false"/>
<variable ID="1773773167:Series" blockID="1773773167" value="0" visible="false"/>
<variable ID="1370966191:input sequence" blockID="1370966191" value="No Sequence" visible="false"/>
<variable ID="1370966191:extract mode" blockID="1370966191" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="1370966191:value" blockID="1370966191" value="0.0" visible="false"/>
<variable ID="950850564:input" blockID="950850564" value="No Sequence" visible="false"/>
<variable ID="950850564:filterX" blockID="950850564" value="0.0" visible="false"/>
<variable ID="950850564:filterY" blockID="950850564" value="0.0" visible="false"/>
<variable ID="950850564:filterZ" blockID="950850564" value="0.0" visible="false"/>
<variable ID="455185749:sequence" blockID="455185749" value="No Sequence" visible="false"/>
<variable ID="455185749:rois(s)" blockID="455185749" value="No ROI" visible="false"/>
<variable ID="455185749:remove" blockID="455185749" value="false" visible="false"/>
<variable ID="1238839709:input sequence" blockID="1238839709" value="No Sequence" visible="false"/>
<variable ID="1238839709:Input ROI" blockID="1238839709" value="No ROI" visible="false"/>
<variable ID="1238839709:regularization: weight" blockID="1238839709" value="0.05" visible="false"/>
<variable ID="1238839709:edge: weight" blockID="1238839709" value="0.0" visible="false"/>
<variable ID="1238839709:edge: channel" blockID="1238839709" value="0" visible="false"/>
<variable ID="1238839709:region: weight" blockID="1238839709" value="1.0" visible="false"/>
<variable ID="1238839709:region: sensitivity" blockID="1238839709" value="1.0" visible="false"/>
<variable ID="1238839709:region: channel" blockID="1238839709" value="0" visible="false"/>
<variable ID="1238839709:balloon: weight" blockID="1238839709" value="0.01" visible="false"/>
<variable ID="1238839709:contour resolution" blockID="1238839709" value="2.0" visible="false"/>
<variable ID="1238839709:region bounds" blockID="1238839709" value="No Sequence" visible="false"/>
<variable ID="1238839709:time step" blockID="1238839709" value="1.0" visible="false"/>
<variable ID="1238839709:convergence value" blockID="1238839709" value="0.05" visible="false"/>
<variable ID="1238839709:max. iterations" blockID="1238839709" value="100000" visible="false"/>
<variable ID="1238839709:type of ROI output" blockID="1238839709" value="AREA" visible="false"/>
<variable ID="1238839709:tracking" blockID="1238839709" value="false" visible="false"/>
<variable ID="1238839709:division sensitivity" blockID="1238839709" value="0.0" visible="false"/>
<variable ID="1238839709:axis constraint" blockID="1238839709" value="0.0" visible="false"/>
<variable ID="1238839709:Volume weight" blockID="1238839709" value="0.01" visible="false"/>
<variable ID="1238839709:watch entering objects" blockID="1238839709" value="false" visible="false"/>
<variable ID="470689233:sequence" blockID="470689233" value="No Sequence" visible="false"/>
<variable ID="470689233:rois" blockID="470689233" value="No ROI" visible="false"/>
<variable ID="470689233:value" blockID="470689233" value="0.0" visible="false"/>
<variable ID="182634250:object" blockID="182634250" value="" visible="false"/>
<variable ID="916668246:object" blockID="916668246" value="" visible="false"/>
<variable ID="1876136429:Script" blockID="1876136429" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;seq = input0&#10;title = &quot;\\&quot; + input2 + &quot;_&quot; + input4&#10;seq.removeAllROI()&#10;&#10;FileUtil.createDir(input1 + &quot;\\&quot; + input4)&#10;path = input1.getAbsolutePath() + &quot;\\&quot; + input4 + &quot;\\&quot;&#10;dir = path + title&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.saveAs(imp, input3, dir)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="false"/>
<variable ID="1876136429:Add Input" blockID="1876136429" value="4" visible="false"/>
<variable ID="1876136429:Add output" blockID="1876136429" value="0" visible="false"/>
<variable ID="1876136429:input0" blockID="1876136429" value="" visible="false"/>
<variable ID="1876136429:1125768073" blockID="1876136429" value="" visible="false"/>
<variable ID="1876136429:533533930" blockID="1876136429" value="" visible="false"/>
<variable ID="1876136429:730835987" blockID="1876136429" value="" visible="false"/>
<variable ID="1876136429:1915203306" blockID="1876136429" value="" visible="false"/>
<variable ID="1049095544:object" blockID="1049095544" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="1227986369" visible="true"/>
<variable ID="Sequence" blockID="1227986369" visible="true"/>
<variable ID="1465294030:extracted" blockID="1465294030" visible="false"/>
<variable ID="1881981832:Folder" blockID="1881981832" visible="false"/>
<variable ID="44424109:output file" blockID="44424109" visible="false"/>
<variable ID="1314603832:output0" blockID="1314603832" visible="false"/>
<variable ID="1314603832:1337716981" blockID="1314603832" visible="false"/>
<variable ID="1314603832:869684616" blockID="1314603832" visible="false"/>
<variable ID="1457603694:output file" blockID="1457603694" visible="false"/>
<variable ID="1773773167:sequence" blockID="1773773167" visible="false"/>
<variable ID="1370966191:ROI" blockID="1370966191" visible="false"/>
<variable ID="950850564:output" blockID="950850564" visible="false"/>
<variable ID="1238839709:Regions of interest" blockID="1238839709" visible="false"/>
<variable ID="1238839709:Tracks" blockID="1238839709" visible="false"/>
<variable ID="1238839709:Labels" blockID="1238839709" visible="false"/>
<variable ID="1876136429:output0" blockID="1876136429" visible="false"/>
</output>
</variables>
</workflow>
<workflow ID="1519388123" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Merge Channels" height="270" keepsResults="true" width="452" xLocation="9" yLocation="237">
<blocks>
<block CommandLineID="" ID="772139835" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="Channel number 1" height="101" keepsResults="true" width="204" xLocation="0" yLocation="306">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="54270378" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder channel number 1" height="101" keepsResults="true" width="240" xLocation="218" yLocation="306">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="\red" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="183988589" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Separator channel number 1" height="101" keepsResults="true" width="260" xLocation="468" yLocation="308">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="_red" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1787888285" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="Colormap channel nb 1" height="104" keepsResults="true" width="232" xLocation="737" yLocation="293">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="1" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="2028391256" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="Channel number 2" height="101" keepsResults="true" width="204" xLocation="1" yLocation="414">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="1" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1388975251" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder channel number 2" height="101" keepsResults="true" width="241" xLocation="219" yLocation="412">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="\green" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1423160567" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Separator channel number 2" height="101" keepsResults="true" width="260" xLocation="474" yLocation="414">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="_green" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="210701174" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="Colormap channel nb 2" height="101" keepsResults="true" width="232" xLocation="749" yLocation="411">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="2" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="996179087" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="Channel number 3" height="101" keepsResults="true" width="204" xLocation="0" yLocation="526">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="2" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1362787491" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder channel number 3" height="101" keepsResults="true" width="249" xLocation="215" yLocation="529">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="\blue" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="494734828" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Separator channel number 3" height="101" keepsResults="true" width="260" xLocation="471" yLocation="522">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="_blue" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="535239202" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="Colormap channel nb 3" height="101" keepsResults="true" width="232" xLocation="744" yLocation="526">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="565350650" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="83" keepsResults="true" width="466" xLocation="246" yLocation="139">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1103954714" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript (Parent File)" height="443" keepsResults="true" width="547" xLocation="510" yLocation="230">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="output0 = input0.getParentFile()&#10;" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="0" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="java.io.File" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.io.File" visible="true"/>
</output>
</variables>
</block>
<block ID="1446150328" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Folder 1" height="218" keepsResults="true" width="403" xLocation="1398" yLocation="357">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1092422315" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript " height="573" keepsResults="true" width="547" xLocation="544" yLocation="0">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="name = input0.getName()&#10;output0 = &quot;\\&quot; + input0.getName()&#10;name1 = name.replace(input1, input2)&#10;output1 = &quot;\\&quot; + name1&#10;if (input3!=null){&#10;&#9;name2 = name.replace(input1, input3)&#10;&#9;output2 = &quot;\\&quot; + name2&#10;}&#10;" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="3" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="896794298" name="input1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="453910658" name="input2" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1404652618" name="input3" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
<variable ID="548269099" name="output1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1486903251" name="output2" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block ID="372691618" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="1295" yLocation="202">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="648392762" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Folder 2" height="223" keepsResults="true" width="387" xLocation="1273" yLocation="457">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="565114225" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="1487" yLocation="457">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="876194128" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Folder 3" height="229" keepsResults="true" width="392" xLocation="1236" yLocation="572">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1005593630" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="251" keepsResults="true" width="387" xLocation="1429" yLocation="571">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1426440199" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript (Extract Channels)" height="617" keepsResults="true" width="547" xLocation="1535" yLocation="203">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.sequence.SequenceUtil)&#10;importClass(Packages.icy.file.Loader)&#10;&#10;if (input0.exists()){&#10;&#9;file = input0.getAbsoluteFile()&#10;&#9;path = file.getAbsolutePath()&#10;&#9;seq = Loader.loadSequence(file, 0, true)&#10;&#9;output0 = SequenceUtil.extractChannel(seq, input3)&#10;}&#10;&#10;if (input1.exists()){&#10;&#9;file1 = input1.getAbsoluteFile()&#10;&#9;path1 = file1.getAbsolutePath()&#10;&#9;seq1 = Loader.loadSequence(file1, 0, true)&#10;&#9;output1 = SequenceUtil.extractChannel(seq1, input4)&#10;}&#10;if (input2.exists()){&#10;&#9;file2 = input2.getAbsoluteFile()&#10;&#9;path2 = file2.getAbsolutePath()&#10;&#9;seq2 = Loader.loadSequence(file2, 0, true)&#10;&#9;output2 = SequenceUtil.extractChannel(seq2, input5)&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="5" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="java.io.File" visible="true"/>
<variable ID="206714308" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="1309040553" name="input2" runtime="true" type="java.io.File" visible="true"/>
<variable ID="1541077021" name="input3" runtime="true" type="int" visible="true"/>
<variable ID="153822738" name="input4" runtime="true" type="int" visible="true"/>
<variable ID="1096673377" name="input5" runtime="true" type="int" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1382116002" name="output1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="123584903" name="output2" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="425170144" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="188" keepsResults="true" width="204" xLocation="1830" yLocation="325">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="111286470" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="194" keepsResults="true" width="208" xLocation="717" yLocation="646">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="643450498" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="195" keepsResults="true" width="207" xLocation="461" yLocation="644">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1860202241" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript (Merge Folder)" height="443" keepsResults="true" width="547" xLocation="499" yLocation="84">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="/*Création du dossier Merge*/&#10;&#10;importClass(Packages.icy.file.FileUtil)&#10;&#10;file = input0.getParentFile()&#10;FileUtil.createDir(file + &quot;\\Merge&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="0" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="java.io.File" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.io.File" visible="true"/>
</output>
</variables>
</block>
<block ID="582825372" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="210" keepsResults="true" width="685" xLocation="777" yLocation="107">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\Merge" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="7529274" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format merged images" height="101" keepsResults="true" width="251" xLocation="53" yLocation="701">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value=".jpg" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="700067015" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript (Merge)" height="739" keepsResults="true" width="547" xLocation="1829" yLocation="133">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.file.Saver)&#10;importClass(Packages.icy.image.colormap.IcyColorMap)&#10;importClass(Packages.icy.sequence.SequenceUtil)&#10;importClass(Packages.java.io.File)&#10;&#10;var nbchannels = 2&#10;if (input2!=null){&#10;&#9;nbchannels++ &#10;}&#10;name = input3.getName()&#10;name1 = name.replace(input6, &quot;&quot;)&#10;n = name1.lastIndexOf(&quot;.&quot;)&#10;dir = new File(input4.getAbsolutePath() + &quot;\\&quot; + name1.substring(0, n) + input5)&#10;&#10;colormaps = IcyColorMap.getAllColorMaps(true, true)&#10;&#10;if (nbchannels==3){&#10;&#9;ch0 = colormaps.get(input7)&#10;&#9;ch1 = colormaps.get(input8)&#10;&#9;ch2 = colormaps.get(input9)&#10;&#9;&#10;&#9;sequence = [input0, input1, input2]&#10;&#9;seq = SequenceUtil.concatC(sequence)&#10;&#10;&#9;seq.setColormap(input10, ch0)&#10;&#9;seq.setColormap(input11, ch1)&#10;&#9;seq.setColormap(input12, ch2)&#9;&#10;&#10;} else{&#10;&#9;ch0 = colormaps.get(input7)&#10;&#9;ch1 = colormaps.get(input8)&#10;&#9;&#10;&#9;sequence = [input0, input1]&#9;&#10;&#9;seq1 = SequenceUtil.concatC(sequence)&#10;&#9;seq = SequenceUtil.toRGB(seq1)&#10;&#10;&#9;seq.setColormap(input10, ch0)&#10;&#9;seq.setColormap(input11, ch1)&#10;}&#10;seq.setName(name1.substring(0, n))&#10;Saver.save(seq, dir)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="12" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1805463725" name="input1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="211552502" name="input2" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="95844633" name="input3" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1298698782" name="input4" runtime="true" type="java.io.File" visible="true"/>
<variable ID="1136031260" name="input5" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="890700181" name="input6" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1308215326" name="input7" runtime="true" type="int" visible="true"/>
<variable ID="2049062544" name="input8" runtime="true" type="int" visible="true"/>
<variable ID="1583346291" name="input9" runtime="true" type="int" visible="true"/>
<variable ID="1145278351" name="input10" runtime="true" type="int" visible="true"/>
<variable ID="311272347" name="input11" runtime="true" type="int" visible="true"/>
<variable ID="1412151094" name="input12" runtime="true" type="int" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="951764705" name="output1" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="1092422315" dstVarID="input0" srcBlockID="1519388123" srcVarID="Sequence"/>
<link dstBlockID="700067015" dstVarID="95844633" srcBlockID="1519388123" srcVarID="Sequence"/>
<link dstBlockID="565350650" dstVarID="Sequence" srcBlockID="1519388123" srcVarID="Sequence"/>
<link dstBlockID="1426440199" dstVarID="1541077021" srcBlockID="772139835" srcVarID="integer"/>
<link dstBlockID="700067015" dstVarID="1145278351" srcBlockID="772139835" srcVarID="integer"/>
<link dstBlockID="1446150328" dstVarID="suffix" srcBlockID="54270378" srcVarID="text"/>
<link dstBlockID="1092422315" dstVarID="896794298" srcBlockID="183988589" srcVarID="text"/>
<link dstBlockID="700067015" dstVarID="890700181" srcBlockID="183988589" srcVarID="text"/>
<link dstBlockID="700067015" dstVarID="1308215326" srcBlockID="1787888285" srcVarID="integer"/>
<link dstBlockID="1426440199" dstVarID="153822738" srcBlockID="2028391256" srcVarID="integer"/>
<link dstBlockID="700067015" dstVarID="311272347" srcBlockID="2028391256" srcVarID="integer"/>
<link dstBlockID="648392762" dstVarID="suffix" srcBlockID="1388975251" srcVarID="text"/>
<link dstBlockID="1092422315" dstVarID="453910658" srcBlockID="1423160567" srcVarID="text"/>
<link dstBlockID="700067015" dstVarID="2049062544" srcBlockID="210701174" srcVarID="integer"/>
<link dstBlockID="1426440199" dstVarID="1096673377" srcBlockID="996179087" srcVarID="integer"/>
<link dstBlockID="700067015" dstVarID="1412151094" srcBlockID="996179087" srcVarID="integer"/>
<link dstBlockID="876194128" dstVarID="suffix" srcBlockID="1362787491" srcVarID="text"/>
<link dstBlockID="1092422315" dstVarID="1404652618" srcBlockID="494734828" srcVarID="text"/>
<link dstBlockID="700067015" dstVarID="1583346291" srcBlockID="535239202" srcVarID="integer"/>
<link dstBlockID="1860202241" dstVarID="input0" srcBlockID="565350650" srcVarID="Folder"/>
<link dstBlockID="1103954714" dstVarID="input0" srcBlockID="565350650" srcVarID="Folder"/>
<link dstBlockID="1446150328" dstVarID="input file" srcBlockID="1103954714" srcVarID="output0" srcVarType="java.io.File"/>
<link dstBlockID="648392762" dstVarID="input file" srcBlockID="1103954714" srcVarID="output0" srcVarType="java.io.File"/>
<link dstBlockID="876194128" dstVarID="input file" srcBlockID="1103954714" srcVarID="output0" srcVarType="java.io.File"/>
<link dstBlockID="582825372" dstVarID="input file" srcBlockID="1103954714" srcVarID="output0" srcVarType="java.io.File"/>
<link dstBlockID="372691618" dstVarID="input file" srcBlockID="1446150328" srcVarID="output file"/>
<link dstBlockID="372691618" dstVarID="suffix" srcBlockID="1092422315" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="565114225" dstVarID="suffix" srcBlockID="1092422315" srcVarID="548269099" srcVarType="java.lang.String"/>
<link dstBlockID="1005593630" dstVarID="suffix" srcBlockID="1092422315" srcVarID="1486903251" srcVarType="java.lang.String"/>
<link dstBlockID="1426440199" dstVarID="input0" srcBlockID="372691618" srcVarID="output file"/>
<link dstBlockID="565114225" dstVarID="input file" srcBlockID="648392762" srcVarID="output file"/>
<link dstBlockID="1426440199" dstVarID="206714308" srcBlockID="565114225" srcVarID="output file"/>
<link dstBlockID="1005593630" dstVarID="input file" srcBlockID="876194128" srcVarID="output file"/>
<link dstBlockID="1426440199" dstVarID="1309040553" srcBlockID="1005593630" srcVarID="output file"/>
<link dstBlockID="643450498" dstVarID="object" srcBlockID="1426440199" srcVarID="123584903" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="111286470" dstVarID="object" srcBlockID="1426440199" srcVarID="1382116002" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="425170144" dstVarID="object" srcBlockID="1426440199" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="700067015" dstVarID="input0" srcBlockID="1426440199" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="700067015" dstVarID="1805463725" srcBlockID="1426440199" srcVarID="1382116002" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="700067015" dstVarID="211552502" srcBlockID="1426440199" srcVarID="123584903" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="700067015" dstVarID="1298698782" srcBlockID="582825372" srcVarID="output file"/>
<link dstBlockID="700067015" dstVarID="1136031260" srcBlockID="7529274" srcVarID="text"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="1519388123" value="C:\Users\aigueper5\Documents\Christelle\publications\programme\Article JoVe 2eme soumission\VIDEO\images\red" visible="true"/>
<variable ID="extension" blockID="1519388123" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="1519388123" value="false" visible="true"/>
<variable ID="772139835:integer" blockID="772139835" value="0" visible="false"/>
<variable ID="54270378:text" blockID="54270378" value="\red" visible="false"/>
<variable ID="183988589:text" blockID="183988589" value="_red" visible="false"/>
<variable ID="1787888285:integer" blockID="1787888285" value="1" visible="false"/>
<variable ID="2028391256:integer" blockID="2028391256" value="1" visible="false"/>
<variable ID="1388975251:text" blockID="1388975251" value="\green" visible="false"/>
<variable ID="1423160567:text" blockID="1423160567" value="_green" visible="false"/>
<variable ID="210701174:integer" blockID="210701174" value="2" visible="false"/>
<variable ID="996179087:integer" blockID="996179087" value="2" visible="false"/>
<variable ID="1362787491:text" blockID="1362787491" value="\blue" visible="false"/>
<variable ID="494734828:text" blockID="494734828" value="_blue" visible="false"/>
<variable ID="535239202:integer" blockID="535239202" value="0" visible="false"/>
<variable ID="565350650:Sequence" blockID="565350650" value="No Sequence" visible="false"/>
<variable ID="1103954714:Script" blockID="1103954714" value="output0 = input0.getParentFile()&#10;" visible="false"/>
<variable ID="1103954714:Add Input" blockID="1103954714" value="0" visible="false"/>
<variable ID="1103954714:Add output" blockID="1103954714" value="0" visible="false"/>
<variable ID="1103954714:input0" blockID="1103954714" value="" visible="false"/>
<variable ID="1446150328:input file" blockID="1446150328" value="" visible="false"/>
<variable ID="1446150328:remove ext." blockID="1446150328" value="false" visible="false"/>
<variable ID="1446150328:suffix" blockID="1446150328" value="\red" visible="false"/>
<variable ID="1092422315:Script" blockID="1092422315" value="name = input0.getName()&#10;output0 = &quot;\\&quot; + input0.getName()&#10;name1 = name.replace(input1, input2)&#10;output1 = &quot;\\&quot; + name1&#10;if (input3!=null){&#10;&#9;name2 = name.replace(input1, input3)&#10;&#9;output2 = &quot;\\&quot; + name2&#10;}&#10;" visible="false"/>
<variable ID="1092422315:Add Input" blockID="1092422315" value="3" visible="false"/>
<variable ID="1092422315:Add output" blockID="1092422315" value="2" visible="false"/>
<variable ID="1092422315:input0" blockID="1092422315" value="" visible="false"/>
<variable ID="1092422315:896794298" blockID="1092422315" value="" visible="false"/>
<variable ID="1092422315:453910658" blockID="1092422315" value="" visible="false"/>
<variable ID="1092422315:1404652618" blockID="1092422315" value="" visible="false"/>
<variable ID="372691618:input file" blockID="372691618" value="" visible="false"/>
<variable ID="372691618:remove ext." blockID="372691618" value="false" visible="false"/>
<variable ID="372691618:suffix" blockID="372691618" value="" visible="false"/>
<variable ID="648392762:input file" blockID="648392762" value="" visible="false"/>
<variable ID="648392762:remove ext." blockID="648392762" value="false" visible="false"/>
<variable ID="648392762:suffix" blockID="648392762" value="\green" visible="false"/>
<variable ID="565114225:input file" blockID="565114225" value="" visible="false"/>
<variable ID="565114225:remove ext." blockID="565114225" value="false" visible="false"/>
<variable ID="565114225:suffix" blockID="565114225" value="" visible="false"/>
<variable ID="876194128:input file" blockID="876194128" value="" visible="false"/>
<variable ID="876194128:remove ext." blockID="876194128" value="false" visible="false"/>
<variable ID="876194128:suffix" blockID="876194128" value="\blue" visible="false"/>
<variable ID="1005593630:input file" blockID="1005593630" value="" visible="false"/>
<variable ID="1005593630:remove ext." blockID="1005593630" value="false" visible="false"/>
<variable ID="1005593630:suffix" blockID="1005593630" value="" visible="false"/>
<variable ID="1426440199:Script" blockID="1426440199" value="importClass(Packages.icy.sequence.SequenceUtil)&#10;importClass(Packages.icy.file.Loader)&#10;&#10;if (input0.exists()){&#10;&#9;file = input0.getAbsoluteFile()&#10;&#9;path = file.getAbsolutePath()&#10;&#9;seq = Loader.loadSequence(file, 0, true)&#10;&#9;output0 = SequenceUtil.extractChannel(seq, input3)&#10;}&#10;&#10;if (input1.exists()){&#10;&#9;file1 = input1.getAbsoluteFile()&#10;&#9;path1 = file1.getAbsolutePath()&#10;&#9;seq1 = Loader.loadSequence(file1, 0, true)&#10;&#9;output1 = SequenceUtil.extractChannel(seq1, input4)&#10;}&#10;if (input2.exists()){&#10;&#9;file2 = input2.getAbsoluteFile()&#10;&#9;path2 = file2.getAbsolutePath()&#10;&#9;seq2 = Loader.loadSequence(file2, 0, true)&#10;&#9;output2 = SequenceUtil.extractChannel(seq2, input5)&#10;}" visible="false"/>
<variable ID="1426440199:Add Input" blockID="1426440199" value="5" visible="false"/>
<variable ID="1426440199:Add output" blockID="1426440199" value="2" visible="false"/>
<variable ID="1426440199:input0" blockID="1426440199" value="" visible="false"/>
<variable ID="1426440199:206714308" blockID="1426440199" value="" visible="false"/>
<variable ID="1426440199:1309040553" blockID="1426440199" value="" visible="false"/>
<variable ID="1426440199:1541077021" blockID="1426440199" value="" visible="false"/>
<variable ID="1426440199:153822738" blockID="1426440199" value="" visible="false"/>
<variable ID="1426440199:1096673377" blockID="1426440199" value="" visible="false"/>
<variable ID="425170144:object" blockID="425170144" value="" visible="false"/>
<variable ID="111286470:object" blockID="111286470" value="" visible="false"/>
<variable ID="643450498:object" blockID="643450498" value="" visible="false"/>
<variable ID="1860202241:Script" blockID="1860202241" value="/*Création du dossier Merge*/&#10;&#10;importClass(Packages.icy.file.FileUtil)&#10;&#10;file = input0.getParentFile()&#10;FileUtil.createDir(file + &quot;\\Merge&quot;)" visible="false"/>
<variable ID="1860202241:Add Input" blockID="1860202241" value="0" visible="false"/>
<variable ID="1860202241:Add output" blockID="1860202241" value="0" visible="false"/>
<variable ID="1860202241:input0" blockID="1860202241" value="" visible="false"/>
<variable ID="582825372:input file" blockID="582825372" value="" visible="false"/>
<variable ID="582825372:remove ext." blockID="582825372" value="false" visible="false"/>
<variable ID="582825372:suffix" blockID="582825372" value="\Merge" visible="false"/>
<variable ID="7529274:text" blockID="7529274" value=".jpg" visible="false"/>
<variable ID="700067015:Script" blockID="700067015" value="importClass(Packages.icy.file.Saver)&#10;importClass(Packages.icy.image.colormap.IcyColorMap)&#10;importClass(Packages.icy.sequence.SequenceUtil)&#10;importClass(Packages.java.io.File)&#10;&#10;var nbchannels = 2&#10;if (input2!=null){&#10;&#9;nbchannels++ &#10;}&#10;name = input3.getName()&#10;name1 = name.replace(input6, &quot;&quot;)&#10;n = name1.lastIndexOf(&quot;.&quot;)&#10;dir = new File(input4.getAbsolutePath() + &quot;\\&quot; + name1.substring(0, n) + input5)&#10;&#10;colormaps = IcyColorMap.getAllColorMaps(true, true)&#10;&#10;if (nbchannels==3){&#10;&#9;ch0 = colormaps.get(input7)&#10;&#9;ch1 = colormaps.get(input8)&#10;&#9;ch2 = colormaps.get(input9)&#10;&#9;&#10;&#9;sequence = [input0, input1, input2]&#10;&#9;seq = SequenceUtil.concatC(sequence)&#10;&#10;&#9;seq.setColormap(input10, ch0)&#10;&#9;seq.setColormap(input11, ch1)&#10;&#9;seq.setColormap(input12, ch2)&#9;&#10;&#10;} else{&#10;&#9;ch0 = colormaps.get(input7)&#10;&#9;ch1 = colormaps.get(input8)&#10;&#9;&#10;&#9;sequence = [input0, input1]&#9;&#10;&#9;seq1 = SequenceUtil.concatC(sequence)&#10;&#9;seq = SequenceUtil.toRGB(seq1)&#10;&#10;&#9;seq.setColormap(input10, ch0)&#10;&#9;seq.setColormap(input11, ch1)&#10;}&#10;seq.setName(name1.substring(0, n))&#10;Saver.save(seq, dir)" visible="false"/>
<variable ID="700067015:Add Input" blockID="700067015" value="12" visible="false"/>
<variable ID="700067015:Add output" blockID="700067015" value="1" visible="false"/>
<variable ID="700067015:input0" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:1805463725" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:211552502" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:95844633" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:1298698782" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:1136031260" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:890700181" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:1308215326" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:2049062544" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:1583346291" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:1145278351" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:311272347" blockID="700067015" value="" visible="false"/>
<variable ID="700067015:1412151094" blockID="700067015" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="1519388123" visible="true"/>
<variable ID="Sequence" blockID="1519388123" visible="true"/>
<variable ID="565350650:Folder" blockID="565350650" visible="false"/>
<variable ID="1103954714:output0" blockID="1103954714" visible="false"/>
<variable ID="1446150328:output file" blockID="1446150328" visible="false"/>
<variable ID="1092422315:output0" blockID="1092422315" visible="false"/>
<variable ID="1092422315:548269099" blockID="1092422315" visible="false"/>
<variable ID="1092422315:1486903251" blockID="1092422315" visible="false"/>
<variable ID="372691618:output file" blockID="372691618" visible="false"/>
<variable ID="648392762:output file" blockID="648392762" visible="false"/>
<variable ID="565114225:output file" blockID="565114225" visible="false"/>
<variable ID="876194128:output file" blockID="876194128" visible="false"/>
<variable ID="1005593630:output file" blockID="1005593630" visible="false"/>
<variable ID="1426440199:output0" blockID="1426440199" visible="false"/>
<variable ID="1426440199:1382116002" blockID="1426440199" visible="false"/>
<variable ID="1426440199:123584903" blockID="1426440199" visible="false"/>
<variable ID="1860202241:output0" blockID="1860202241" visible="false"/>
<variable ID="582825372:output file" blockID="582825372" visible="false"/>
<variable ID="700067015:output0" blockID="700067015" visible="false"/>
<variable ID="700067015:951764705" blockID="700067015" visible="false"/>
</output>
</variables>
</workflow>
<workflow ID="1227986369" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Fluorescence Analysis B: 2 Channels in the same compartment" height="142" keepsResults="true" width="453" xLocation="935" yLocation="167">
<blocks>
<block CommandLineID="" ID="332682527" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder images ROI" height="101" keepsResults="true" width="204" xLocation="260" yLocation="286">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="\Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="544508846" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented objects" height="102" keepsResults="true" width="291" xLocation="284" yLocation="546">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="tif" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1465294030" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="false" definedName="Channel spots signal a" height="115" keepsResults="true" width="247" xLocation="234" yLocation="754">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="747816326" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display spots signal a" height="193" keepsResults="true" width="223" xLocation="634" yLocation="885">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1707627949" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="376" keepsResults="true" width="616" xLocation="820" yLocation="418">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="name = input0.getName()&#10;length = name.lastIndexOf(&quot;.&quot;)&#10;&#10;if (length==-1){&#10;&#9;name2=name&#10;}else{&#10;&#9;name2=name.substring(0, length)&#10;}&#10;output0 = &quot;\\&quot; + name2 + &quot;_&quot; + input2.substring(1) + &quot;.&quot; + input1&#10;output1 = name2" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="394986482" name="input1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1453495770" name="input2" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
<variable ID="1407416829" name="output1" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block ID="1881981832" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="138" keepsResults="true" width="466" xLocation="276" yLocation="88">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="44424109" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Folder segmented objects" height="206" keepsResults="true" width="575" xLocation="827" yLocation="331">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1457603694" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="248" keepsResults="true" width="376" xLocation="1088" yLocation="432">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1773773167" blockType="plugins.adufour.blocks.tools.io.FileToSequence" className="plugins.adufour.blocks.tools.io.FileToSequence" collapsed="true" definedName="File to sequence" height="145" keepsResults="true" width="279" xLocation="1305" yLocation="439">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
<variable ID="Series" name="Series" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1672243628" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Kill Borders?" height="101" keepsResults="true" width="198" xLocation="1510" yLocation="304">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Yes" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="2066289315" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript (KillBorders)" height="379" keepsResults="true" width="1193" xLocation="1522" yLocation="436">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input1==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="1" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1247302414" name="input1" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1370966191" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor (ROI)" height="130" keepsResults="true" width="292" xLocation="1854" yLocation="647">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1325609947" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter ROI by size" height="282" keepsResults="true" width="444" xLocation="2099" yLocation="649">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E10" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="455185749" blockType="plugins.tprovoost.sequenceblocks.add.AddRois" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Add rois" height="133" keepsResults="true" width="351" xLocation="2372" yLocation="768">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="rois(s)" name="Roi(s)" runtime="false" visible="true"/>
<variable ID="remove" name="Remove previous" runtime="false" value="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="188627358" blockType="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" className="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" collapsed="true" definedName="Wavelet Spot Detector Block a" height="489" keepsResults="true" width="407" xLocation="2554" yLocation="829">
<variables>
<input>
<variable ID="input Sequence" name="input Sequence" runtime="false" visible="true"/>
<variable ID="Spot to detect" name="Spot to detect" runtime="false" value="BRIGHT_SPOT" visible="true"/>
<variable ID="input Sequence ROIs" name="ROIs from sequence for WAT" runtime="false" visible="true"/>
<variable ID="Compute WAT considering ROI" name="Compute WAT considering ROI" runtime="false" value="false" visible="true"/>
<variable ID="ROIs for detection mask" name="ROIs for detection mask" runtime="false" value="" visible="true"/>
<variable ID="Scale 1" name="Scale 1" runtime="false" value="false" visible="true"/>
<variable ID="Scale 2" name="Scale 2" runtime="false" value="false" visible="true"/>
<variable ID="Scale 3" name="Scale 3" runtime="false" value="true" visible="true"/>
<variable ID="Scale 4" name="Scale 4" runtime="false" value="false" visible="true"/>
<variable ID="Scale 5" name="Scale 5" runtime="false" value="false" visible="true"/>
<variable ID="Th. scale 1:" name="Th. scale 1:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 2:" name="Th. scale 2:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 3:" name="Th. scale 3:" runtime="false" value="20" visible="false"/>
<variable ID="Th. scale 4:" name="Th. scale 4:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 5:" name="Th. scale 5:" runtime="false" value="100" visible="false"/>
<variable ID="Force 2D Wavelets" name="Force 2D Wavelets" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="binary Spot Sequence" name="binary Spot Sequence" runtime="false" visible="true"/>
<variable ID="detection as ROIs" name="detection as ROIs" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="502711705" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display detected spots a" height="174" keepsResults="true" width="266" xLocation="2883" yLocation="895">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1306548184" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="false" definedName="Channel spots signal b" height="127" keepsResults="true" width="281" xLocation="2071" yLocation="14">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="1" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1107614644" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display spots signal b" height="217" keepsResults="true" width="296" xLocation="2725" yLocation="1">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="274556667" blockType="plugins.tprovoost.sequenceblocks.add.AddRois" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Add rois" height="158" keepsResults="true" width="565" xLocation="2373" yLocation="469">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="rois(s)" name="Roi(s)" runtime="false" visible="true"/>
<variable ID="remove" name="Remove previous" runtime="false" value="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="571192006" blockType="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" className="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" collapsed="true" definedName="Wavelet Spot Detector Block b" height="486" keepsResults="true" width="418" xLocation="2680" yLocation="315">
<variables>
<input>
<variable ID="input Sequence" name="input Sequence" runtime="false" visible="true"/>
<variable ID="Spot to detect" name="Spot to detect" runtime="false" value="BRIGHT_SPOT" visible="true"/>
<variable ID="input Sequence ROIs" name="ROIs from sequence for WAT" runtime="false" visible="true"/>
<variable ID="Compute WAT considering ROI" name="Compute WAT considering ROI" runtime="false" value="false" visible="true"/>
<variable ID="ROIs for detection mask" name="ROIs for detection mask" runtime="false" value="" visible="true"/>
<variable ID="Scale 1" name="Scale 1" runtime="false" value="false" visible="true"/>
<variable ID="Scale 2" name="Scale 2" runtime="false" value="false" visible="true"/>
<variable ID="Scale 3" name="Scale 3" runtime="false" value="true" visible="true"/>
<variable ID="Scale 4" name="Scale 4" runtime="false" value="false" visible="true"/>
<variable ID="Scale 5" name="Scale 5" runtime="false" value="false" visible="true"/>
<variable ID="Th. scale 1:" name="Th. scale 1:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 2:" name="Th. scale 2:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 3:" name="Th. scale 3:" runtime="false" value="20" visible="false"/>
<variable ID="Th. scale 4:" name="Th. scale 4:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 5:" name="Th. scale 5:" runtime="false" value="100" visible="false"/>
<variable ID="Force 2D Wavelets" name="Force 2D Wavelets" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="binary Spot Sequence" name="binary Spot Sequence" runtime="false" visible="true"/>
<variable ID="detection as ROIs" name="detection as ROIs" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="142133918" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display detected spots b" height="140" keepsResults="true" width="258" xLocation="3060" yLocation="403">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="158035131" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display ROI" height="182" keepsResults="true" width="204" xLocation="1540" yLocation="548">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="569595258" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor (Wavelet Spot a)" height="130" keepsResults="true" width="292" xLocation="2963" yLocation="827">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1583487239" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter spots a by size" height="282" keepsResults="true" width="444" xLocation="3317" yLocation="826">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E11" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="318340907" blockType="plugins.stef.roi.bloc.op.FilterROI" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter spots a" height="302" keepsResults="true" width="530" xLocation="3585" yLocation="773">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="descriptors" name="Filter on" runtime="false" value="Interior" visible="true"/>
<variable ID="operator" name="Accept if" runtime="false" value="GREATER" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="out" name="Filtered ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1853094405" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Name of localized molecule a" height="101" keepsResults="true" width="270" xLocation="606" yLocation="532">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="coilin" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1291892263" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Name of localized molecule b" height="101" keepsResults="true" width="270" xLocation="598" yLocation="648">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="53BP1" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="629759773" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor (Wavelet Spot b)" height="130" keepsResults="true" width="292" xLocation="3091" yLocation="355">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1415321214" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter spots b by size" height="168" keepsResults="true" width="380" xLocation="3416" yLocation="356">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E11" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1796792253" blockType="plugins.stef.roi.bloc.op.FilterROI" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter spots b" height="302" keepsResults="true" width="530" xLocation="3671" yLocation="314">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="descriptors" name="Filter on" runtime="false" value="Interior" visible="true"/>
<variable ID="operator" name="Accept if" runtime="false" value="GREATER" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="out" name="Filtered ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="812304154" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript (Création Fichier ROI ID)" height="465" keepsResults="true" width="547" xLocation="1054" yLocation="161">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="/*Création du fichier ROI ID*/&#10;&#10;importClass(Packages.icy.file.FileUtil)&#10;&#10;FileUtil.createDir(input0 + &quot;\\ROI ID&quot;)&#10;output0 = input1.substring(1)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="1" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="java.io.File" visible="true"/>
<variable ID="1169368275" name="input1" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1653873837" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Spots size threshold a" height="101" keepsResults="true" width="223" xLocation="939" yLocation="534">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="864924071" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Get Excel File" height="217" keepsResults="true" width="577" xLocation="1122" yLocation="87">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\Results.xlsx" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="47821147" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Spots size threshold b" height="101" keepsResults="true" width="234" xLocation="939" yLocation="655">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1070794490" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Spots Counting and Data Saving" height="1279" keepsResults="true" width="951" xLocation="2448" yLocation="645">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;importClass(Packages.icy.util.DateUtil)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;seq = input3&#10;seq2 = input5&#10;&#10;name2 = input10&#10;MicrofociThresholdA = input9&#10;MicrofociThresholdB = input11&#10;&#10;ch0 = input6&#10;ch1 = input7&#10;&#10;ws = Workbooks.getSheet(wb, input8 + &quot; Information&quot;)&#10;ws1 = Workbooks.getSheet(wb, ch0 + &quot;_Distribution foci size&quot;)&#10;ws2 = Workbooks.getSheet(wb, ch1+&quot;_Distribution foci size&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws1.setValue(0, 0, date)&#10;ws2.setValue(0, 0, date)&#10;ws.setRow(1, [&quot;Cell ID&quot;, input8+&quot; Size&quot;, ch0 + &quot;_Mean Intensity&quot;, &#10;ch0 + &quot;_Total foci&quot;,ch0 + &quot;_Foci_size&lt;&quot; + MicrofociThresholdA,&#10;ch0 + &quot;_Foci_size&gt;=&quot; + MicrofociThresholdA,ch1 + &quot;_Mean Intensity&quot;,&#10;ch1 + &quot;_Total foci&quot;,ch1 + &quot;_Foci_size&gt;=&quot; + MicrofociThresholdB,&#10;ch1 + &quot;_Foci_size&lt;&quot; + MicrofociThresholdB,&quot;Condition&quot;,&quot;Number of Cells&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;ws.setFillColor(1, 6, Color.lightGray)&#10;ws.setFillColor(1, 7, Color.lightGray)&#10;ws.setFillColor(1, 8, Color.lightGray)&#10;ws.setFillColor(1, 9, Color.lightGray)&#10;ws.setFillColor(1, 10, Color.lightGray)&#10;ws.setFillColor(1, 11, Color.lightGray)&#10;ws.setFillColor(1, 12, Color.lightGray)&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;ws.setValue(row, 11, name2)&#10;ws.setValue(row, 12, input0.length)&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;roi = input0[i]&#10;&#9;roi.setName(input8 + &quot;_&quot; + i)&#10;&#9;seq.addROI(roi)&#10;&#9;roi.setShowName(true)&#10;&#9;roi.setOpacity(1)&#10;&#9;title = name2 + &quot;_&quot; + input8 + &quot;_&quot; + i&#10;&#9;ws.setValue(i+row, 0, title)&#10;&#9;ws1.setValue(i+row, 0, ch0 + &quot;_&quot; + title)&#10;&#9;ws2.setValue(i+row, 0, ch1 + &quot;_&quot; + title)&#10;&#10;&#9;mean = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 2, mean)&#10;&#9;mean2 = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq2)&#10;&#9;ws.setValue(i+row, 6, mean2)&#10;&#9;size = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 1, size)&#9;&#10;&#9;nbdetection = 0 &#10;&#9;nbmicrofoci = 0&#10;&#9;nbfoci = 0&#10;&#9;nbdetection2 = 0 &#10;&#9;nbmicrofoci2 = 0&#10;&#9;nbfoci2 = 0&#10;&#10;&#9;for (k=0; k&lt;input2.length; k++){&#10;&#9;&#9;roi2 = input2[k]&#10;&#9;&#9;&#10;&#9;&#9;if(roi.contains(roi2)){&#10;&#9;&#9;&#9;nbdetection += 1&#10;&#9;&#9;&#9;size2 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi2, seq)&#10;&#9;&#9;&#9;ws1.setValue(i+row, nbdetection, size2)&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi2) &amp;&amp; size2&lt;MicrofociThresholdA){&#10;&#9;&#9;&#9;nbmicrofoci +=1&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if(roi.contains(roi2) &amp;&amp; size2&gt;=MicrofociThresholdA){&#10;&#9;&#9;&#9;nbfoci +=1&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;ws.setValue(i+row, 3, nbdetection)&#10;&#9;ws.setValue(i+row, 4, nbfoci)&#10;&#9;ws.setValue(i+row, 5, nbmicrofoci)&#10;&#10;&#9;for (l=0; l&lt;input4.length; l++){&#10;&#9;&#9;roi3 = input4[l]&#10;&#10;&#9;&#9;if(roi.contains(roi3)){&#10;&#9;&#9;&#9;nbdetection2 += 1&#10;&#9;&#9;&#9;size3 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi3, seq2)&#10;&#9;&#9;&#9;ws2.setValue(i+row, nbdetection2, size3)&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi3) &amp;&amp; size3&lt;MicrofociThresholdB){&#10;&#9;&#9;&#9;nbmicrofoci2 +=1&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi3) &amp;&amp; size3&gt;=MicrofociThresholdB){&#10;&#9;&#9;&#9;nbfoci2 +=1&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;ws.setValue(i+row, 7, nbdetection2)&#10;&#9;ws.setValue(i+row, 8, nbfoci2)&#10;&#9;ws.setValue(i+row, 9, nbmicrofoci2)&#10;} &#10;seq.setName(name2)&#10;output0 = seq&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="11" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="2014856225" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="1381446573" name="input2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="561494731" name="input3" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1628745397" name="input4" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="837055885" name="input5" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="487165339" name="input6" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="665858327" name="input7" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1849828504" name="input8" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1388430165" name="input9" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="586896080" name="input10" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1454709531" name="input11" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1692801853" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display ROI ID" height="180" keepsResults="true" width="288" xLocation="3196" yLocation="585">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1714537485" blockType="plugins.adufour.blocks.tools.sequence.SequenceScreenshot" className="plugins.adufour.blocks.tools.sequence.SequenceScreenshot" collapsed="true" definedName="Sequence screenshot" height="76" keepsResults="true" width="466" xLocation="3562" yLocation="671">
<variables>
<input>
<variable ID="input sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="screenshot" name="Screenshot" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="850323307" blockType="plugins.tprovoost.sequenceblocks.infos.GetName" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Get name" height="83" keepsResults="true" width="466" xLocation="2749" yLocation="602">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="name" name="Name" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="2088324607" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="868" yLocation="226">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\ROI ID\ROI ID_" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="406046909" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="2988" yLocation="563">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="10439705" blockType="plugins.tprovoost.sequenceblocks.files.SaveSequence" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Save sequence" height="248" keepsResults="true" width="492" xLocation="3804" yLocation="563">
<variables>
<input>
<variable ID="file" name="File" runtime="false" type="java.io.File" visible="true"/>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="format" name="Format" runtime="false" value="JPG" visible="true"/>
<variable ID="overwrite" name="Overwrite" runtime="false" value="true" visible="true"/>
<variable ID="multiple file" name="Multiple file" runtime="false" value="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="2094132400" blockType="plugins.adufour.blocks.tools.io.FileToWorkbook" className="plugins.adufour.blocks.tools.io.FileToWorkbook" collapsed="true" definedName="File to workbook" height="83" keepsResults="true" width="286" xLocation="1324" yLocation="87">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
</input>
<output>
<variable ID="workbook" name="workbook" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1096126551" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="140" keepsResults="true" width="352" xLocation="1724" yLocation="89">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="org.apache.poi.ss.usermodel.Workbook" visible="true"/>
</input>
<output/>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="1881981832" dstVarID="Sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1465294030" dstVarID="sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1306548184" dstVarID="sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1707627949" dstVarID="input0" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="44424109" dstVarID="suffix" srcBlockID="332682527" srcVarID="text"/>
<link dstBlockID="812304154" dstVarID="1169368275" srcBlockID="332682527" srcVarID="text"/>
<link dstBlockID="1707627949" dstVarID="1453495770" srcBlockID="332682527" srcVarID="text"/>
<link dstBlockID="1707627949" dstVarID="394986482" srcBlockID="544508846" srcVarID="text"/>
<link dstBlockID="188627358" dstVarID="input Sequence" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="455185749" dstVarID="sequence" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="1070794490" dstVarID="561494731" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="747816326" dstVarID="object" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="1457603694" dstVarID="suffix" srcBlockID="1707627949" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="1070794490" dstVarID="586896080" srcBlockID="1707627949" srcVarID="1407416829" srcVarType="java.lang.String"/>
<link dstBlockID="2088324607" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="864924071" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="812304154" dstVarID="input0" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="44424109" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="1457603694" dstVarID="input file" srcBlockID="44424109" srcVarID="output file"/>
<link dstBlockID="1773773167" dstVarID="input file" srcBlockID="1457603694" srcVarID="output file"/>
<link dstBlockID="2066289315" dstVarID="input0" srcBlockID="1773773167" srcVarID="sequence"/>
<link dstBlockID="2066289315" dstVarID="1247302414" srcBlockID="1672243628" srcVarID="text"/>
<link dstBlockID="158035131" dstVarID="object" srcBlockID="2066289315" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1370966191" dstVarID="input sequence" srcBlockID="2066289315" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1325609947" dstVarID="roi" srcBlockID="1370966191" srcVarID="ROI"/>
<link dstBlockID="1070794490" dstVarID="input0" srcBlockID="1325609947" srcVarID="out"/>
<link dstBlockID="455185749" dstVarID="rois(s)" srcBlockID="1325609947" srcVarID="out"/>
<link dstBlockID="274556667" dstVarID="rois(s)" srcBlockID="1325609947" srcVarID="out"/>
<link dstBlockID="188627358" dstVarID="input Sequence ROIs" srcBlockID="455185749" srcVarID="sequence"/>
<link dstBlockID="569595258" dstVarID="input sequence" srcBlockID="188627358" srcVarID="binary Spot Sequence"/>
<link dstBlockID="318340907" dstVarID="sequence" srcBlockID="188627358" srcVarID="input Sequence ROIs"/>
<link dstBlockID="502711705" dstVarID="object" srcBlockID="188627358" srcVarID="binary Spot Sequence"/>
<link dstBlockID="274556667" dstVarID="sequence" srcBlockID="1306548184" srcVarID="extracted"/>
<link dstBlockID="571192006" dstVarID="input Sequence" srcBlockID="1306548184" srcVarID="extracted"/>
<link dstBlockID="1070794490" dstVarID="837055885" srcBlockID="1306548184" srcVarID="extracted"/>
<link dstBlockID="1107614644" dstVarID="object" srcBlockID="1306548184" srcVarID="extracted"/>
<link dstBlockID="571192006" dstVarID="input Sequence ROIs" srcBlockID="274556667" srcVarID="sequence"/>
<link dstBlockID="629759773" dstVarID="input sequence" srcBlockID="571192006" srcVarID="binary Spot Sequence"/>
<link dstBlockID="1796792253" dstVarID="sequence" srcBlockID="571192006" srcVarID="input Sequence ROIs"/>
<link dstBlockID="142133918" dstVarID="object" srcBlockID="571192006" srcVarID="binary Spot Sequence"/>
<link dstBlockID="1583487239" dstVarID="roi" srcBlockID="569595258" srcVarID="ROI"/>
<link dstBlockID="318340907" dstVarID="roi" srcBlockID="1583487239" srcVarID="out"/>
<link dstBlockID="1070794490" dstVarID="1381446573" srcBlockID="318340907" srcVarID="out"/>
<link dstBlockID="1070794490" dstVarID="487165339" srcBlockID="1853094405" srcVarID="text"/>
<link dstBlockID="1070794490" dstVarID="665858327" srcBlockID="1291892263" srcVarID="text"/>
<link dstBlockID="1415321214" dstVarID="roi" srcBlockID="629759773" srcVarID="ROI"/>
<link dstBlockID="1796792253" dstVarID="roi" srcBlockID="1415321214" srcVarID="out"/>
<link dstBlockID="1070794490" dstVarID="1628745397" srcBlockID="1796792253" srcVarID="out"/>
<link dstBlockID="1070794490" dstVarID="1849828504" srcBlockID="812304154" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="1070794490" dstVarID="1388430165" srcBlockID="1653873837" srcVarID="text"/>
<link dstBlockID="1070794490" dstVarID="2014856225" srcBlockID="864924071" srcVarID="output file"/>
<link dstBlockID="2094132400" dstVarID="input file" srcBlockID="864924071" srcVarID="output file"/>
<link dstBlockID="1070794490" dstVarID="1454709531" srcBlockID="47821147" srcVarID="text"/>
<link dstBlockID="1692801853" dstVarID="object" srcBlockID="1070794490" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="850323307" dstVarID="sequence" srcBlockID="1070794490" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1714537485" dstVarID="input sequence" srcBlockID="1692801853" srcVarID="object" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="10439705" dstVarID="sequence" srcBlockID="1714537485" srcVarID="screenshot"/>
<link dstBlockID="406046909" dstVarID="suffix" srcBlockID="850323307" srcVarID="name"/>
<link dstBlockID="406046909" dstVarID="input file" srcBlockID="2088324607" srcVarID="output file"/>
<link dstBlockID="10439705" dstVarID="file" srcBlockID="406046909" srcVarID="output file"/>
<link dstBlockID="1096126551" dstVarID="object" srcBlockID="2094132400" srcVarID="workbook"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="1227986369" value="C:\Users\gerau\Desktop\New folder\Merge" visible="true"/>
<variable ID="extension" blockID="1227986369" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="1227986369" value="false" visible="true"/>
<variable ID="332682527:text" blockID="332682527" value="\Segmented nuclei" visible="false"/>
<variable ID="544508846:text" blockID="544508846" value="tif" visible="false"/>
<variable ID="1465294030:sequence" blockID="1465294030" value="No Sequence" visible="false"/>
<variable ID="1465294030:channel" blockID="1465294030" value="0" visible="false"/>
<variable ID="747816326:object" blockID="747816326" value="" visible="false"/>
<variable ID="1707627949:Script" blockID="1707627949" value="name = input0.getName()&#10;length = name.lastIndexOf(&quot;.&quot;)&#10;&#10;if (length==-1){&#10;&#9;name2=name&#10;}else{&#10;&#9;name2=name.substring(0, length)&#10;}&#10;output0 = &quot;\\&quot; + name2 + &quot;_&quot; + input2.substring(1) + &quot;.&quot; + input1&#10;output1 = name2" visible="false"/>
<variable ID="1707627949:Add Input" blockID="1707627949" value="2" visible="false"/>
<variable ID="1707627949:Add output" blockID="1707627949" value="1" visible="false"/>
<variable ID="1707627949:input0" blockID="1707627949" value="" visible="false"/>
<variable ID="1707627949:394986482" blockID="1707627949" value="" visible="false"/>
<variable ID="1707627949:1453495770" blockID="1707627949" value="" visible="false"/>
<variable ID="1881981832:Sequence" blockID="1881981832" value="No Sequence" visible="false"/>
<variable ID="44424109:input file" blockID="44424109" value="" visible="false"/>
<variable ID="44424109:remove ext." blockID="44424109" value="false" visible="false"/>
<variable ID="44424109:suffix" blockID="44424109" value="\Segmented nuclei" visible="false"/>
<variable ID="1457603694:input file" blockID="1457603694" value="" visible="false"/>
<variable ID="1457603694:remove ext." blockID="1457603694" value="false" visible="false"/>
<variable ID="1457603694:suffix" blockID="1457603694" value="" visible="false"/>
<variable ID="1773773167:input file" blockID="1773773167" value="" visible="false"/>
<variable ID="1773773167:Series" blockID="1773773167" value="0" visible="false"/>
<variable ID="1672243628:text" blockID="1672243628" value="Yes" visible="false"/>
<variable ID="2066289315:Script" blockID="2066289315" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input1==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}" visible="false"/>
<variable ID="2066289315:Add Input" blockID="2066289315" value="1" visible="false"/>
<variable ID="2066289315:Add output" blockID="2066289315" value="0" visible="false"/>
<variable ID="2066289315:input0" blockID="2066289315" value="" visible="false"/>
<variable ID="2066289315:1247302414" blockID="2066289315" value="" visible="false"/>
<variable ID="1370966191:input sequence" blockID="1370966191" value="No Sequence" visible="false"/>
<variable ID="1370966191:extract mode" blockID="1370966191" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="1370966191:value" blockID="1370966191" value="0.0" visible="false"/>
<variable ID="1325609947:roi" blockID="1325609947" value="No ROI" visible="false"/>
<variable ID="1325609947:minSize" blockID="1325609947" value="0.0" visible="false"/>
<variable ID="1325609947:maxSize" blockID="1325609947" value="1.0E10" visible="false"/>
<variable ID="1325609947:incBorder" blockID="1325609947" value="false" visible="false"/>
<variable ID="455185749:sequence" blockID="455185749" value="No Sequence" visible="false"/>
<variable ID="455185749:rois(s)" blockID="455185749" value="No ROI" visible="false"/>
<variable ID="455185749:remove" blockID="455185749" value="false" visible="false"/>
<variable ID="188627358:input Sequence" blockID="188627358" value="No Sequence" visible="false"/>
<variable ID="188627358:Spot to detect" blockID="188627358" value="BRIGHT_SPOT" visible="false"/>
<variable ID="188627358:input Sequence ROIs" blockID="188627358" value="No Sequence" visible="false"/>
<variable ID="188627358:Compute WAT considering ROI" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:ROIs for detection mask" blockID="188627358" value="" visible="false"/>
<variable ID="188627358:Scale 1" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Scale 2" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Scale 3" blockID="188627358" value="true" visible="false"/>
<variable ID="188627358:Scale 4" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Scale 5" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Th. scale 1:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Th. scale 2:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Th. scale 3:" blockID="188627358" value="20" visible="false"/>
<variable ID="188627358:Th. scale 4:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Th. scale 5:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Force 2D Wavelets" blockID="188627358" value="false" visible="false"/>
<variable ID="502711705:object" blockID="502711705" value="" visible="false"/>
<variable ID="1306548184:sequence" blockID="1306548184" value="No Sequence" visible="false"/>
<variable ID="1306548184:channel" blockID="1306548184" value="1" visible="false"/>
<variable ID="1107614644:object" blockID="1107614644" value="" visible="false"/>
<variable ID="274556667:sequence" blockID="274556667" value="No Sequence" visible="false"/>
<variable ID="274556667:rois(s)" blockID="274556667" value="No ROI" visible="false"/>
<variable ID="274556667:remove" blockID="274556667" value="false" visible="false"/>
<variable ID="571192006:input Sequence" blockID="571192006" value="No Sequence" visible="false"/>
<variable ID="571192006:Spot to detect" blockID="571192006" value="BRIGHT_SPOT" visible="false"/>
<variable ID="571192006:input Sequence ROIs" blockID="571192006" value="No Sequence" visible="false"/>
<variable ID="571192006:Compute WAT considering ROI" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:ROIs for detection mask" blockID="571192006" value="" visible="false"/>
<variable ID="571192006:Scale 1" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:Scale 2" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:Scale 3" blockID="571192006" value="true" visible="false"/>
<variable ID="571192006:Scale 4" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:Scale 5" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:Th. scale 1:" blockID="571192006" value="100" visible="false"/>
<variable ID="571192006:Th. scale 2:" blockID="571192006" value="100" visible="false"/>
<variable ID="571192006:Th. scale 3:" blockID="571192006" value="20" visible="false"/>
<variable ID="571192006:Th. scale 4:" blockID="571192006" value="100" visible="false"/>
<variable ID="571192006:Th. scale 5:" blockID="571192006" value="100" visible="false"/>
<variable ID="571192006:Force 2D Wavelets" blockID="571192006" value="false" visible="false"/>
<variable ID="142133918:object" blockID="142133918" value="" visible="false"/>
<variable ID="158035131:object" blockID="158035131" value="" visible="false"/>
<variable ID="569595258:input sequence" blockID="569595258" value="No Sequence" visible="false"/>
<variable ID="569595258:extract mode" blockID="569595258" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="569595258:value" blockID="569595258" value="0.0" visible="false"/>
<variable ID="1583487239:roi" blockID="1583487239" value="No ROI" visible="false"/>
<variable ID="1583487239:minSize" blockID="1583487239" value="0.0" visible="false"/>
<variable ID="1583487239:maxSize" blockID="1583487239" value="1.0E11" visible="false"/>
<variable ID="1583487239:incBorder" blockID="1583487239" value="false" visible="false"/>
<variable ID="318340907:roi" blockID="318340907" value="No ROI" visible="false"/>
<variable ID="318340907:sequence" blockID="318340907" value="No Sequence" visible="false"/>
<variable ID="318340907:descriptors" blockID="318340907" value="Interior" visible="false"/>
<variable ID="318340907:operator" blockID="318340907" value="GREATER" visible="false"/>
<variable ID="318340907:value" blockID="318340907" value="0.0" visible="false"/>
<variable ID="1853094405:text" blockID="1853094405" value="coilin" visible="false"/>
<variable ID="1291892263:text" blockID="1291892263" value="53BP1" visible="false"/>
<variable ID="629759773:input sequence" blockID="629759773" value="No Sequence" visible="false"/>
<variable ID="629759773:extract mode" blockID="629759773" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="629759773:value" blockID="629759773" value="0.0" visible="false"/>
<variable ID="1415321214:roi" blockID="1415321214" value="No ROI" visible="false"/>
<variable ID="1415321214:minSize" blockID="1415321214" value="0.0" visible="false"/>
<variable ID="1415321214:maxSize" blockID="1415321214" value="1.0E11" visible="false"/>
<variable ID="1415321214:incBorder" blockID="1415321214" value="false" visible="false"/>
<variable ID="1796792253:roi" blockID="1796792253" value="No ROI" visible="false"/>
<variable ID="1796792253:sequence" blockID="1796792253" value="No Sequence" visible="false"/>
<variable ID="1796792253:descriptors" blockID="1796792253" value="Interior" visible="false"/>
<variable ID="1796792253:operator" blockID="1796792253" value="GREATER" visible="false"/>
<variable ID="1796792253:value" blockID="1796792253" value="0.0" visible="false"/>
<variable ID="812304154:Script" blockID="812304154" value="/*Création du fichier ROI ID*/&#10;&#10;importClass(Packages.icy.file.FileUtil)&#10;&#10;FileUtil.createDir(input0 + &quot;\\ROI ID&quot;)&#10;output0 = input1.substring(1)" visible="false"/>
<variable ID="812304154:Add Input" blockID="812304154" value="1" visible="false"/>
<variable ID="812304154:Add output" blockID="812304154" value="0" visible="false"/>
<variable ID="812304154:input0" blockID="812304154" value="" visible="false"/>
<variable ID="812304154:1169368275" blockID="812304154" value="" visible="false"/>
<variable ID="1653873837:text" blockID="1653873837" value="0" visible="false"/>
<variable ID="864924071:input file" blockID="864924071" value="" visible="false"/>
<variable ID="864924071:remove ext." blockID="864924071" value="false" visible="false"/>
<variable ID="864924071:suffix" blockID="864924071" value="\Results.xlsx" visible="false"/>
<variable ID="47821147:text" blockID="47821147" value="0" visible="false"/>
<variable ID="1070794490:Script" blockID="1070794490" value="importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;importClass(Packages.icy.util.DateUtil)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;seq = input3&#10;seq2 = input5&#10;&#10;name2 = input10&#10;MicrofociThresholdA = input9&#10;MicrofociThresholdB = input11&#10;&#10;ch0 = input6&#10;ch1 = input7&#10;&#10;ws = Workbooks.getSheet(wb, input8 + &quot; Information&quot;)&#10;ws1 = Workbooks.getSheet(wb, ch0 + &quot;_Distribution foci size&quot;)&#10;ws2 = Workbooks.getSheet(wb, ch1+&quot;_Distribution foci size&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws1.setValue(0, 0, date)&#10;ws2.setValue(0, 0, date)&#10;ws.setRow(1, [&quot;Cell ID&quot;, input8+&quot; Size&quot;, ch0 + &quot;_Mean Intensity&quot;, &#10;ch0 + &quot;_Total foci&quot;,ch0 + &quot;_Foci_size&lt;&quot; + MicrofociThresholdA,&#10;ch0 + &quot;_Foci_size&gt;=&quot; + MicrofociThresholdA,ch1 + &quot;_Mean Intensity&quot;,&#10;ch1 + &quot;_Total foci&quot;,ch1 + &quot;_Foci_size&gt;=&quot; + MicrofociThresholdB,&#10;ch1 + &quot;_Foci_size&lt;&quot; + MicrofociThresholdB,&quot;Condition&quot;,&quot;Number of Cells&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;ws.setFillColor(1, 6, Color.lightGray)&#10;ws.setFillColor(1, 7, Color.lightGray)&#10;ws.setFillColor(1, 8, Color.lightGray)&#10;ws.setFillColor(1, 9, Color.lightGray)&#10;ws.setFillColor(1, 10, Color.lightGray)&#10;ws.setFillColor(1, 11, Color.lightGray)&#10;ws.setFillColor(1, 12, Color.lightGray)&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;ws.setValue(row, 11, name2)&#10;ws.setValue(row, 12, input0.length)&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;roi = input0[i]&#10;&#9;roi.setName(input8 + &quot;_&quot; + i)&#10;&#9;seq.addROI(roi)&#10;&#9;roi.setShowName(true)&#10;&#9;roi.setOpacity(1)&#10;&#9;title = name2 + &quot;_&quot; + input8 + &quot;_&quot; + i&#10;&#9;ws.setValue(i+row, 0, title)&#10;&#9;ws1.setValue(i+row, 0, ch0 + &quot;_&quot; + title)&#10;&#9;ws2.setValue(i+row, 0, ch1 + &quot;_&quot; + title)&#10;&#10;&#9;mean = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 2, mean)&#10;&#9;mean2 = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq2)&#10;&#9;ws.setValue(i+row, 6, mean2)&#10;&#9;size = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 1, size)&#9;&#10;&#9;nbdetection = 0 &#10;&#9;nbmicrofoci = 0&#10;&#9;nbfoci = 0&#10;&#9;nbdetection2 = 0 &#10;&#9;nbmicrofoci2 = 0&#10;&#9;nbfoci2 = 0&#10;&#10;&#9;for (k=0; k&lt;input2.length; k++){&#10;&#9;&#9;roi2 = input2[k]&#10;&#9;&#9;&#10;&#9;&#9;if(roi.contains(roi2)){&#10;&#9;&#9;&#9;nbdetection += 1&#10;&#9;&#9;&#9;size2 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi2, seq)&#10;&#9;&#9;&#9;ws1.setValue(i+row, nbdetection, size2)&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi2) &amp;&amp; size2&lt;MicrofociThresholdA){&#10;&#9;&#9;&#9;nbmicrofoci +=1&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if(roi.contains(roi2) &amp;&amp; size2&gt;=MicrofociThresholdA){&#10;&#9;&#9;&#9;nbfoci +=1&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;ws.setValue(i+row, 3, nbdetection)&#10;&#9;ws.setValue(i+row, 4, nbfoci)&#10;&#9;ws.setValue(i+row, 5, nbmicrofoci)&#10;&#10;&#9;for (l=0; l&lt;input4.length; l++){&#10;&#9;&#9;roi3 = input4[l]&#10;&#10;&#9;&#9;if(roi.contains(roi3)){&#10;&#9;&#9;&#9;nbdetection2 += 1&#10;&#9;&#9;&#9;size3 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi3, seq2)&#10;&#9;&#9;&#9;ws2.setValue(i+row, nbdetection2, size3)&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi3) &amp;&amp; size3&lt;MicrofociThresholdB){&#10;&#9;&#9;&#9;nbmicrofoci2 +=1&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi3) &amp;&amp; size3&gt;=MicrofociThresholdB){&#10;&#9;&#9;&#9;nbfoci2 +=1&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;ws.setValue(i+row, 7, nbdetection2)&#10;&#9;ws.setValue(i+row, 8, nbfoci2)&#10;&#9;ws.setValue(i+row, 9, nbmicrofoci2)&#10;} &#10;seq.setName(name2)&#10;output0 = seq&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)" visible="false"/>
<variable ID="1070794490:Add Input" blockID="1070794490" value="11" visible="false"/>
<variable ID="1070794490:Add output" blockID="1070794490" value="0" visible="false"/>
<variable ID="1070794490:input0" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:2014856225" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:1381446573" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:561494731" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:1628745397" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:837055885" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:487165339" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:665858327" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:1849828504" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:1388430165" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:586896080" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:1454709531" blockID="1070794490" value="" visible="false"/>
<variable ID="1692801853:object" blockID="1692801853" value="" visible="false"/>
<variable ID="1714537485:input sequence" blockID="1714537485" value="No Sequence" visible="false"/>
<variable ID="850323307:sequence" blockID="850323307" value="No Sequence" visible="false"/>
<variable ID="2088324607:input file" blockID="2088324607" value="" visible="false"/>
<variable ID="2088324607:remove ext." blockID="2088324607" value="false" visible="false"/>
<variable ID="2088324607:suffix" blockID="2088324607" value="\ROI ID\ROI ID_" visible="false"/>
<variable ID="406046909:input file" blockID="406046909" value="" visible="false"/>
<variable ID="406046909:remove ext." blockID="406046909" value="false" visible="false"/>
<variable ID="406046909:suffix" blockID="406046909" value="" visible="false"/>
<variable ID="10439705:file" blockID="10439705" value="" visible="false"/>
<variable ID="10439705:sequence" blockID="10439705" value="No Sequence" visible="false"/>
<variable ID="10439705:format" blockID="10439705" value="JPG" visible="false"/>
<variable ID="10439705:overwrite" blockID="10439705" value="true" visible="false"/>
<variable ID="10439705:multiple file" blockID="10439705" value="false" visible="false"/>
<variable ID="2094132400:input file" blockID="2094132400" value="" visible="false"/>
<variable ID="1096126551:object" blockID="1096126551" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="1227986369" visible="true"/>
<variable ID="Sequence" blockID="1227986369" visible="true"/>
<variable ID="1465294030:extracted" blockID="1465294030" visible="false"/>
<variable ID="1707627949:output0" blockID="1707627949" visible="false"/>
<variable ID="1707627949:1407416829" blockID="1707627949" visible="false"/>
<variable ID="1881981832:Folder" blockID="1881981832" visible="false"/>
<variable ID="44424109:output file" blockID="44424109" visible="false"/>
<variable ID="1457603694:output file" blockID="1457603694" visible="false"/>
<variable ID="1773773167:sequence" blockID="1773773167" visible="false"/>
<variable ID="2066289315:output0" blockID="2066289315" visible="false"/>
<variable ID="1370966191:ROI" blockID="1370966191" visible="false"/>
<variable ID="1325609947:out" blockID="1325609947" visible="false"/>
<variable ID="188627358:binary Spot Sequence" blockID="188627358" visible="false"/>
<variable ID="188627358:detection as ROIs" blockID="188627358" visible="false"/>
<variable ID="1306548184:extracted" blockID="1306548184" visible="false"/>
<variable ID="571192006:binary Spot Sequence" blockID="571192006" visible="false"/>
<variable ID="571192006:detection as ROIs" blockID="571192006" visible="false"/>
<variable ID="569595258:ROI" blockID="569595258" visible="false"/>
<variable ID="1583487239:out" blockID="1583487239" visible="false"/>
<variable ID="318340907:out" blockID="318340907" visible="false"/>
<variable ID="629759773:ROI" blockID="629759773" visible="false"/>
<variable ID="1415321214:out" blockID="1415321214" visible="false"/>
<variable ID="1796792253:out" blockID="1796792253" visible="false"/>
<variable ID="812304154:output0" blockID="812304154" visible="false"/>
<variable ID="864924071:output file" blockID="864924071" visible="false"/>
<variable ID="1070794490:output0" blockID="1070794490" visible="false"/>
<variable ID="1714537485:screenshot" blockID="1714537485" visible="false"/>
<variable ID="850323307:name" blockID="850323307" visible="false"/>
<variable ID="2088324607:output file" blockID="2088324607" visible="false"/>
<variable ID="406046909:output file" blockID="406046909" visible="false"/>
<variable ID="2094132400:workbook" blockID="2094132400" visible="false"/>
</output>
</variables>
</workflow>
<workflow ID="1227986369" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Fluorescence Analysis C: 2 Channels in two compartments" height="145" keepsResults="true" width="473" xLocation="931" yLocation="342">
<blocks>
<block CommandLineID="" ID="1929927768" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder images ROI (segmented nuclei)" height="101" keepsResults="true" width="371" xLocation="0" yLocation="304">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="\Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="823877876" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented objects" height="101" keepsResults="true" width="304" xLocation="0" yLocation="175">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="tif" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="2083756463" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder images ROI (segmented cytoplasm)" height="101" keepsResults="true" width="361" xLocation="0" yLocation="475">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="\Segmented cytoplasms" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1881981832" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="171" keepsResults="true" width="466" xLocation="312" yLocation="75">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1340354960" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="317" keepsResults="true" width="408" xLocation="2372" yLocation="282">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.file.FileUtil)&#10;&#10;FileUtil.createDir(input0 + &quot;\\ROI ID&quot;)&#10;&#10;output0 = input1.substring(1)&#10;output1 = input2.substring(1)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="java.io.File" visible="true"/>
<variable ID="887546507" name="input1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1861086095" name="input2" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
<variable ID="2140707424" name="output1" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block ID="1529446475" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="661" xLocation="601" yLocation="118">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1314603832" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="999" keepsResults="true" width="1286" xLocation="2352" yLocation="346">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="name = input0.getName()&#10;length = name.lastIndexOf(&quot;.&quot;)&#10;&#10;if(length==-1){&#10;&#9;name2 = name&#10;}else{&#10;&#9;name2 = name.substring(0, length)&#10;}&#10;output0 = &quot;\\&quot; + name2 + &quot;_&quot; + input2.substring(1) + &quot;.&quot; + input1&#10;output1 = name2&#10;output2 = &quot;\\&quot; + name2 + &quot;_&quot; + input3.substring(1) + &quot;.&quot; + input1" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="3" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1563040014" name="input1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1438909616" name="input2" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="79289330" name="input3" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
<variable ID="1354092545" name="output1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="2079734764" name="output2" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block ID="735186542" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="624" xLocation="604" yLocation="160">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="368713407" blockType="plugins.adufour.blocks.tools.io.FileToSequence" className="plugins.adufour.blocks.tools.io.FileToSequence" collapsed="true" definedName="File to sequence" height="145" keepsResults="true" width="279" xLocation="1340" yLocation="90">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
<variable ID="Series" name="Series" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="44424109" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Folder segmented objects a" height="199" keepsResults="true" width="575" xLocation="589" yLocation="81">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1457603694" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="248" keepsResults="true" width="540" xLocation="904" yLocation="83">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1773773167" blockType="plugins.adufour.blocks.tools.io.FileToSequence" className="plugins.adufour.blocks.tools.io.FileToSequence" collapsed="true" definedName="File to sequence" height="145" keepsResults="true" width="279" xLocation="1341" yLocation="130">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
<variable ID="Series" name="Series" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1465294030" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="false" definedName="Channel nuclear spots" height="167" keepsResults="true" width="466" xLocation="376" yLocation="304">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="1" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="603185887" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Kill Borders?" height="101" keepsResults="true" width="173" xLocation="11" yLocation="646">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="No" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="755423952" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript (KillBorders)" height="519" keepsResults="true" width="547" xLocation="1933" yLocation="129">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus1 = ImageJUtil.convertToImageJImage(input1, null)&#10;&#9;imp1 = imPlus1&#10;&#9;IJ.run(imp1, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp3 = IJ.getImage()&#10;&#9;imPlus3 = imp3&#10;&#9;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output1=input1&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="60648209" name="input1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="627280605" name="input2" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1866835320" name="output1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1370966191" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1541" yLocation="224">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1853094405" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Nuclear spots size threshold" height="126" keepsResults="true" width="279" xLocation="854" yLocation="304">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="864924071" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Get Excel File" height="385" keepsResults="true" width="1394" xLocation="2347" yLocation="408">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\Results.xlsx" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1442937079" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter nuclei by size" height="282" keepsResults="true" width="444" xLocation="1512" yLocation="354">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E10" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="455185749" blockType="plugins.tprovoost.sequenceblocks.add.AddRois" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Add rois" height="158" keepsResults="true" width="565" xLocation="1154" yLocation="79">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="rois(s)" name="Roi(s)" runtime="false" visible="true"/>
<variable ID="remove" name="Remove previous" runtime="false" value="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="188627358" blockType="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" className="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" collapsed="true" definedName="Wavelet Spot Detector Block (nuclear)" height="1038" keepsResults="true" width="751" xLocation="1816" yLocation="302">
<variables>
<input>
<variable ID="input Sequence" name="input Sequence" runtime="false" visible="true"/>
<variable ID="Spot to detect" name="Spot to detect" runtime="false" value="BRIGHT_SPOT" visible="true"/>
<variable ID="input Sequence ROIs" name="ROIs from sequence for WAT" runtime="false" visible="true"/>
<variable ID="Compute WAT considering ROI" name="Compute WAT considering ROI" runtime="false" value="false" visible="true"/>
<variable ID="ROIs for detection mask" name="ROIs for detection mask" runtime="false" value="No ROI" visible="true"/>
<variable ID="Scale 1" name="Scale 1" runtime="false" value="false" visible="true"/>
<variable ID="Scale 2" name="Scale 2" runtime="false" value="false" visible="true"/>
<variable ID="Scale 3" name="Scale 3" runtime="false" value="true" visible="true"/>
<variable ID="Scale 4" name="Scale 4" runtime="false" value="false" visible="true"/>
<variable ID="Scale 5" name="Scale 5" runtime="false" value="false" visible="true"/>
<variable ID="Th. scale 1:" name="Th. scale 1:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 2:" name="Th. scale 2:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 3:" name="Th. scale 3:" runtime="false" value="20" visible="false"/>
<variable ID="Th. scale 4:" name="Th. scale 4:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 5:" name="Th. scale 5:" runtime="false" value="100" visible="false"/>
<variable ID="Force 2D Wavelets" name="Force 2D Wavelets" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="binary Spot Sequence" name="binary Spot Sequence" runtime="false" visible="true"/>
<variable ID="detection as ROIs" name="detection as ROIs" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="119781439" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1551" yLocation="92">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1583487239" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter nuclear spots by size" height="282" keepsResults="true" width="444" xLocation="1511" yLocation="302">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E11" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="318340907" blockType="plugins.stef.roi.bloc.op.FilterROI" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter nuclear spots" height="302" keepsResults="true" width="530" xLocation="1517" yLocation="393">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="descriptors" name="Filter on" runtime="false" value="Interior" visible="true"/>
<variable ID="operator" name="Accept if" runtime="false" value="GREATER" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="out" name="Filtered ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="440779936" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Cytoplasmic spots size threshold" height="122" keepsResults="true" width="284" xLocation="849" yLocation="480">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="390859832" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Name of nuclear molecule" height="101" keepsResults="true" width="329" xLocation="1145" yLocation="305">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="X" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1697627384" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1561" yLocation="142">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="2137345411" blockType="plugins.adufour.morphology.FillHolesInROI" className="plugins.adufour.morphology.FillHolesInROI" collapsed="true" definedName="Fill holes in ROI" height="104" keepsResults="true" width="450" xLocation="2111" yLocation="176">
<variables>
<input>
<variable ID="List of ROI" name="List of ROI" runtime="false" visible="true"/>
</input>
<output>
<variable ID="List of hole-filled ROI" name="List of hole-filled ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="640807219" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="1367" keepsResults="true" width="1456" xLocation="1932" yLocation="88">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.roi.ROI2DArea)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.icy.roi.ROIUtil)&#10;&#10;output1 = []&#10;output2 = []&#10;for (i=0; i&lt;input1.length; i++){&#10;&#9;roi = input1[i]&#10;&#9;output1[i]=input1[i]&#10;&#9;roi3 = new ROI2DArea()&#10;&#9;roi3.setName(&quot;Empty ROI&quot;)&#10;&#9;for (j=0; j&lt;input2.length; j++){&#10;&#9;&#9;roi2 = input2[j]&#10;&#9;&#9;if (roi2.contains(roi)){&#10;&#9;&#9;&#9;roi3.remove()&#10;&#9;&#9;&#9;roi3 = ROIUtil.getSubtraction(roi2, roi)&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;output2[i]=roi3&#9;&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" value="" visible="true"/>
<variable ID="1390729880" name="input1" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="577204918" name="input2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="729492818" name="output1" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="614245479" name="output2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
</output>
</variables>
</block>
<block ID="1070794490" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Spot Counting and Data Saving (Spreadsheet)" height="597" keepsResults="true" width="547" xLocation="2596" yLocation="116">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.util.DateUtil)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;seq = input3&#10;&#10;name2 = input7&#10;MicrofociThreshold = input6&#10;&#10;ch0 = input5&#10;&#10;ws = Workbooks.getSheet(wb, input4 + &quot; Information&quot;)&#10;ws1 = Workbooks.getSheet(wb, input4 + &quot;_Distribution foci size&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws1.setValue(0, 0, date)&#10;ws.setRow(1, [&quot;Cell ID&quot;, &quot;Object Size&quot;, ch0 + &quot;_Mean Intensity&quot;, &#10;ch0 + &quot;_Total foci&quot;,ch0 + &quot;_Foci_size&gt;=&quot; + MicrofociThreshold,&#10;ch0 + &quot;_Microfoci_size&lt;&quot; + MicrofociThreshold,&quot;Condition&quot;,&quot;Number of Cells&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;ws.setFillColor(1, 6, Color.lightGray)&#10;ws.setFillColor(1, 7, Color.lightGray)&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;ws.setValue(row, 6, name2)&#10;ws.setValue(row, 7, input0.length)&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;roi = input0[i]&#10;&#9;roi.setName(input4 + &quot;_&quot; + i)&#10;&#9;seq.addROI(roi)&#10;&#9;roi.setShowName(true)&#10;&#9;roi.setOpacity(1)&#10;&#9;title = name2 + &quot;_&quot; + roi.getName()&#10;&#9;ws.setValue(i+row, 0, title)&#10;&#9;mean = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 2, mean)&#10;&#9;size = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 1, size)&#9;&#10;&#9;var nbdetection = 0 &#10;&#9;var nbmicrofoci = 0&#10;&#9;var nbfoci = 0&#10;&#10;&#9;for (k=0; k&lt;input2.length; k++){&#10;&#9;&#9;roi2 = input2[k]&#10;&#9;&#9;size2 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi2, seq)&#10;&#9;&#9;ws1.setValue(i+row, 0, ch0 + &quot;_&quot; + title)&#9;&#10;&#9;&#9;&#10;&#9;&#9;if(roi.contains(roi2)){&#10;&#9;&#9;&#9;nbdetection += 1&#10;&#9;&#9;&#9;ws1.setValue(i+row, nbdetection, size2)&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi2) &amp;&amp; size2&lt;MicrofociThreshold){&#10;&#9;&#9;&#9;nbmicrofoci +=1&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if(roi.contains(roi2) &amp;&amp; size2&gt;=MicrofociThreshold){&#10;&#9;&#9;&#9;nbfoci +=1&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;ws.setValue(i+row, 3, nbdetection)&#10;&#9;ws.setValue(i+row, 4, nbfoci)&#10;&#9;ws.setValue(i+row, 5, nbmicrofoci)&#10;}&#10;seq.setName(name2)&#10;output0 = seq&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="7" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="2014856225" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="1381446573" name="input2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="561494731" name="input3" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1628745397" name="input4" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="837055885" name="input5" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="487165339" name="input6" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="665858327" name="input7" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1692801853" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display nuclei saving" height="274" keepsResults="true" width="292" xLocation="593" yLocation="788">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1714537485" blockType="plugins.adufour.blocks.tools.sequence.SequenceScreenshot" className="plugins.adufour.blocks.tools.sequence.SequenceScreenshot" collapsed="true" definedName="Sequence screenshot" height="115" keepsResults="true" width="466" xLocation="2356" yLocation="90">
<variables>
<input>
<variable ID="input sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="screenshot" name="Screenshot" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1306548184" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="false" definedName="Channel cytoplasmic spots" height="173" keepsResults="true" width="466" xLocation="375" yLocation="475">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="1" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="571192006" blockType="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" className="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" collapsed="true" definedName="Wavelet Spot Detector Block (cytoplasmic)" height="1079" keepsResults="true" width="751" xLocation="1813" yLocation="488">
<variables>
<input>
<variable ID="input Sequence" name="input Sequence" runtime="false" visible="true"/>
<variable ID="Spot to detect" name="Spot to detect" runtime="false" value="BRIGHT_SPOT" visible="true"/>
<variable ID="input Sequence ROIs" name="ROIs from sequence for WAT" runtime="false" visible="true"/>
<variable ID="Compute WAT considering ROI" name="Compute WAT considering ROI" runtime="false" value="false" visible="true"/>
<variable ID="ROIs for detection mask" name="ROIs for detection mask" runtime="false" value="No ROI" visible="true"/>
<variable ID="Scale 1" name="Scale 1" runtime="false" value="false" visible="true"/>
<variable ID="Scale 2" name="Scale 2" runtime="false" value="false" visible="true"/>
<variable ID="Scale 3" name="Scale 3" runtime="false" value="true" visible="true"/>
<variable ID="Scale 4" name="Scale 4" runtime="false" value="false" visible="true"/>
<variable ID="Scale 5" name="Scale 5" runtime="false" value="false" visible="true"/>
<variable ID="Th. scale 1:" name="Th. scale 1:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 2:" name="Th. scale 2:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 3:" name="Th. scale 3:" runtime="false" value="20" visible="false"/>
<variable ID="Th. scale 4:" name="Th. scale 4:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 5:" name="Th. scale 5:" runtime="false" value="100" visible="false"/>
<variable ID="Force 2D Wavelets" name="Force 2D Wavelets" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="binary Spot Sequence" name="binary Spot Sequence" runtime="false" visible="true"/>
<variable ID="detection as ROIs" name="detection as ROIs" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1055189707" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1554" yLocation="185">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1415321214" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter cytoplasmic spots by size" height="282" keepsResults="true" width="444" xLocation="1513" yLocation="486">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E12" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1796792253" blockType="plugins.stef.roi.bloc.op.FilterROI" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter cytoplasmic spots" height="344" keepsResults="true" width="530" xLocation="1518" yLocation="569">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="descriptors" name="Filter on" runtime="false" value="Interior" visible="true"/>
<variable ID="operator" name="Accept if" runtime="false" value="GREATER" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="out" name="Filtered ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1291892263" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Name of localized cytoplasmic molecule" height="101" keepsResults="true" width="330" xLocation="1158" yLocation="484">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Y" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="850323307" blockType="plugins.tprovoost.sequenceblocks.infos.GetName" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Get name" height="126" keepsResults="true" width="466" xLocation="1592" yLocation="47">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="name" name="Name" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="548208065" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="908" yLocation="116">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\ROI ID" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="2088324607" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="596" xLocation="902" yLocation="157">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\Nucleus ID_" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="406046909" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="906" yLocation="194">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="10439705" blockType="plugins.tprovoost.sequenceblocks.files.SaveSequence" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Save sequence" height="248" keepsResults="true" width="401" xLocation="2356" yLocation="240">
<variables>
<input>
<variable ID="file" name="File" runtime="false" type="java.io.File" visible="true"/>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="format" name="Format" runtime="false" value="TIFF" visible="true"/>
<variable ID="overwrite" name="Overwrite" runtime="false" value="true" visible="true"/>
<variable ID="multiple file" name="Multiple file" runtime="false" value="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="182634250" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display nuclear spots" height="269" keepsResults="true" width="294" xLocation="22" yLocation="783">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1825417202" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display cytoplasmic spots" height="276" keepsResults="true" width="321" xLocation="889" yLocation="792">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="2044646962" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter cytoplasm by size" height="282" keepsResults="true" width="885" xLocation="1516" yLocation="526">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E7" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1315076438" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript (Spreadsheet Nuclei)" height="597" keepsResults="true" width="547" xLocation="2741" yLocation="705">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.util.DateUtil)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;wb=Workbooks.openWorkbook(input1)&#10;&#9;&#10;seq = input3&#10;&#10;name2 = seq.getName()&#10;MicrofociThreshold = input5&#10;&#10;ch0 = input4&#10;&#10;ws = Workbooks.getSheet(wb, input6 + &quot; Information&quot;)&#10;ws1 = Workbooks.getSheet(wb, input6 + &quot;_Distribution foci size&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws1.setValue(0, 0, date)&#10;&#10;ws.setRow(1, [&quot;Cell ID&quot;, &quot;Object Size&quot;, ch0 + &quot;_Mean Intensity&quot;, &#10;ch0 + &quot;_Total foci&quot;,ch0 + &quot;_Foci_size&gt;=&quot; + MicrofociThreshold,&#10;ch0 + &quot;_Microfoci_size&lt;&quot; + MicrofociThreshold])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;roi = input0[i]&#10;&#9;if (roi.getName() != &quot;Empty ROI&quot;){&#10;&#9;&#9;roi.setName(input6+&quot;_&quot;+i)&#10;&#9;}&#10;&#9;roi.setShowName(true)&#10;&#9;roi.setOpacity(0.6)&#10;&#9;title2 = name2 + &quot;_&quot; + roi.getName()&#10;&#9;ws.setValue(i+row, 0, title2)&#10;&#9;&#9;ws1.setValue(i+row, 0, ch0 + &quot;_&quot; + title2)&#10;&#9;if (roi.getName()!=&quot;Empty ROI&quot;){&#10;&#9;&#9;seq.addROI(roi)&#10;&#9;&#9;mean = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq)&#10;&#9;&#9;ws.setValue(i+row, 2, mean)&#10;&#9;&#9;size = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi, seq)&#10;&#9;&#9;ws.setValue(i+row, 1, size)&#9;&#9;&#10;&#9;&#9;var nbdetection = 0 &#10;&#9;&#9;var nbmicrofoci = 0&#10;&#9;&#9;var nbfoci = 0&#10;&#9;&#9;&#10;&#9;&#9;for (k=0; k&lt;input2.length; k++){&#10;&#9;&#9;&#9;roi2 = input2[k]&#10;&#9;&#9;&#9;size2 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi2, seq)&#10;&#9;&#9;&#9;&#10;&#9;&#9;&#9;if(roi.contains(roi2)){&#10;&#9;&#9;&#9;&#9;nbdetection += 1&#10;&#9;&#9;&#9;&#9;ws1.setValue(i+row, nbdetection, size2)&#10;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#10;&#9;&#9;        if (roi.contains(roi2) &amp;&amp; size2&lt; +MicrofociThreshold){&#10;&#9;&#9;&#9;        nbmicrofoci +=1&#10;&#9;&#9;        }&#10;&#9;&#9;&#9;&#9;&#9;&#10;&#9;&#9;        if(roi.contains(roi2) &amp;&amp; size2&gt;= +MicrofociThreshold){&#10;&#9;&#9;&#9;        nbfoci +=1&#10;&#9;&#9;        }&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#10;&#9;        }&#10;&#9;&#9;ws.setValue(i+row, 3, nbdetection)&#10;&#9;&#9;ws.setValue(i+row, 4, nbfoci)&#10;&#9;&#9;ws.setValue(i+row, 5, nbmicrofoci)&#10;&#9;}&#10;}&#10;&#10;seq.setName(name2)&#10;output0 = seq&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="7" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="2132684754" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="1287276240" name="input2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1425126603" name="input3" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="522113217" name="input4" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1069623902" name="input5" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="722967458" name="input6" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1153022467" name="input7" runtime="true" type="java.lang.String" value="" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="354769932" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display cytoplasm saving" height="285" keepsResults="true" width="278" xLocation="1507" yLocation="797">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1248123221" blockType="plugins.adufour.blocks.tools.sequence.SequenceScreenshot" className="plugins.adufour.blocks.tools.sequence.SequenceScreenshot" collapsed="true" definedName="Sequence screenshot" height="83" keepsResults="true" width="562" xLocation="2358" yLocation="130">
<variables>
<input>
<variable ID="input sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="screenshot" name="Screenshot" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1479031316" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="235" keepsResults="true" width="387" xLocation="897" yLocation="237">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\Cytoplasm ID_" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1844458159" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="1942" yLocation="203">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="676236257" blockType="plugins.tprovoost.sequenceblocks.files.SaveSequence" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Save sequence" height="292" keepsResults="true" width="588" xLocation="2374" yLocation="201">
<variables>
<input>
<variable ID="file" name="File" runtime="false" type="java.io.File" visible="true"/>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="format" name="Format" runtime="false" visible="true"/>
<variable ID="overwrite" name="Overwrite" runtime="false" value="true" visible="true"/>
<variable ID="multiple file" name="Multiple file" runtime="false" value="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1359304121" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display nuclei" height="272" keepsResults="true" width="271" xLocation="322" yLocation="787">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="511581960" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display cytoplasm" height="276" keepsResults="true" width="282" xLocation="1215" yLocation="792">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1493461102" blockType="plugins.adufour.blocks.tools.io.FileToWorkbook" className="plugins.adufour.blocks.tools.io.FileToWorkbook" collapsed="true" definedName="File to workbook" height="145" keepsResults="true" width="286" xLocation="2111" yLocation="84">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
</input>
<output>
<variable ID="workbook" name="workbook" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1022510203" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="253" keepsResults="true" width="699" xLocation="31" yLocation="1147">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="org.apache.poi.ss.usermodel.Workbook" visible="true"/>
</input>
<output/>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="1881981832" dstVarID="Sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1314603832" dstVarID="input0" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1465294030" dstVarID="sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1306548184" dstVarID="sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="44424109" dstVarID="suffix" srcBlockID="1929927768" srcVarID="text"/>
<link dstBlockID="1314603832" dstVarID="1438909616" srcBlockID="1929927768" srcVarID="text"/>
<link dstBlockID="1340354960" dstVarID="887546507" srcBlockID="1929927768" srcVarID="text"/>
<link dstBlockID="1314603832" dstVarID="1563040014" srcBlockID="823877876" srcVarID="text"/>
<link dstBlockID="1340354960" dstVarID="1861086095" srcBlockID="2083756463" srcVarID="text"/>
<link dstBlockID="1529446475" dstVarID="suffix" srcBlockID="2083756463" srcVarID="text"/>
<link dstBlockID="1314603832" dstVarID="79289330" srcBlockID="2083756463" srcVarID="text"/>
<link dstBlockID="44424109" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="548208065" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="1529446475" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="864924071" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="1340354960" dstVarID="input0" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="1070794490" dstVarID="1628745397" srcBlockID="1340354960" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="1315076438" dstVarID="722967458" srcBlockID="1340354960" srcVarID="2140707424" srcVarType="java.lang.String"/>
<link dstBlockID="735186542" dstVarID="input file" srcBlockID="1529446475" srcVarID="output file"/>
<link dstBlockID="1457603694" dstVarID="suffix" srcBlockID="1314603832" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="1070794490" dstVarID="665858327" srcBlockID="1314603832" srcVarID="1354092545" srcVarType="java.lang.String"/>
<link dstBlockID="735186542" dstVarID="suffix" srcBlockID="1314603832" srcVarID="2079734764" srcVarType="java.lang.String"/>
<link dstBlockID="368713407" dstVarID="input file" srcBlockID="735186542" srcVarID="output file"/>
<link dstBlockID="755423952" dstVarID="60648209" srcBlockID="368713407" srcVarID="sequence"/>
<link dstBlockID="1457603694" dstVarID="input file" srcBlockID="44424109" srcVarID="output file"/>
<link dstBlockID="1773773167" dstVarID="input file" srcBlockID="1457603694" srcVarID="output file"/>
<link dstBlockID="755423952" dstVarID="input0" srcBlockID="1773773167" srcVarID="sequence"/>
<link dstBlockID="188627358" dstVarID="input Sequence" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="455185749" dstVarID="sequence" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="318340907" dstVarID="sequence" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="1070794490" dstVarID="561494731" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="182634250" dstVarID="object" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="755423952" dstVarID="627280605" srcBlockID="603185887" srcVarID="text"/>
<link dstBlockID="1359304121" dstVarID="object" srcBlockID="755423952" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1370966191" dstVarID="input sequence" srcBlockID="755423952" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="511581960" dstVarID="object" srcBlockID="755423952" srcVarID="1866835320" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1697627384" dstVarID="input sequence" srcBlockID="755423952" srcVarID="1866835320" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1442937079" dstVarID="roi" srcBlockID="1370966191" srcVarID="ROI"/>
<link dstBlockID="1070794490" dstVarID="487165339" srcBlockID="1853094405" srcVarID="text"/>
<link dstBlockID="1070794490" dstVarID="2014856225" srcBlockID="864924071" srcVarID="output file"/>
<link dstBlockID="1493461102" dstVarID="input file" srcBlockID="864924071" srcVarID="output file"/>
<link dstBlockID="455185749" dstVarID="rois(s)" srcBlockID="1442937079" srcVarID="out"/>
<link dstBlockID="640807219" dstVarID="1390729880" srcBlockID="1442937079" srcVarID="out"/>
<link dstBlockID="188627358" dstVarID="input Sequence ROIs" srcBlockID="455185749" srcVarID="sequence"/>
<link dstBlockID="119781439" dstVarID="input sequence" srcBlockID="188627358" srcVarID="binary Spot Sequence"/>
<link dstBlockID="1583487239" dstVarID="roi" srcBlockID="119781439" srcVarID="ROI"/>
<link dstBlockID="318340907" dstVarID="roi" srcBlockID="1583487239" srcVarID="out"/>
<link dstBlockID="1070794490" dstVarID="1381446573" srcBlockID="318340907" srcVarID="out"/>
<link dstBlockID="1315076438" dstVarID="1069623902" srcBlockID="440779936" srcVarID="text"/>
<link dstBlockID="1070794490" dstVarID="837055885" srcBlockID="390859832" srcVarID="text"/>
<link dstBlockID="2137345411" dstVarID="List of ROI" srcBlockID="1697627384" srcVarID="ROI"/>
<link dstBlockID="640807219" dstVarID="577204918" srcBlockID="2137345411" srcVarID="List of hole-filled ROI"/>
<link dstBlockID="571192006" dstVarID="input Sequence ROIs" srcBlockID="640807219" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="2044646962" dstVarID="roi" srcBlockID="640807219" srcVarID="614245479" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="1070794490" dstVarID="input0" srcBlockID="640807219" srcVarID="729492818" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="1692801853" dstVarID="object" srcBlockID="1070794490" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="850323307" dstVarID="sequence" srcBlockID="1070794490" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1315076438" dstVarID="2132684754" srcBlockID="1070794490" srcVarID="2014856225" srcVarType="java.io.File"/>
<link dstBlockID="1714537485" dstVarID="input sequence" srcBlockID="1692801853" srcVarID="object" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="10439705" dstVarID="sequence" srcBlockID="1714537485" srcVarID="screenshot"/>
<link dstBlockID="571192006" dstVarID="input Sequence" srcBlockID="1306548184" srcVarID="extracted"/>
<link dstBlockID="1796792253" dstVarID="sequence" srcBlockID="1306548184" srcVarID="extracted"/>
<link dstBlockID="1315076438" dstVarID="1425126603" srcBlockID="1306548184" srcVarID="extracted"/>
<link dstBlockID="1825417202" dstVarID="object" srcBlockID="1306548184" srcVarID="extracted"/>
<link dstBlockID="1055189707" dstVarID="input sequence" srcBlockID="571192006" srcVarID="binary Spot Sequence"/>
<link dstBlockID="1415321214" dstVarID="roi" srcBlockID="1055189707" srcVarID="ROI"/>
<link dstBlockID="1796792253" dstVarID="roi" srcBlockID="1415321214" srcVarID="out"/>
<link dstBlockID="1315076438" dstVarID="1287276240" srcBlockID="1796792253" srcVarID="out"/>
<link dstBlockID="1315076438" dstVarID="522113217" srcBlockID="1291892263" srcVarID="text"/>
<link dstBlockID="406046909" dstVarID="suffix" srcBlockID="850323307" srcVarID="name"/>
<link dstBlockID="1844458159" dstVarID="suffix" srcBlockID="850323307" srcVarID="name"/>
<link dstBlockID="2088324607" dstVarID="input file" srcBlockID="548208065" srcVarID="output file"/>
<link dstBlockID="1479031316" dstVarID="input file" srcBlockID="548208065" srcVarID="output file"/>
<link dstBlockID="406046909" dstVarID="input file" srcBlockID="2088324607" srcVarID="output file"/>
<link dstBlockID="10439705" dstVarID="file" srcBlockID="406046909" srcVarID="output file"/>
<link dstBlockID="676236257" dstVarID="format" srcBlockID="10439705" srcVarID="format"/>
<link dstBlockID="1315076438" dstVarID="input0" srcBlockID="2044646962" srcVarID="out"/>
<link dstBlockID="354769932" dstVarID="object" srcBlockID="1315076438" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1248123221" dstVarID="input sequence" srcBlockID="354769932" srcVarID="object" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="676236257" dstVarID="sequence" srcBlockID="1248123221" srcVarID="screenshot"/>
<link dstBlockID="1844458159" dstVarID="input file" srcBlockID="1479031316" srcVarID="output file"/>
<link dstBlockID="676236257" dstVarID="file" srcBlockID="1844458159" srcVarID="output file"/>
<link dstBlockID="1022510203" dstVarID="object" srcBlockID="1493461102" srcVarID="workbook"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="1227986369" value="C:\Users\aigueper5\Documents\images\Merge EDC4" visible="true"/>
<variable ID="extension" blockID="1227986369" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="1227986369" value="false" visible="true"/>
<variable ID="1929927768:text" blockID="1929927768" value="\Segmented nuclei" visible="false"/>
<variable ID="823877876:text" blockID="823877876" value="tif" visible="false"/>
<variable ID="2083756463:text" blockID="2083756463" value="\Segmented cytoplasms" visible="false"/>
<variable ID="1881981832:Sequence" blockID="1881981832" value="No Sequence" visible="false"/>
<variable ID="1340354960:Script" blockID="1340354960" value="importClass(Packages.icy.file.FileUtil)&#10;&#10;FileUtil.createDir(input0 + &quot;\\ROI ID&quot;)&#10;&#10;output0 = input1.substring(1)&#10;output1 = input2.substring(1)" visible="false"/>
<variable ID="1340354960:Add Input" blockID="1340354960" value="2" visible="false"/>
<variable ID="1340354960:Add output" blockID="1340354960" value="1" visible="false"/>
<variable ID="1340354960:input0" blockID="1340354960" value="" visible="false"/>
<variable ID="1340354960:887546507" blockID="1340354960" value="" visible="false"/>
<variable ID="1340354960:1861086095" blockID="1340354960" value="" visible="false"/>
<variable ID="1529446475:input file" blockID="1529446475" value="" visible="false"/>
<variable ID="1529446475:remove ext." blockID="1529446475" value="false" visible="false"/>
<variable ID="1529446475:suffix" blockID="1529446475" value="\Segmented cytoplasms" visible="false"/>
<variable ID="1314603832:Script" blockID="1314603832" value="name = input0.getName()&#10;length = name.lastIndexOf(&quot;.&quot;)&#10;&#10;if(length==-1){&#10;&#9;name2 = name&#10;}else{&#10;&#9;name2 = name.substring(0, length)&#10;}&#10;output0 = &quot;\\&quot; + name2 + &quot;_&quot; + input2.substring(1) + &quot;.&quot; + input1&#10;output1 = name2&#10;output2 = &quot;\\&quot; + name2 + &quot;_&quot; + input3.substring(1) + &quot;.&quot; + input1" visible="false"/>
<variable ID="1314603832:Add Input" blockID="1314603832" value="3" visible="false"/>
<variable ID="1314603832:Add output" blockID="1314603832" value="2" visible="false"/>
<variable ID="1314603832:input0" blockID="1314603832" value="" visible="false"/>
<variable ID="1314603832:1563040014" blockID="1314603832" value="" visible="false"/>
<variable ID="1314603832:1438909616" blockID="1314603832" value="" visible="false"/>
<variable ID="1314603832:79289330" blockID="1314603832" value="" visible="false"/>
<variable ID="735186542:input file" blockID="735186542" value="" visible="false"/>
<variable ID="735186542:remove ext." blockID="735186542" value="false" visible="false"/>
<variable ID="735186542:suffix" blockID="735186542" value="" visible="false"/>
<variable ID="368713407:input file" blockID="368713407" value="" visible="false"/>
<variable ID="368713407:Series" blockID="368713407" value="0" visible="false"/>
<variable ID="44424109:input file" blockID="44424109" value="" visible="false"/>
<variable ID="44424109:remove ext." blockID="44424109" value="false" visible="false"/>
<variable ID="44424109:suffix" blockID="44424109" value="\Segmented nuclei" visible="false"/>
<variable ID="1457603694:input file" blockID="1457603694" value="" visible="false"/>
<variable ID="1457603694:remove ext." blockID="1457603694" value="false" visible="false"/>
<variable ID="1457603694:suffix" blockID="1457603694" value="" visible="false"/>
<variable ID="1773773167:input file" blockID="1773773167" value="" visible="false"/>
<variable ID="1773773167:Series" blockID="1773773167" value="0" visible="false"/>
<variable ID="1465294030:sequence" blockID="1465294030" value="No Sequence" visible="false"/>
<variable ID="1465294030:channel" blockID="1465294030" value="1" visible="false"/>
<variable ID="603185887:text" blockID="603185887" value="No" visible="false"/>
<variable ID="755423952:Script" blockID="755423952" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus1 = ImageJUtil.convertToImageJImage(input1, null)&#10;&#9;imp1 = imPlus1&#10;&#9;IJ.run(imp1, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp3 = IJ.getImage()&#10;&#9;imPlus3 = imp3&#10;&#9;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output1=input1&#10;}" visible="false"/>
<variable ID="755423952:Add Input" blockID="755423952" value="2" visible="false"/>
<variable ID="755423952:Add output" blockID="755423952" value="1" visible="false"/>
<variable ID="755423952:input0" blockID="755423952" value="" visible="false"/>
<variable ID="755423952:60648209" blockID="755423952" value="" visible="false"/>
<variable ID="755423952:627280605" blockID="755423952" value="" visible="false"/>
<variable ID="1370966191:input sequence" blockID="1370966191" value="No Sequence" visible="false"/>
<variable ID="1370966191:extract mode" blockID="1370966191" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="1370966191:value" blockID="1370966191" value="0.0" visible="false"/>
<variable ID="1853094405:text" blockID="1853094405" value="0" visible="false"/>
<variable ID="864924071:input file" blockID="864924071" value="" visible="false"/>
<variable ID="864924071:remove ext." blockID="864924071" value="false" visible="false"/>
<variable ID="864924071:suffix" blockID="864924071" value="\Results.xlsx" visible="false"/>
<variable ID="1442937079:roi" blockID="1442937079" value="No ROI" visible="false"/>
<variable ID="1442937079:minSize" blockID="1442937079" value="0.0" visible="false"/>
<variable ID="1442937079:maxSize" blockID="1442937079" value="1.0E10" visible="false"/>
<variable ID="1442937079:incBorder" blockID="1442937079" value="false" visible="false"/>
<variable ID="455185749:sequence" blockID="455185749" value="No Sequence" visible="false"/>
<variable ID="455185749:rois(s)" blockID="455185749" value="No ROI" visible="false"/>
<variable ID="455185749:remove" blockID="455185749" value="false" visible="false"/>
<variable ID="188627358:input Sequence" blockID="188627358" value="No Sequence" visible="false"/>
<variable ID="188627358:Spot to detect" blockID="188627358" value="BRIGHT_SPOT" visible="false"/>
<variable ID="188627358:input Sequence ROIs" blockID="188627358" value="No Sequence" visible="false"/>
<variable ID="188627358:Compute WAT considering ROI" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:ROIs for detection mask" blockID="188627358" value="No ROI" visible="false"/>
<variable ID="188627358:Scale 1" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Scale 2" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Scale 3" blockID="188627358" value="true" visible="false"/>
<variable ID="188627358:Scale 4" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Scale 5" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Th. scale 1:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Th. scale 2:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Th. scale 3:" blockID="188627358" value="20" visible="false"/>
<variable ID="188627358:Th. scale 4:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Th. scale 5:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Force 2D Wavelets" blockID="188627358" value="false" visible="false"/>
<variable ID="119781439:input sequence" blockID="119781439" value="No Sequence" visible="false"/>
<variable ID="119781439:extract mode" blockID="119781439" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="119781439:value" blockID="119781439" value="0.0" visible="false"/>
<variable ID="1583487239:roi" blockID="1583487239" value="No ROI" visible="false"/>
<variable ID="1583487239:minSize" blockID="1583487239" value="0.0" visible="false"/>
<variable ID="1583487239:maxSize" blockID="1583487239" value="1.0E11" visible="false"/>
<variable ID="1583487239:incBorder" blockID="1583487239" value="false" visible="false"/>
<variable ID="318340907:roi" blockID="318340907" value="No ROI" visible="false"/>
<variable ID="318340907:sequence" blockID="318340907" value="No Sequence" visible="false"/>
<variable ID="318340907:descriptors" blockID="318340907" value="Interior" visible="false"/>
<variable ID="318340907:operator" blockID="318340907" value="GREATER" visible="false"/>
<variable ID="318340907:value" blockID="318340907" value="0.0" visible="false"/>
<variable ID="440779936:text" blockID="440779936" value="0" visible="false"/>
<variable ID="390859832:text" blockID="390859832" value="X" visible="false"/>
<variable ID="1697627384:input sequence" blockID="1697627384" value="No Sequence" visible="false"/>
<variable ID="1697627384:extract mode" blockID="1697627384" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="1697627384:value" blockID="1697627384" value="0.0" visible="false"/>
<variable ID="2137345411:List of ROI" blockID="2137345411" value="No ROI" visible="false"/>
<variable ID="640807219:Script" blockID="640807219" value="importClass(Packages.icy.roi.ROI2DArea)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.icy.roi.ROIUtil)&#10;&#10;output1 = []&#10;output2 = []&#10;for (i=0; i&lt;input1.length; i++){&#10;&#9;roi = input1[i]&#10;&#9;output1[i]=input1[i]&#10;&#9;roi3 = new ROI2DArea()&#10;&#9;roi3.setName(&quot;Empty ROI&quot;)&#10;&#9;for (j=0; j&lt;input2.length; j++){&#10;&#9;&#9;roi2 = input2[j]&#10;&#9;&#9;if (roi2.contains(roi)){&#10;&#9;&#9;&#9;roi3.remove()&#10;&#9;&#9;&#9;roi3 = ROIUtil.getSubtraction(roi2, roi)&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;output2[i]=roi3&#9;&#10;}" visible="false"/>
<variable ID="640807219:Add Input" blockID="640807219" value="2" visible="false"/>
<variable ID="640807219:Add output" blockID="640807219" value="2" visible="false"/>
<variable ID="640807219:input0" blockID="640807219" value="" visible="false"/>
<variable ID="640807219:1390729880" blockID="640807219" value="" visible="false"/>
<variable ID="640807219:577204918" blockID="640807219" value="" visible="false"/>
<variable ID="1070794490:Script" blockID="1070794490" value="importClass(Packages.icy.util.DateUtil)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;seq = input3&#10;&#10;name2 = input7&#10;MicrofociThreshold = input6&#10;&#10;ch0 = input5&#10;&#10;ws = Workbooks.getSheet(wb, input4 + &quot; Information&quot;)&#10;ws1 = Workbooks.getSheet(wb, input4 + &quot;_Distribution foci size&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws1.setValue(0, 0, date)&#10;ws.setRow(1, [&quot;Cell ID&quot;, &quot;Object Size&quot;, ch0 + &quot;_Mean Intensity&quot;, &#10;ch0 + &quot;_Total foci&quot;,ch0 + &quot;_Foci_size&gt;=&quot; + MicrofociThreshold,&#10;ch0 + &quot;_Microfoci_size&lt;&quot; + MicrofociThreshold,&quot;Condition&quot;,&quot;Number of Cells&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;ws.setFillColor(1, 6, Color.lightGray)&#10;ws.setFillColor(1, 7, Color.lightGray)&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;ws.setValue(row, 6, name2)&#10;ws.setValue(row, 7, input0.length)&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;roi = input0[i]&#10;&#9;roi.setName(input4 + &quot;_&quot; + i)&#10;&#9;seq.addROI(roi)&#10;&#9;roi.setShowName(true)&#10;&#9;roi.setOpacity(1)&#10;&#9;title = name2 + &quot;_&quot; + roi.getName()&#10;&#9;ws.setValue(i+row, 0, title)&#10;&#9;mean = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 2, mean)&#10;&#9;size = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 1, size)&#9;&#10;&#9;var nbdetection = 0 &#10;&#9;var nbmicrofoci = 0&#10;&#9;var nbfoci = 0&#10;&#10;&#9;for (k=0; k&lt;input2.length; k++){&#10;&#9;&#9;roi2 = input2[k]&#10;&#9;&#9;size2 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi2, seq)&#10;&#9;&#9;ws1.setValue(i+row, 0, ch0 + &quot;_&quot; + title)&#9;&#10;&#9;&#9;&#10;&#9;&#9;if(roi.contains(roi2)){&#10;&#9;&#9;&#9;nbdetection += 1&#10;&#9;&#9;&#9;ws1.setValue(i+row, nbdetection, size2)&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi2) &amp;&amp; size2&lt;MicrofociThreshold){&#10;&#9;&#9;&#9;nbmicrofoci +=1&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if(roi.contains(roi2) &amp;&amp; size2&gt;=MicrofociThreshold){&#10;&#9;&#9;&#9;nbfoci +=1&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;ws.setValue(i+row, 3, nbdetection)&#10;&#9;ws.setValue(i+row, 4, nbfoci)&#10;&#9;ws.setValue(i+row, 5, nbmicrofoci)&#10;}&#10;seq.setName(name2)&#10;output0 = seq&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)" visible="false"/>
<variable ID="1070794490:Add Input" blockID="1070794490" value="7" visible="false"/>
<variable ID="1070794490:Add output" blockID="1070794490" value="0" visible="false"/>
<variable ID="1070794490:input0" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:2014856225" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:1381446573" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:561494731" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:1628745397" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:837055885" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:487165339" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:665858327" blockID="1070794490" value="" visible="false"/>
<variable ID="1692801853:object" blockID="1692801853" value="" visible="false"/>
<variable ID="1714537485:input sequence" blockID="1714537485" value="No Sequence" visible="false"/>
<variable ID="1306548184:sequence" blockID="1306548184" value="No Sequence" visible="false"/>
<variable ID="1306548184:channel" blockID="1306548184" value="1" visible="false"/>
<variable ID="571192006:input Sequence" blockID="571192006" value="No Sequence" visible="false"/>
<variable ID="571192006:Spot to detect" blockID="571192006" value="BRIGHT_SPOT" visible="false"/>
<variable ID="571192006:input Sequence ROIs" blockID="571192006" value="No Sequence" visible="false"/>
<variable ID="571192006:Compute WAT considering ROI" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:ROIs for detection mask" blockID="571192006" value="No ROI" visible="false"/>
<variable ID="571192006:Scale 1" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:Scale 2" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:Scale 3" blockID="571192006" value="true" visible="false"/>
<variable ID="571192006:Scale 4" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:Scale 5" blockID="571192006" value="false" visible="false"/>
<variable ID="571192006:Th. scale 1:" blockID="571192006" value="100" visible="false"/>
<variable ID="571192006:Th. scale 2:" blockID="571192006" value="100" visible="false"/>
<variable ID="571192006:Th. scale 3:" blockID="571192006" value="20" visible="false"/>
<variable ID="571192006:Th. scale 4:" blockID="571192006" value="100" visible="false"/>
<variable ID="571192006:Th. scale 5:" blockID="571192006" value="100" visible="false"/>
<variable ID="571192006:Force 2D Wavelets" blockID="571192006" value="false" visible="false"/>
<variable ID="1055189707:input sequence" blockID="1055189707" value="No Sequence" visible="false"/>
<variable ID="1055189707:extract mode" blockID="1055189707" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="1055189707:value" blockID="1055189707" value="0.0" visible="false"/>
<variable ID="1415321214:roi" blockID="1415321214" value="No ROI" visible="false"/>
<variable ID="1415321214:minSize" blockID="1415321214" value="0.0" visible="false"/>
<variable ID="1415321214:maxSize" blockID="1415321214" value="1.0E12" visible="false"/>
<variable ID="1415321214:incBorder" blockID="1415321214" value="false" visible="false"/>
<variable ID="1796792253:roi" blockID="1796792253" value="No ROI" visible="false"/>
<variable ID="1796792253:sequence" blockID="1796792253" value="No Sequence" visible="false"/>
<variable ID="1796792253:descriptors" blockID="1796792253" value="Interior" visible="false"/>
<variable ID="1796792253:operator" blockID="1796792253" value="GREATER" visible="false"/>
<variable ID="1796792253:value" blockID="1796792253" value="0.0" visible="false"/>
<variable ID="1291892263:text" blockID="1291892263" value="Y" visible="false"/>
<variable ID="850323307:sequence" blockID="850323307" value="No Sequence" visible="false"/>
<variable ID="548208065:input file" blockID="548208065" value="" visible="false"/>
<variable ID="548208065:remove ext." blockID="548208065" value="false" visible="false"/>
<variable ID="548208065:suffix" blockID="548208065" value="\ROI ID" visible="false"/>
<variable ID="2088324607:input file" blockID="2088324607" value="" visible="false"/>
<variable ID="2088324607:remove ext." blockID="2088324607" value="false" visible="false"/>
<variable ID="2088324607:suffix" blockID="2088324607" value="\Nucleus ID_" visible="false"/>
<variable ID="406046909:input file" blockID="406046909" value="" visible="false"/>
<variable ID="406046909:remove ext." blockID="406046909" value="false" visible="false"/>
<variable ID="406046909:suffix" blockID="406046909" value="" visible="false"/>
<variable ID="10439705:file" blockID="10439705" value="" visible="false"/>
<variable ID="10439705:sequence" blockID="10439705" value="No Sequence" visible="false"/>
<variable ID="10439705:format" blockID="10439705" value="TIFF" visible="false"/>
<variable ID="10439705:overwrite" blockID="10439705" value="true" visible="false"/>
<variable ID="10439705:multiple file" blockID="10439705" value="false" visible="false"/>
<variable ID="182634250:object" blockID="182634250" value="" visible="false"/>
<variable ID="1825417202:object" blockID="1825417202" value="" visible="false"/>
<variable ID="2044646962:roi" blockID="2044646962" value="No ROI" visible="false"/>
<variable ID="2044646962:minSize" blockID="2044646962" value="0.0" visible="false"/>
<variable ID="2044646962:maxSize" blockID="2044646962" value="1.0E7" visible="false"/>
<variable ID="2044646962:incBorder" blockID="2044646962" value="false" visible="false"/>
<variable ID="1315076438:Script" blockID="1315076438" value="importClass(Packages.icy.util.DateUtil)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;wb=Workbooks.openWorkbook(input1)&#10;&#9;&#10;seq = input3&#10;&#10;name2 = seq.getName()&#10;MicrofociThreshold = input5&#10;&#10;ch0 = input4&#10;&#10;ws = Workbooks.getSheet(wb, input6 + &quot; Information&quot;)&#10;ws1 = Workbooks.getSheet(wb, input6 + &quot;_Distribution foci size&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws1.setValue(0, 0, date)&#10;&#10;ws.setRow(1, [&quot;Cell ID&quot;, &quot;Object Size&quot;, ch0 + &quot;_Mean Intensity&quot;, &#10;ch0 + &quot;_Total foci&quot;,ch0 + &quot;_Foci_size&gt;=&quot; + MicrofociThreshold,&#10;ch0 + &quot;_Microfoci_size&lt;&quot; + MicrofociThreshold])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;roi = input0[i]&#10;&#9;if (roi.getName() != &quot;Empty ROI&quot;){&#10;&#9;&#9;roi.setName(input6+&quot;_&quot;+i)&#10;&#9;}&#10;&#9;roi.setShowName(true)&#10;&#9;roi.setOpacity(0.6)&#10;&#9;title2 = name2 + &quot;_&quot; + roi.getName()&#10;&#9;ws.setValue(i+row, 0, title2)&#10;&#9;&#9;ws1.setValue(i+row, 0, ch0 + &quot;_&quot; + title2)&#10;&#9;if (roi.getName()!=&quot;Empty ROI&quot;){&#10;&#9;&#9;seq.addROI(roi)&#10;&#9;&#9;mean = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq)&#10;&#9;&#9;ws.setValue(i+row, 2, mean)&#10;&#9;&#9;size = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi, seq)&#10;&#9;&#9;ws.setValue(i+row, 1, size)&#9;&#9;&#10;&#9;&#9;var nbdetection = 0 &#10;&#9;&#9;var nbmicrofoci = 0&#10;&#9;&#9;var nbfoci = 0&#10;&#9;&#9;&#10;&#9;&#9;for (k=0; k&lt;input2.length; k++){&#10;&#9;&#9;&#9;roi2 = input2[k]&#10;&#9;&#9;&#9;size2 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi2, seq)&#10;&#9;&#9;&#9;&#10;&#9;&#9;&#9;if(roi.contains(roi2)){&#10;&#9;&#9;&#9;&#9;nbdetection += 1&#10;&#9;&#9;&#9;&#9;ws1.setValue(i+row, nbdetection, size2)&#10;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#10;&#9;&#9;        if (roi.contains(roi2) &amp;&amp; size2&lt; +MicrofociThreshold){&#10;&#9;&#9;&#9;        nbmicrofoci +=1&#10;&#9;&#9;        }&#10;&#9;&#9;&#9;&#9;&#9;&#10;&#9;&#9;        if(roi.contains(roi2) &amp;&amp; size2&gt;= +MicrofociThreshold){&#10;&#9;&#9;&#9;        nbfoci +=1&#10;&#9;&#9;        }&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#10;&#9;        }&#10;&#9;&#9;ws.setValue(i+row, 3, nbdetection)&#10;&#9;&#9;ws.setValue(i+row, 4, nbfoci)&#10;&#9;&#9;ws.setValue(i+row, 5, nbmicrofoci)&#10;&#9;}&#10;}&#10;&#10;seq.setName(name2)&#10;output0 = seq&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)" visible="false"/>
<variable ID="1315076438:Add Input" blockID="1315076438" value="7" visible="false"/>
<variable ID="1315076438:Add output" blockID="1315076438" value="0" visible="false"/>
<variable ID="1315076438:input0" blockID="1315076438" value="" visible="false"/>
<variable ID="1315076438:2132684754" blockID="1315076438" value="" visible="false"/>
<variable ID="1315076438:1287276240" blockID="1315076438" value="" visible="false"/>
<variable ID="1315076438:1425126603" blockID="1315076438" value="" visible="false"/>
<variable ID="1315076438:522113217" blockID="1315076438" value="" visible="false"/>
<variable ID="1315076438:1069623902" blockID="1315076438" value="" visible="false"/>
<variable ID="1315076438:722967458" blockID="1315076438" value="" visible="false"/>
<variable ID="1315076438:1153022467" blockID="1315076438" value="" visible="false"/>
<variable ID="354769932:object" blockID="354769932" value="" visible="false"/>
<variable ID="1248123221:input sequence" blockID="1248123221" value="No Sequence" visible="false"/>
<variable ID="1479031316:input file" blockID="1479031316" value="" visible="false"/>
<variable ID="1479031316:remove ext." blockID="1479031316" value="false" visible="false"/>
<variable ID="1479031316:suffix" blockID="1479031316" value="\Cytoplasm ID_" visible="false"/>
<variable ID="1844458159:input file" blockID="1844458159" value="" visible="false"/>
<variable ID="1844458159:remove ext." blockID="1844458159" value="false" visible="false"/>
<variable ID="1844458159:suffix" blockID="1844458159" value="" visible="false"/>
<variable ID="676236257:file" blockID="676236257" value="" visible="false"/>
<variable ID="676236257:sequence" blockID="676236257" value="No Sequence" visible="false"/>
<variable ID="676236257:format" blockID="676236257" value="TIFF" visible="false"/>
<variable ID="676236257:overwrite" blockID="676236257" value="true" visible="false"/>
<variable ID="676236257:multiple file" blockID="676236257" value="false" visible="false"/>
<variable ID="1359304121:object" blockID="1359304121" value="" visible="false"/>
<variable ID="511581960:object" blockID="511581960" value="" visible="false"/>
<variable ID="1493461102:input file" blockID="1493461102" value="" visible="false"/>
<variable ID="1022510203:object" blockID="1022510203" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="1227986369" visible="true"/>
<variable ID="Sequence" blockID="1227986369" visible="true"/>
<variable ID="1881981832:Folder" blockID="1881981832" visible="false"/>
<variable ID="1340354960:output0" blockID="1340354960" visible="false"/>
<variable ID="1340354960:2140707424" blockID="1340354960" visible="false"/>
<variable ID="1529446475:output file" blockID="1529446475" visible="false"/>
<variable ID="1314603832:output0" blockID="1314603832" visible="false"/>
<variable ID="1314603832:1354092545" blockID="1314603832" visible="false"/>
<variable ID="1314603832:2079734764" blockID="1314603832" visible="false"/>
<variable ID="735186542:output file" blockID="735186542" visible="false"/>
<variable ID="368713407:sequence" blockID="368713407" visible="false"/>
<variable ID="44424109:output file" blockID="44424109" visible="false"/>
<variable ID="1457603694:output file" blockID="1457603694" visible="false"/>
<variable ID="1773773167:sequence" blockID="1773773167" visible="false"/>
<variable ID="1465294030:extracted" blockID="1465294030" visible="false"/>
<variable ID="755423952:output0" blockID="755423952" visible="false"/>
<variable ID="755423952:1866835320" blockID="755423952" visible="false"/>
<variable ID="1370966191:ROI" blockID="1370966191" visible="false"/>
<variable ID="864924071:output file" blockID="864924071" visible="false"/>
<variable ID="1442937079:out" blockID="1442937079" visible="false"/>
<variable ID="188627358:binary Spot Sequence" blockID="188627358" visible="false"/>
<variable ID="188627358:detection as ROIs" blockID="188627358" visible="false"/>
<variable ID="119781439:ROI" blockID="119781439" visible="false"/>
<variable ID="1583487239:out" blockID="1583487239" visible="false"/>
<variable ID="318340907:out" blockID="318340907" visible="false"/>
<variable ID="1697627384:ROI" blockID="1697627384" visible="false"/>
<variable ID="2137345411:List of hole-filled ROI" blockID="2137345411" visible="false"/>
<variable ID="640807219:output0" blockID="640807219" visible="false"/>
<variable ID="640807219:729492818" blockID="640807219" visible="false"/>
<variable ID="640807219:614245479" blockID="640807219" visible="false"/>
<variable ID="1070794490:output0" blockID="1070794490" visible="false"/>
<variable ID="1714537485:screenshot" blockID="1714537485" visible="false"/>
<variable ID="1306548184:extracted" blockID="1306548184" visible="false"/>
<variable ID="571192006:binary Spot Sequence" blockID="571192006" visible="false"/>
<variable ID="571192006:detection as ROIs" blockID="571192006" visible="false"/>
<variable ID="1055189707:ROI" blockID="1055189707" visible="false"/>
<variable ID="1415321214:out" blockID="1415321214" visible="false"/>
<variable ID="1796792253:out" blockID="1796792253" visible="false"/>
<variable ID="850323307:name" blockID="850323307" visible="false"/>
<variable ID="548208065:output file" blockID="548208065" visible="false"/>
<variable ID="2088324607:output file" blockID="2088324607" visible="false"/>
<variable ID="406046909:output file" blockID="406046909" visible="false"/>
<variable ID="2044646962:out" blockID="2044646962" visible="false"/>
<variable ID="1315076438:output0" blockID="1315076438" visible="false"/>
<variable ID="1248123221:screenshot" blockID="1248123221" visible="false"/>
<variable ID="1479031316:output file" blockID="1479031316" visible="false"/>
<variable ID="1844458159:output file" blockID="1844458159" visible="false"/>
<variable ID="1493461102:workbook" blockID="1493461102" visible="false"/>
</output>
</variables>
</workflow>
<workflow ID="1678492333" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Segmentation B: Poorly clustered objects" height="161" keepsResults="true" width="433" xLocation="472" yLocation="158">
<blocks>
<block ID="1504273512" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="channel signal" height="145" keepsResults="true" width="466" xLocation="128" yLocation="126">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="2" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1228133740" blockType="plugins.tprovoost.sequenceblocks.infos.GetName" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Get name" height="83" keepsResults="true" width="466" xLocation="394" yLocation="55">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="name" name="Name" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="34024749" blockType="plugins.adufour.blocks.tools.ij.SequenceToImagePlus" className="plugins.adufour.blocks.tools.ij.SequenceToImagePlus" collapsed="true" definedName="Sequence to image plus" height="83" keepsResults="true" width="511" xLocation="516" yLocation="100">
<variables>
<input>
<variable ID="Icy Sequence" name="Icy Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="IJ ImagePlus" name="ImagePlus" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="385439498" blockType="plugins.adufour.blocks.tools.ij.CallIJPlugin" className="plugins.adufour.blocks.tools.ij.CallIJPlugin" collapsed="true" definedName="Call IJ plugin" height="207" keepsResults="true" width="593" xLocation="792" yLocation="167">
<variables>
<input>
<variable ID="Input ImagePlus" name="Input ImagePlus" runtime="false" visible="true"/>
<variable ID="ImageJ plug-in name" name="plug-in name" runtime="false" value="Subtract Background..." visible="true"/>
<variable ID="ImageJ plug-in parameters" name="parameters" runtime="false" value="rolling=500" visible="true"/>
</input>
<output>
<variable ID="Output ImagePlus" name="Output (active) ImagePlus" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1524368068" blockType="plugins.adufour.blocks.tools.ij.ImagePlusToSequence" className="plugins.adufour.blocks.tools.ij.ImagePlusToSequence" collapsed="true" definedName="Image plus to sequence" height="83" keepsResults="true" width="375" xLocation="950" yLocation="249">
<variables>
<input>
<variable ID="IJ ImagePlus" name="IJ ImagePlus" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Icy Sequence" name="Icy Sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="151308347" blockType="plugins.spop.clahe.Clahe" className="plugins.spop.clahe.Clahe" collapsed="true" definedName="Adaptive histogram equalization" height="388" keepsResults="true" width="548" xLocation="561" yLocation="351">
<variables>
<input>
<variable ID="Input" name="Input" runtime="false" visible="true"/>
<variable ID="Type" name="Type" runtime="false" value="Multi 2D" visible="true"/>
<variable ID="No.bins" name="No.bins" runtime="false" value="255" visible="true"/>
<variable ID="Half size XY" name="Half size XY" runtime="false" value="15" visible="true"/>
<variable ID="Half size Z" name="Half size Z" runtime="false" value="3" visible="true"/>
<variable ID="Maximum slope" name="Maximum slope" runtime="false" value="1.0" visible="true"/>
</input>
<output>
<variable ID="Output" name="Output" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="871763391" blockType="plugins.adufour.hierarchicalkmeans.HierarchicalKMeans" className="plugins.adufour.hierarchicalkmeans.HierarchicalKMeans" collapsed="true" definedName="HK-Means" height="508" keepsResults="true" width="371" xLocation="628" yLocation="487">
<variables>
<input>
<variable ID="Input" name="Input" runtime="false" visible="true"/>
<variable ID="Gaussian pre-filter" name="Gaussian pre-filter" runtime="false" value="0.0" visible="true"/>
<variable ID="Frame" name="Frame" runtime="false" value="0" visible="true"/>
<variable ID="Number of classes" name="Intensity classes" runtime="false" value="8" visible="true"/>
<variable ID="Min size (px)" name="Min object size (px)" runtime="false" value="20000" visible="true"/>
<variable ID="Max size (px)" name="Max object size (px)" runtime="false" value="100000" visible="true"/>
<variable ID="Final threshold" name="Min object intensity" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="binary sequence" name="binary sequence" runtime="false" visible="true"/>
<variable ID="output regions" name="list of ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="834089925" blockType="plugins.adufour.activecontours.ActiveContours" className="plugins.adufour.activecontours.ActiveContours" collapsed="true" definedName="Active Contours" height="601" keepsResults="true" width="329" xLocation="751" yLocation="658">
<variables>
<input>
<variable ID="input sequence" name="Input" runtime="false" visible="true"/>
<variable ID="Input ROI" name="input ROI" runtime="false" visible="true"/>
<variable ID="regularization: weight" name="Contour smoothness" runtime="false" value="0.05" visible="false"/>
<variable ID="edge: weight" name="Edge weight" runtime="false" value="0.0" visible="false"/>
<variable ID="edge: channel" name="Find edges in channel" runtime="false" value="0" visible="false"/>
<variable ID="region: weight" name="Region weight" runtime="false" value="1.0" visible="false"/>
<variable ID="region: sensitivity" name="Region sensitivity" runtime="false" value="1.0" visible="false"/>
<variable ID="region: channel" name="Find regions in channel" runtime="false" value="0" visible="false"/>
<variable ID="balloon: weight" name="Contour inflation" runtime="false" value="0.001" visible="false"/>
<variable ID="contour resolution" name="Contour sampling" runtime="false" value="2.0" visible="true"/>
<variable ID="region bounds" name="Bound field to ROI of" runtime="false" value="No Sequence" visible="true"/>
<variable ID="time step" name="Evolution time step" runtime="false" value="1.0" visible="true"/>
<variable ID="convergence value" name="Convergence criterion" runtime="false" value="0.05" visible="true"/>
<variable ID="max. iterations" name="Max. iterations" runtime="false" value="100000" visible="true"/>
<variable ID="type of ROI output" name="Type of ROI" runtime="false" value="AREA" visible="true"/>
<variable ID="tracking" name="Track objects over time" runtime="false" value="false" visible="true"/>
<variable ID="division sensitivity" name="Division sensitivity" runtime="false" value="0.0" visible="true"/>
<variable ID="axis constraint" name="Axis constraint" runtime="false" value="0.4" visible="true"/>
<variable ID="Volume weight" name="Volume weight" runtime="false" value="0.01" visible="true"/>
<variable ID="watch entering objects" name="Watch entering objects" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="Regions of interest" name="Regions of interest" runtime="false" visible="true"/>
<variable ID="Tracks" name="Tracks" runtime="false" visible="true"/>
<variable ID="Labels" name="Labels" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="640635376" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="83" keepsResults="true" width="466" xLocation="640" yLocation="0">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="848584453" blockType="plugins.tprovoost.sequenceblocks.infos.SetName" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Set name" height="123" keepsResults="true" width="466" xLocation="1600" yLocation="121">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="name" name="Name" runtime="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1858928501" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Text" height="101" keepsResults="true" width="297" xLocation="138" yLocation="526">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="560176733" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented objects" height="101" keepsResults="true" width="303" xLocation="131" yLocation="652">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="tif" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="311222298" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="false" definedName="Javascript" height="608" keepsResults="true" width="459" xLocation="1828" yLocation="105">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;seq = input0&#10;name = seq.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;&#10;if(n==-1){&#10;&#9;name2=name&#10;} else{&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;title = name2 + &quot;_&quot; + input3&#10;seq.removeAllROI()&#10;&#10;file = input1&#10;FileUtil.createDir(file + &quot;\\&quot; + input3)&#10;path = file.getAbsolutePath()&#10;dir = path + &quot;\\&quot; + input3 + &quot;\\&quot; + title&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.saveAs(imp, input2, dir)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="3" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1883632115" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="2062877856" name="input2" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="362968388" name="input3" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.Object" visible="true"/>
</output>
</variables>
</block>
<block ID="1878133379" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display segmented objects" height="291" keepsResults="true" width="334" xLocation="1237" yLocation="716">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1400954059" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display pre-processed image" height="224" keepsResults="true" width="286" xLocation="1318" yLocation="162">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1000588621" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display " height="202" keepsResults="true" width="281" xLocation="930" yLocation="343">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1416268719" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display channel" height="292" keepsResults="true" width="318" xLocation="138" yLocation="216">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="1504273512" dstVarID="sequence" srcBlockID="1678492333" srcVarID="Sequence"/>
<link dstBlockID="1228133740" dstVarID="sequence" srcBlockID="1678492333" srcVarID="Sequence"/>
<link dstBlockID="640635376" dstVarID="Sequence" srcBlockID="1678492333" srcVarID="Sequence"/>
<link dstBlockID="1416268719" dstVarID="object" srcBlockID="1504273512" srcVarID="extracted"/>
<link dstBlockID="834089925" dstVarID="input sequence" srcBlockID="1504273512" srcVarID="extracted"/>
<link dstBlockID="34024749" dstVarID="Icy Sequence" srcBlockID="1504273512" srcVarID="extracted"/>
<link dstBlockID="848584453" dstVarID="name" srcBlockID="1228133740" srcVarID="name"/>
<link dstBlockID="385439498" dstVarID="Input ImagePlus" srcBlockID="34024749" srcVarID="IJ ImagePlus"/>
<link dstBlockID="1524368068" dstVarID="IJ ImagePlus" srcBlockID="385439498" srcVarID="Output ImagePlus"/>
<link dstBlockID="1400954059" dstVarID="object" srcBlockID="1524368068" srcVarID="Icy Sequence"/>
<link dstBlockID="151308347" dstVarID="Input" srcBlockID="1524368068" srcVarID="Icy Sequence"/>
<link dstBlockID="1000588621" dstVarID="object" srcBlockID="151308347" srcVarID="Output"/>
<link dstBlockID="871763391" dstVarID="Input" srcBlockID="151308347" srcVarID="Output"/>
<link dstBlockID="834089925" dstVarID="Input ROI" srcBlockID="871763391" srcVarID="output regions"/>
<link dstBlockID="848584453" dstVarID="sequence" srcBlockID="834089925" srcVarID="Labels"/>
<link dstBlockID="1878133379" dstVarID="object" srcBlockID="834089925" srcVarID="Labels"/>
<link dstBlockID="311222298" dstVarID="1883632115" srcBlockID="640635376" srcVarID="Folder"/>
<link dstBlockID="311222298" dstVarID="input0" srcBlockID="848584453" srcVarID="sequence"/>
<link dstBlockID="311222298" dstVarID="362968388" srcBlockID="1858928501" srcVarID="text"/>
<link dstBlockID="311222298" dstVarID="2062877856" srcBlockID="560176733" srcVarID="text"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="1678492333" value="C:\Users\aigueper5\Documents\images\Merge" visible="true"/>
<variable ID="extension" blockID="1678492333" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="1678492333" value="false" visible="true"/>
<variable ID="1504273512:sequence" blockID="1504273512" value="No Sequence" visible="false"/>
<variable ID="1504273512:channel" blockID="1504273512" value="2" visible="false"/>
<variable ID="1228133740:sequence" blockID="1228133740" value="No Sequence" visible="false"/>
<variable ID="34024749:Icy Sequence" blockID="34024749" value="No Sequence" visible="false"/>
<variable ID="385439498:Input ImagePlus" blockID="385439498" value="" visible="false"/>
<variable ID="385439498:ImageJ plug-in name" blockID="385439498" value="Subtract Background..." visible="false"/>
<variable ID="385439498:ImageJ plug-in parameters" blockID="385439498" value="rolling=500" visible="false"/>
<variable ID="1524368068:IJ ImagePlus" blockID="1524368068" value="" visible="false"/>
<variable ID="151308347:Input" blockID="151308347" value="No Sequence" visible="false"/>
<variable ID="151308347:Type" blockID="151308347" value="Multi 2D" visible="false"/>
<variable ID="151308347:No.bins" blockID="151308347" value="255" visible="false"/>
<variable ID="151308347:Half size XY" blockID="151308347" value="15" visible="false"/>
<variable ID="151308347:Half size Z" blockID="151308347" value="3" visible="false"/>
<variable ID="151308347:Maximum slope" blockID="151308347" value="1.0" visible="false"/>
<variable ID="871763391:Input" blockID="871763391" value="No Sequence" visible="false"/>
<variable ID="871763391:Gaussian pre-filter" blockID="871763391" value="0.0" visible="false"/>
<variable ID="871763391:Frame" blockID="871763391" value="0" visible="false"/>
<variable ID="871763391:Number of classes" blockID="871763391" value="8" visible="false"/>
<variable ID="871763391:Min size (px)" blockID="871763391" value="20000" visible="false"/>
<variable ID="871763391:Max size (px)" blockID="871763391" value="100000" visible="false"/>
<variable ID="871763391:Final threshold" blockID="871763391" value="0.0" visible="false"/>
<variable ID="834089925:input sequence" blockID="834089925" value="No Sequence" visible="false"/>
<variable ID="834089925:Input ROI" blockID="834089925" value="No ROI" visible="false"/>
<variable ID="834089925:regularization: weight" blockID="834089925" value="0.05" visible="false"/>
<variable ID="834089925:edge: weight" blockID="834089925" value="0.0" visible="false"/>
<variable ID="834089925:edge: channel" blockID="834089925" value="0" visible="false"/>
<variable ID="834089925:region: weight" blockID="834089925" value="1.0" visible="false"/>
<variable ID="834089925:region: sensitivity" blockID="834089925" value="1.0" visible="false"/>
<variable ID="834089925:region: channel" blockID="834089925" value="0" visible="false"/>
<variable ID="834089925:balloon: weight" blockID="834089925" value="0.001" visible="false"/>
<variable ID="834089925:contour resolution" blockID="834089925" value="2.0" visible="false"/>
<variable ID="834089925:region bounds" blockID="834089925" value="No Sequence" visible="false"/>
<variable ID="834089925:time step" blockID="834089925" value="1.0" visible="false"/>
<variable ID="834089925:convergence value" blockID="834089925" value="0.05" visible="false"/>
<variable ID="834089925:max. iterations" blockID="834089925" value="100000" visible="false"/>
<variable ID="834089925:type of ROI output" blockID="834089925" value="AREA" visible="false"/>
<variable ID="834089925:tracking" blockID="834089925" value="false" visible="false"/>
<variable ID="834089925:division sensitivity" blockID="834089925" value="0.0" visible="false"/>
<variable ID="834089925:axis constraint" blockID="834089925" value="0.4" visible="false"/>
<variable ID="834089925:Volume weight" blockID="834089925" value="0.01" visible="false"/>
<variable ID="834089925:watch entering objects" blockID="834089925" value="false" visible="false"/>
<variable ID="640635376:Sequence" blockID="640635376" value="No Sequence" visible="false"/>
<variable ID="848584453:sequence" blockID="848584453" value="No Sequence" visible="false"/>
<variable ID="848584453:name" blockID="848584453" value="" visible="false"/>
<variable ID="1858928501:text" blockID="1858928501" value="Segmented nuclei" visible="false"/>
<variable ID="560176733:text" blockID="560176733" value="tif" visible="false"/>
<variable ID="311222298:Script" blockID="311222298" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;seq = input0&#10;name = seq.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;&#10;if(n==-1){&#10;&#9;name2=name&#10;} else{&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;title = name2 + &quot;_&quot; + input3&#10;seq.removeAllROI()&#10;&#10;file = input1&#10;FileUtil.createDir(file + &quot;\\&quot; + input3)&#10;path = file.getAbsolutePath()&#10;dir = path + &quot;\\&quot; + input3 + &quot;\\&quot; + title&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.saveAs(imp, input2, dir)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="false"/>
<variable ID="311222298:Add Input" blockID="311222298" value="3" visible="false"/>
<variable ID="311222298:Add output" blockID="311222298" value="0" visible="false"/>
<variable ID="311222298:input0" blockID="311222298" value="" visible="false"/>
<variable ID="311222298:1883632115" blockID="311222298" value="" visible="false"/>
<variable ID="311222298:2062877856" blockID="311222298" value="" visible="false"/>
<variable ID="311222298:362968388" blockID="311222298" value="" visible="false"/>
<variable ID="1878133379:object" blockID="1878133379" value="" visible="false"/>
<variable ID="1400954059:object" blockID="1400954059" value="" visible="false"/>
<variable ID="1000588621:object" blockID="1000588621" value="" visible="false"/>
<variable ID="1416268719:object" blockID="1416268719" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="1678492333" visible="true"/>
<variable ID="Sequence" blockID="1678492333" visible="true"/>
<variable ID="1504273512:extracted" blockID="1504273512" visible="false"/>
<variable ID="1228133740:name" blockID="1228133740" visible="false"/>
<variable ID="34024749:IJ ImagePlus" blockID="34024749" visible="false"/>
<variable ID="385439498:Output ImagePlus" blockID="385439498" visible="false"/>
<variable ID="1524368068:Icy Sequence" blockID="1524368068" visible="false"/>
<variable ID="151308347:Output" blockID="151308347" visible="false"/>
<variable ID="871763391:binary sequence" blockID="871763391" visible="false"/>
<variable ID="871763391:output regions" blockID="871763391" visible="false"/>
<variable ID="834089925:Regions of interest" blockID="834089925" visible="false"/>
<variable ID="834089925:Tracks" blockID="834089925" visible="false"/>
<variable ID="834089925:Labels" blockID="834089925" visible="false"/>
<variable ID="640635376:Folder" blockID="640635376" visible="false"/>
<variable ID="311222298:output0" blockID="311222298" visible="false"/>
</output>
</variables>
</workflow>
<block ID="868809592" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="false" definedName="Dialog Box Segmentation D: Clustered objects with irregular shapes" height="198" keepsResults="true" width="481" xLocation="0" yLocation="515">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.gui.dialog.ConfirmDialog)&#10;&#10;&#10;dialog1 = ConfirmDialog.confirm(&quot;HK-means parameters&quot;, &quot;Apply same parameters for all images?&quot;, ConfirmDialog.YES_NO_OPTION)&#10;&#10;if (dialog1==true){&#10;&#9;output0 = 1&#10;} else (output0 = 0)&#10;&#10;dialog1 = ConfirmDialog.confirm(&quot;Marker-based watershed&quot;, &quot;Apply same parameters for all images?&quot;, ConfirmDialog.YES_NO_OPTION)&#10;&#10;if (dialog1==true){&#10;&#9;output1 = 1&#10;} else (output1 = 0)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="0" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="java.lang.Object" value="" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.Integer" visible="true"/>
<variable ID="1965035226" name="output1" runtime="true" type="java.lang.Integer" visible="true"/>
</output>
</variables>
</block>
<workflow ID="388466965" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Segmentation D: Clustered objects with irregular shapes" height="176" keepsResults="true" width="423" xLocation="492" yLocation="517">
<blocks>
<block CommandLineID="" ID="262720723" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented objects" height="101" keepsResults="true" width="303" xLocation="0" yLocation="594">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Tiff" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="625514161" blockType="plugins.adufour.blocks.tools.input.Decimal" className="plugins.adufour.blocks.tools.input.Decimal" collapsed="true" definedName="Decimal" height="101" keepsResults="true" width="149" xLocation="4" yLocation="1238">
<variables>
<input>
<variable ID="decimal" name="decimal" runtime="false" value="128.0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1095946766" blockType="plugins.adufour.blocks.tools.input.Decimal" className="plugins.adufour.blocks.tools.input.Decimal" collapsed="true" definedName="Decimal" height="103" keepsResults="true" width="149" xLocation="8" yLocation="1271">
<variables>
<input>
<variable ID="decimal" name="decimal" runtime="false" value="0.0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="2070016971" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="true" definedName="Integer" height="101" keepsResults="true" width="142" xLocation="62" yLocation="117">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1244016032" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Apply Subtract Background?" height="101" keepsResults="true" width="261" xLocation="0" yLocation="158">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="No" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="941062590" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Channel signal" height="167" keepsResults="true" width="466" xLocation="294" yLocation="161">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="2" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1324090319" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="Subtract Background parameter" height="101" keepsResults="true" width="283" xLocation="510" yLocation="153">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="500" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="600377611" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Subtract Background" height="1118" keepsResults="true" width="1193" xLocation="814" yLocation="157">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.ij.IJ)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;8-bit&quot;, &quot;&quot;)&#10;if (input1 == &quot;Yes&quot;){&#10;&#9;IJ.run(imp, &quot;Subtract Background...&quot;, &quot;rolling=&quot; + input2)&#10;}&#10;imPlus2 = imp&#10;seq2 = ImageJUtil.convertToIcySequence(imPlus2, null)&#10;seq2.removeAllROI()&#10;output0 = seq2&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="588252512" name="input1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="850932624" name="input2" runtime="true" type="int" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="441782" name="output1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1131362856" name="output2" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="866126931" blockType="plugins.spop.clahe.Clahe" className="plugins.spop.clahe.Clahe" collapsed="true" definedName="Adaptive histogram equalization" height="481" keepsResults="true" width="548" xLocation="1040" yLocation="156">
<variables>
<input>
<variable ID="Input" name="Input" runtime="false" visible="true"/>
<variable ID="Type" name="Type" runtime="false" value="Multi 2D" visible="true"/>
<variable ID="No.bins" name="No.bins" runtime="false" value="255" visible="true"/>
<variable ID="Half size XY" name="Half size XY" runtime="false" value="15" visible="true"/>
<variable ID="Half size Z" name="Half size Z" runtime="false" value="1" visible="true"/>
<variable ID="Maximum slope" name="Maximum slope" runtime="false" value="1.0" visible="true"/>
</input>
<output>
<variable ID="Output" name="Output" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1588685860" blockType="plugins.adufour.filtering.GaussianFilter" className="plugins.adufour.filtering.FilterToolbox" collapsed="true" definedName="Gaussian filter" height="269" keepsResults="true" width="456" xLocation="1352" yLocation="165">
<variables>
<input>
<variable ID="input" name="input" runtime="false" visible="true"/>
<variable ID="filterX" name="sigma (x)" runtime="false" value="0.0" visible="true"/>
<variable ID="filterY" name="sigma (y)" runtime="false" value="0.0" visible="true"/>
<variable ID="filterZ" name="sigma (z)" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="output" name="output" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1273097100" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="HK-Means: Nb of classes" height="101" keepsResults="true" width="238" xLocation="23" yLocation="280">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="2" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1390649572" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="HK-Means: Min size" height="101" keepsResults="true" width="210" xLocation="286" yLocation="280">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="5000" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="605431502" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="HK-Means: Max size" height="101" keepsResults="true" width="213" xLocation="525" yLocation="282">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="35000" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1699199775" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="false" definedName="Nb of images with Information Box" height="151" keepsResults="true" width="303" xLocation="765" yLocation="272">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="2" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="500183731" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="HK-Means" height="1398" keepsResults="true" width="1193" xLocation="1103" yLocation="305">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.plugins.adufour.hierarchicalkmeans.HKMeans)&#10;&#10;if (input1 == 1){&#10;&#9;rois = HKMeans.hKMeans(input0, input2, input3, input4, 0)&#10;&#9;output0 = []&#10;&#9;for (j=0; j&lt;rois.size(); j++){&#10;&#9;&#9;output0[j] = rois.get(j)&#10;&#9;}&#10;} else {&#10;&#9;gui.addSequence(input0)&#10;&#9;do{&#10;&#9;&#9;&#10;&#9;} while (gui.isOpened(input0) == false)&#10;&#9;if (input5&lt;input6){&#10;&#9;&#9;MessageDialog.showDialog(&quot;Determine optimal ROIs with HK-Means plugin and close image&quot;)&#10;&#9;}&#10;&#9;do {&#10;&#9;&#10;        } while (gui.isOpened(input0))&#10;        x = input0.getROIs()&#10;        output0 = []&#10;        for (i=0; i&lt;x.size(); i++){&#10;        &#9;output0[i] = x.get(i)&#10;        }&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="6" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="482570518" name="input1" runtime="true" type="int" visible="true"/>
<variable ID="12262553" name="input2" runtime="true" type="int" visible="true"/>
<variable ID="1890493772" name="input3" runtime="true" type="int" visible="true"/>
<variable ID="139940564" name="input4" runtime="true" type="int" visible="true"/>
<variable ID="1081261522" name="input5" runtime="true" type="int" visible="true"/>
<variable ID="95348229" name="input6" runtime="true" type="int" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
</output>
</variables>
</block>
<block ID="431176311" blockType="plugins.adufour.activecontours.ActiveContours" className="plugins.adufour.activecontours.ActiveContours" collapsed="true" definedName="Active Contours" height="1274" keepsResults="true" width="761" xLocation="1274" yLocation="249">
<variables>
<input>
<variable ID="input sequence" name="Input" runtime="false" visible="true"/>
<variable ID="Input ROI" name="input ROI" runtime="false" visible="true"/>
<variable ID="regularization: weight" name="Contour smoothness" runtime="false" value="0.05" visible="false"/>
<variable ID="edge: weight" name="Edge weight" runtime="false" value="0.0" visible="false"/>
<variable ID="edge: channel" name="Find edges in channel" runtime="false" value="0" visible="false"/>
<variable ID="region: weight" name="Region weight" runtime="false" value="1.0" visible="false"/>
<variable ID="region: sensitivity" name="Region sensitivity" runtime="false" value="1.0" visible="false"/>
<variable ID="region: channel" name="Find regions in channel" runtime="false" value="0" visible="false"/>
<variable ID="balloon: weight" name="Contour inflation" runtime="false" value="0.0" visible="false"/>
<variable ID="contour resolution" name="Contour sampling" runtime="false" value="2.0" visible="true"/>
<variable ID="region bounds" name="Bound field to ROI of" runtime="false" value="No Sequence" visible="true"/>
<variable ID="time step" name="Evolution time step" runtime="false" value="1.0" visible="true"/>
<variable ID="convergence value" name="Convergence criterion" runtime="false" value="0.005" visible="true"/>
<variable ID="max. iterations" name="Max. iterations" runtime="false" value="100000" visible="true"/>
<variable ID="type of ROI output" name="Type of ROI" runtime="false" value="AREA" visible="true"/>
<variable ID="tracking" name="Track objects over time" runtime="false" value="false" visible="true"/>
<variable ID="division sensitivity" name="Division sensitivity" runtime="false" value="0.0" visible="true"/>
<variable ID="axis constraint" name="Axis constraint" runtime="false" value="0.0" visible="true"/>
<variable ID="Volume weight" name="Volume weight" runtime="false" value="0.01" visible="true"/>
<variable ID="watch entering objects" name="Watch entering objects" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="Regions of interest" name="Regions of interest" runtime="false" visible="true"/>
<variable ID="Tracks" name="Tracks" runtime="false" visible="true"/>
<variable ID="Labels" name="Labels" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="243812415" blockType="plugins.adufour.blocks.tools.input.Decimal" className="plugins.adufour.blocks.tools.input.Decimal" collapsed="false" definedName="Decimal" height="101" keepsResults="true" width="149" xLocation="0" yLocation="1128">
<variables>
<input>
<variable ID="decimal" name="decimal" runtime="false" value="1.0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1062641553" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Filter ROIs after Active Contours" height="1463" keepsResults="true" width="2027" xLocation="1286" yLocation="321">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.icy.type.DataIteratorUtil)&#10;importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.plugins.adufour.roi.LabelExtractor)&#10;&#10;seq = input0.getCopy()&#10;gui.addSequence(input0)&#10;do {&#10;&#9;&#10;} while (gui.isOpened(input0)==false)&#10;rois = LabelExtractor.extractLabels(input0, LabelExtractor.ExtractionType.ALL_LABELS_VS_BACKGROUND, input1)&#10;input0.addROIs(rois, true)&#10;if (input2&lt;input3){&#10;&#9;MessageDialog.showDialog(&quot;Remove unwanted ROIs and close image&quot;)&#10;}&#10;do{&#10;&#9;&#10;}while(gui.isOpened(input0))&#10;x = input0.getROIs()&#10;output0 = []&#10;for (i=0; i&lt;x.size(); i++){&#10;&#9;output0[i] = x.get(i)&#10;&#9;it = new SequenceDataIterator(input0, output0[i])&#10;&#9;DataIteratorUtil.set(it, input1)&#10;}&#10;input0.removeAllROI()&#10;&#10;rois2 = LabelExtractor.extractLabels(input0, LabelExtractor.ExtractionType.ALL_LABELS_VS_BACKGROUND, input1)&#10;output2 = []&#10;for (j=0; j&lt;rois2.size(); j++){&#10;&#9;output2[j] = rois2.get(j)&#10;}&#10;input0.removeAllROI()&#10;output1 = input0&#10;&#10;for (k=0; k&lt;output0.length; k++){&#10;&#9;it2 = new SequenceDataIterator(seq, output0[k])&#10;&#9;DataIteratorUtil.set(it2, 255.0)&#10;}&#10;for (l=0; l&lt;output2.length; l++){&#10;&#9;it3 = new SequenceDataIterator(seq, output2[l])&#10;&#9;DataIteratorUtil.set(it3, 255.0)&#10;}&#10;seq.removeAllROI()&#10;output3=seq" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="3" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="3" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="94716857" name="input1" runtime="true" type="double" visible="true"/>
<variable ID="1969612782" name="input2" runtime="true" type="int" visible="true"/>
<variable ID="589949466" name="input3" runtime="true" type="int" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1697781762" name="output1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1145832860" name="output2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1311516353" name="output3" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1774300148" blockType="plugins.tprovoost.sequenceblocks.convert.ConvertType" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Convert type" height="263" keepsResults="true" width="513" xLocation="1332" yLocation="381">
<variables>
<input>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
<variable ID="Type Wanted" name="Type Wanted" runtime="false" value="UBYTE" visible="true"/>
<variable ID="Rescale" name="Rescale" runtime="false" value="true" visible="true"/>
</input>
<output>
<variable ID="converted" name="converted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="263865631" blockType="plugins.tprovoost.sequenceblocks.op.FillInnerSequence" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Fill inner sequence" height="182" keepsResults="true" width="463" xLocation="1313" yLocation="452">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="rois" name="Roi(s)" runtime="false" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="255.0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="190729355" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Watershed on Binary input" height="1003" keepsResults="true" width="1184" xLocation="1325" yLocation="503">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.plugins.adufour.roi.LabelExtractor)&#10;importClass(Packages.ij.IJ)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;&#10;seq = input0&#10;seq.removeAllROI()&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;Make Binary&quot;, &quot;&quot;)&#10;IJ.run(imp, &quot;Watershed&quot;, &quot;&quot;)&#10;imp.show()&#10;&#10;imPlus2 = ImageJUtil.convertToImageJImage(seq, null)&#10;imp3 = imPlus2&#10;IJ.run(imp3, &quot;Make Binary&quot;, &quot;&quot;)&#10;imp3.show()&#10;IJ.run(imp3, &quot;Images to Stack&quot;, &quot;name=Stack title=[] use&quot;)&#10;imp4 = IJ.getImage()&#10;IJ.run(imp4, &quot;Z Project...&quot;, &quot;projection=[Sum Slices]&quot;)&#10;imp5 = IJ.getImage()&#10;IJ.run(imp4, &quot;Close&quot;, &quot;&quot;)&#10;IJ.run(imp5, &quot;8-bit&quot;, &quot;&quot;)&#10;imPlus3 = imp5&#10;result = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;&#10;rois = LabelExtractor.extractLabels(result, LabelExtractor.ExtractionType.SPECIFIC_LABEL, input1)&#10;result.addROIs(rois, true)&#10;gui.addSequence(result)&#10;do {&#10;&#9;&#10;}while (gui.isOpened(result)==false)&#10;if (input2&lt;input3){&#10;&#9;MessageDialog.showDialog(&quot;Remove unwanted ROIs and close image&quot;)&#10;}&#10;do {&#10;&#9;&#10;} while (gui.isOpened(result))&#10;rois2 = result.getROIs()&#10;output0 = []&#10;for (i=0; i&lt;rois2.size(); i++){&#10;&#9;output0[i]=rois2.get(i)&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="3" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1343704149" name="input1" runtime="true" type="double" visible="true"/>
<variable ID="2066698020" name="input2" runtime="true" type="int" visible="true"/>
<variable ID="403586487" name="input3" runtime="true" type="int" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
</output>
</variables>
</block>
<block ID="1855267390" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Filter ROIs after Binary Watershed" height="1429" keepsResults="true" width="1193" xLocation="1290" yLocation="568">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.plugins.adufour.roi.LabelExtractor)&#10;importClass(Packages.icy.type.DataIteratorUtil)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;&#10;input0.removeAllROI()&#10;for (i=0; i&lt;input1.length; i++){&#10;&#9;it = new SequenceDataIterator(input0, input1[i])&#10;&#9;DataIteratorUtil.set(it, input2)&#10;}&#10;input0.removeAllROI()&#10;rois = LabelExtractor.extractLabels(input0, LabelExtractor.ExtractionType.ALL_LABELS_VS_BACKGROUND, input2)&#10;input0.addROIs(rois, true)&#10;&#10;gui.addSequence(input0)&#10;do{&#10;&#9;&#10;} while (gui.isOpened(input0)==false)&#10;if (input3&lt;input4){&#10;&#9;MessageDialog.showDialog(&quot;Remove unwanted ROIs&quot;)&#10;}&#10;do{&#10;&#9;&#10;}while (gui.isOpened(input0))&#10;rois2 = input0.getROIs()&#10;output0 = []&#10;for (j=0; j&lt;rois2.size(); j++){&#10;&#9;output0[j] = rois2.get(j)&#10;&#9;it2 = new SequenceDataIterator(input0, output0[j])&#10;&#9;DataIteratorUtil.set(it2, input2)&#10;}&#10;input0.removeAllROI()&#10;output1 = input0&#10;if (rois.size() == rois2.size()){&#10;&#9;output2 = 1&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="4" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="179713927" name="input1" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="899979813" name="input2" runtime="true" type="double" visible="true"/>
<variable ID="231569602" name="input3" runtime="true" type="int" visible="true"/>
<variable ID="2035521875" name="input4" runtime="true" type="int" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1719823823" name="output1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1020409894" name="output2" runtime="true" type="java.lang.Integer" visible="true"/>
</output>
</variables>
</block>
<block ID="417534089" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Distance Map" height="1003" keepsResults="true" width="1193" xLocation="1303" yLocation="650">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.ij.IJ)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;&#10;seq1 = input1&#10;imPlus1 = ImageJUtil.convertToImageJImage(seq1, null)&#10;imp1 = imPlus1&#10;imp1.show()&#10;IJ.run(imp1, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.run(imp1, &quot;Make Binary&quot;, &quot;&quot;)&#10;IJ.run(imp1, &quot;Distance Map&quot;, &quot;&quot;)&#10;imp3 = IJ.getImage()&#10;imPlus3 = imp3&#10;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="1" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" value="" visible="true"/>
<variable ID="1594552975" name="input1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="114543266" name="output1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1991216882" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="1003" keepsResults="true" width="1193" xLocation="1344" yLocation="22">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="output0 = input0.getCopy()" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="0" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1750244225" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Internal Markers preparation" height="1158" keepsResults="true" width="1070" xLocation="1650" yLocation="553">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;//Define sequences&#10;seq1 = input0&#10;seq1.removeAllROI()&#10;//Distance transform&#10;seq2 = input1&#10;seq2.removeAllROI()&#10;&#10;//Convert into ImageJ images&#10;imPlus1 = ImageJUtil.convertToImageJImage(seq1, null)&#10;imPlus2 = ImageJUtil.convertToImageJImage(seq2, null)&#10;&#10;//Open each images&#10;imp = imPlus1&#10;IJ.run(imp, &quot;Fast Filters&quot;, &quot;link filter=[eliminate minima] x=5 y=5 preprocessing=none offset=128&quot;)&#10;imp.show()&#10;&#10;imp2 = imPlus2&#10;IJ.run(imp2, &quot;Invert&quot;, &quot;&quot;)&#10;IJ.run(imp2, &quot;Bandpass Filter...&quot;, &quot;filter_large=100 filter_small=3 suppress=None tolerance=5 autoscale saturate&quot;)&#10;imp2.show()&#10;&#10;//Run Images to Stack and don't keep previous pictures&#10;IJ.run(imp, &quot;Images to Stack&quot;, &quot;name=Stack1 title=[]&quot;)&#10;//Get Stack image and Sum the 2 slices inside the stack&#10;imp3 = IJ.getImage()&#10;IJ.run(imp3, &quot;Z Project...&quot;, &quot;projection=[Sum Slices]&quot;)&#10;imp4 = IJ.getImage()&#10;imPlus3 = imp4&#10;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;&#10;IJ.run(imp4, &quot;8-bit&quot;, &quot;&quot;)&#10;imPlus3 = imp4&#10;seq3 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;output0 = seq3&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="319873890" name="input1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1349900304" name="input2" runtime="true" type="[Licy.roi.ROI;" value="" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1366888376" name="output1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="2066629305" name="output2" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="983106175" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="true" definedName="Integer" height="101" keepsResults="true" width="142" xLocation="18" yLocation="439">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" value="0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="964694639" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Internal Markers extraction" height="1284" keepsResults="true" width="1526" xLocation="1654" yLocation="594">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;importClass(Packages.ij.WindowManager)&#10;&#10;//Marqueurs internes&#10;seq = input0&#10;seq.removeAllROI()&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp1 = imPlus&#10;&#10;if (input1==1 || input4==1){&#10;&#9;IJ.run(imp1, &quot;Extended Min &amp; Max&quot;, &quot;operation=[Extended Minima] dynamic=1 connectivity=4&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;IJ.run(imp1, &quot;Close&quot;, &quot;&quot;)&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else {&#10;&#9;imp1.show()&#10;&#9;if (input2&lt;input3){&#10;&#9;&#9;MessageDialog.showDialog(&quot;Determine/adjust internal markers&quot;)&#10;&#9;}&#10;&#9;do {&#10;&#9;&#10;&#9;} while (WindowManager.getCurrentWindow()!=null)&#10;&#9;IJ.wait(500)&#10;&#9;imPlus2 = IJ.getImage()&#10;&#9;output0=ImageJUtil.convertToIcySequence(imPlus2, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="4" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1574281399" name="input1" runtime="true" type="int" visible="true"/>
<variable ID="1718614120" name="input2" runtime="true" type="int" visible="true"/>
<variable ID="1346614573" name="input3" runtime="true" type="int" visible="true"/>
<variable ID="1840346746" name="input4" runtime="true" type="java.lang.Integer" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1609252055" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="External Markers extraction" height="1003" keepsResults="true" width="1193" xLocation="1651" yLocation="631">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;seq = input0&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;Invert&quot;, &quot;&quot;)&#10;imPlus1 = imp&#10;seq1 = ImageJUtil.convertToIcySequence(imPlus1, null)&#10;output0 = seq1&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="1" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="997848553" name="input1" runtime="true" type="int" value="" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="2033261355" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="false" definedName="Marker-based Watershed" height="1165" keepsResults="true" width="811" xLocation="1989" yLocation="295">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.plugins.adufour.roi.LabelExtractor)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;//Marqueurs internes&#10;seq = input0&#10;seq.removeAllROI()&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;var imp1 = imPlus&#10;imp1.show()&#10;&#10;//Marqueurs externes&#10;seq3 = input2&#10;seq3.removeAllROI()&#10;imPlus3 = ImageJUtil.convertToImageJImage(seq3, null)&#10;var imp11 = imPlus3&#10;imp11.show()&#10;&#10;//Assemblage des marqueurs ext et int&#10;IJ.run(imp11, &quot;Images to Stack&quot;, &quot;name=Stack title=[] use&quot;)&#10;var imp12 = IJ.getImage()&#10;IJ.run(imp12, &quot;Z Project...&quot;, &quot;projection=[Max Intensity]&quot;)&#10;var imp13 = IJ.getImage()&#10;IJ.run(imp13, &quot;8-bit&quot;, &quot;&quot;)&#10;imp13.setTitle(&quot;markers&quot;)&#10;imp13.show()&#10;&#10;//Gradient&#10;seq1 = input1&#10;seq1.removeAllROI()&#10;imPlus2 = ImageJUtil.convertToImageJImage(seq1, null)&#10;var imp14 = imPlus2&#10;IJ.run(imp14, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.run(imp14, &quot;Invert&quot;, &quot;&quot;)&#10;imp14.setTitle(&quot;object&quot;)&#10;imp14.show()&#10;&#10;//Masque&#10;seq4 = input4&#10;seq4.removeAllROI()&#10;imPlus5 = ImageJUtil.convertToImageJImage(seq4, null)&#10;var imp15 = imPlus5&#10;IJ.run(imp15, &quot;Morphological Filters&quot;, &quot;operation=Closing element=Square radius=5&quot;)&#10;imp17 = IJ.getImage()&#10;IJ.run(imp15, &quot;Close&quot;, &quot;&quot;)&#10;imp17.setTitle(&quot;mask&quot;)&#10;imp17.show()&#10;&#10;IJ.run(imp14, &quot;Marker-controlled Watershed&quot;, &quot;input=object  marker=markers  mask=mask  binary calculate&quot;)&#10;var imp16 = IJ.getImage()&#10;IJ.run(imp16, &quot;8-bit&quot;, &quot;&quot;)&#10;&#10;imPlus6 = imp16&#10;seq5 = ImageJUtil.convertToIcySequence(imPlus6, null)&#10;seq5.removeAllROI()&#10;rois = LabelExtractor.extractLabels(seq5, LabelExtractor.ExtractionType.ALL_LABELS_VS_BACKGROUND, input6)&#10;output0 = []&#10;for (i=0; i&lt;rois.size(); i++){&#10;&#9;output0[i] = rois.get(i)&#10;}&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="6" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1544127687" name="input1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1039698716" name="input2" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="2009997811" name="input3" runtime="true" type="java.lang.Object" value="" visible="true"/>
<variable ID="1713828342" name="input4" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1381174031" name="input5" runtime="true" type="java.io.File" value="" visible="true"/>
<variable ID="1616366690" name="input6" runtime="true" type="double" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1806445011" name="output1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="83447746" name="output2" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="743357794" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Text" height="101" keepsResults="true" width="327" xLocation="0" yLocation="489">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="475635917" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="83" keepsResults="true" width="511" xLocation="429" yLocation="0">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1952970220" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Data Saving" height="1623" keepsResults="true" width="1778" xLocation="535" yLocation="617">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.icy.roi.ROI2DRectangle)&#10;importClass(Packages.icy.type.DataIteratorUtil)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.ij.IJ)&#10;&#10;//Create empty sequence with the same size as input&#10;width = input0.getWidth()&#10;height = input0.getHeight()&#10;seq = input0.getCopy()&#10;roi = new ROI2DRectangle(0, 0, width, height)&#10;it = new SequenceDataIterator(seq, roi)&#10;DataIteratorUtil.set(it, 0.0)&#10;&#10;name = input4.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;&#10;if(n==-1){&#10;&#9;name2=name&#10;}else{&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;Title = name2.substring(0, n) + &quot;_&quot; + input6.substring(0)&#10;&#10;seq.setName(Title)&#10;seq.removeAllROI()&#10;&#10;for (i=0; i&lt;input1.length; i++){&#10;&#9;it = new SequenceDataIterator(seq, input1[i])&#10;&#9;DataIteratorUtil.set(it, input2+i)&#10;}&#10;&#10;for (j=0; j&lt;input3.length; j++){&#10;&#9;it2 = new SequenceDataIterator(seq, input3[j])&#10;&#9;DataIteratorUtil.set(it2, input2+j)&#10;}&#10;for (k=0; k&lt;input5.length; k++){&#10;&#9;it3 = new SequenceDataIterator(seq, input5[k])&#10;&#9;DataIteratorUtil.set(it3, input2+k)&#10;}&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;FileUtil.createDir(input8 + &quot;\\&quot; + input6)&#10;path = input8.getAbsolutePath()&#10;dir = path + &quot;\\&quot; + input6 + &quot;\\&quot; + Title&#10;IJ.saveAs(imp, input7, dir)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="8" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="967360669" name="input1" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="238089726" name="input2" runtime="true" type="double" visible="true"/>
<variable ID="1001701823" name="input3" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="877782270" name="input4" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="967062051" name="input5" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="20777510" name="input6" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="237994615" name="input7" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="550896155" name="input8" runtime="true" type="java.io.File" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1193886144" name="output1" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block ID="1505261431" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Extracted Channel" height="246" keepsResults="true" width="288" xLocation="0" yLocation="818">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="2090785485" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Adaptive histo equa" height="248" keepsResults="true" width="260" xLocation="545" yLocation="823">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="751728693" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Subtracted Background" height="249" keepsResults="true" width="249" xLocation="294" yLocation="820">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1725838123" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Marker-based Watershed input" height="250" keepsResults="true" width="285" xLocation="1086" yLocation="825">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="2014524623" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Internal markers" height="274" keepsResults="true" width="306" xLocation="1632" yLocation="0">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="494849701" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="External markers" height="274" keepsResults="true" width="287" xLocation="1967" yLocation="0">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="474507367" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Mask" height="278" keepsResults="true" width="277" xLocation="2267" yLocation="0">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1993328042" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Active Cont." height="245" keepsResults="true" width="268" xLocation="810" yLocation="828">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="941062590" dstVarID="sequence" srcBlockID="388466965" srcVarID="Sequence"/>
<link dstBlockID="1952970220" dstVarID="877782270" srcBlockID="388466965" srcVarID="Sequence"/>
<link dstBlockID="475635917" dstVarID="Sequence" srcBlockID="388466965" srcVarID="Sequence"/>
<link dstBlockID="500183731" dstVarID="1081261522" srcBlockID="388466965" srcVarID="iteration"/>
<link dstBlockID="1062641553" dstVarID="1969612782" srcBlockID="388466965" srcVarID="iteration"/>
<link dstBlockID="190729355" dstVarID="2066698020" srcBlockID="388466965" srcVarID="iteration"/>
<link dstBlockID="964694639" dstVarID="1718614120" srcBlockID="388466965" srcVarID="iteration"/>
<link dstBlockID="1855267390" dstVarID="231569602" srcBlockID="388466965" srcVarID="iteration"/>
<link dstBlockID="1952970220" dstVarID="237994615" srcBlockID="262720723" srcVarID="text"/>
<link dstBlockID="190729355" dstVarID="1343704149" srcBlockID="625514161" srcVarID="decimal"/>
<link dstBlockID="1062641553" dstVarID="94716857" srcBlockID="1095946766" srcVarID="decimal"/>
<link dstBlockID="1855267390" dstVarID="899979813" srcBlockID="1095946766" srcVarID="decimal"/>
<link dstBlockID="2033261355" dstVarID="1616366690" srcBlockID="1095946766" srcVarID="decimal"/>
<link dstBlockID="500183731" dstVarID="482570518" srcBlockID="2070016971" srcVarID="integer"/>
<link dstBlockID="600377611" dstVarID="588252512" srcBlockID="1244016032" srcVarID="text"/>
<link dstBlockID="1505261431" dstVarID="object" srcBlockID="941062590" srcVarID="extracted"/>
<link dstBlockID="600377611" dstVarID="input0" srcBlockID="941062590" srcVarID="extracted"/>
<link dstBlockID="1952970220" dstVarID="input0" srcBlockID="941062590" srcVarID="extracted"/>
<link dstBlockID="1991216882" dstVarID="input0" srcBlockID="941062590" srcVarID="extracted"/>
<link dstBlockID="600377611" dstVarID="850932624" srcBlockID="1324090319" srcVarID="integer"/>
<link dstBlockID="866126931" dstVarID="Input" srcBlockID="600377611" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="751728693" dstVarID="object" srcBlockID="600377611" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="431176311" dstVarID="input sequence" srcBlockID="866126931" srcVarID="Output"/>
<link dstBlockID="1588685860" dstVarID="input" srcBlockID="866126931" srcVarID="Output"/>
<link dstBlockID="500183731" dstVarID="input0" srcBlockID="1588685860" srcVarID="output"/>
<link dstBlockID="2090785485" dstVarID="object" srcBlockID="1588685860" srcVarID="output"/>
<link dstBlockID="500183731" dstVarID="12262553" srcBlockID="1273097100" srcVarID="integer"/>
<link dstBlockID="500183731" dstVarID="1890493772" srcBlockID="1390649572" srcVarID="integer"/>
<link dstBlockID="500183731" dstVarID="139940564" srcBlockID="605431502" srcVarID="integer"/>
<link dstBlockID="500183731" dstVarID="95348229" srcBlockID="1699199775" srcVarID="integer"/>
<link dstBlockID="1062641553" dstVarID="589949466" srcBlockID="1699199775" srcVarID="integer"/>
<link dstBlockID="190729355" dstVarID="403586487" srcBlockID="1699199775" srcVarID="integer"/>
<link dstBlockID="964694639" dstVarID="1346614573" srcBlockID="1699199775" srcVarID="integer"/>
<link dstBlockID="1855267390" dstVarID="2035521875" srcBlockID="1699199775" srcVarID="integer"/>
<link dstBlockID="431176311" dstVarID="Input ROI" srcBlockID="500183731" srcVarID="output0" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="1062641553" dstVarID="input0" srcBlockID="431176311" srcVarID="Labels"/>
<link dstBlockID="1993328042" dstVarID="object" srcBlockID="431176311" srcVarID="input sequence"/>
<link dstBlockID="1952970220" dstVarID="238089726" srcBlockID="243812415" srcVarID="decimal"/>
<link dstBlockID="1774300148" dstVarID="sequence" srcBlockID="1062641553" srcVarID="1697781762" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="263865631" dstVarID="rois" srcBlockID="1062641553" srcVarID="1145832860" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="1952970220" dstVarID="967360669" srcBlockID="1062641553" srcVarID="output0" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="417534089" dstVarID="1594552975" srcBlockID="1062641553" srcVarID="1311516353" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="263865631" dstVarID="sequence" srcBlockID="1774300148" srcVarID="converted"/>
<link dstBlockID="190729355" dstVarID="input0" srcBlockID="263865631" srcVarID="sequence"/>
<link dstBlockID="1855267390" dstVarID="input0" srcBlockID="263865631" srcVarID="sequence"/>
<link dstBlockID="1855267390" dstVarID="179713927" srcBlockID="190729355" srcVarID="output0" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="1609252055" dstVarID="input0" srcBlockID="1855267390" srcVarID="1719823823" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="2033261355" dstVarID="1713828342" srcBlockID="1855267390" srcVarID="1719823823" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1952970220" dstVarID="1001701823" srcBlockID="1855267390" srcVarID="output0" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="964694639" dstVarID="1840346746" srcBlockID="1855267390" srcVarID="1020409894" srcVarType="java.lang.Integer"/>
<link dstBlockID="1750244225" dstVarID="319873890" srcBlockID="417534089" srcVarID="114543266" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="2033261355" dstVarID="1544127687" srcBlockID="417534089" srcVarID="114543266" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1750244225" dstVarID="input0" srcBlockID="1991216882" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="964694639" dstVarID="input0" srcBlockID="1750244225" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="964694639" dstVarID="1574281399" srcBlockID="983106175" srcVarID="integer"/>
<link dstBlockID="2033261355" dstVarID="input0" srcBlockID="964694639" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="2033261355" dstVarID="1039698716" srcBlockID="1609252055" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1952970220" dstVarID="967062051" srcBlockID="2033261355" srcVarID="output0" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="1725838123" dstVarID="object" srcBlockID="2033261355" srcVarID="1544127687" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="2014524623" dstVarID="object" srcBlockID="2033261355" srcVarID="input0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="494849701" dstVarID="object" srcBlockID="2033261355" srcVarID="1039698716" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="474507367" dstVarID="object" srcBlockID="2033261355" srcVarID="1713828342" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1952970220" dstVarID="20777510" srcBlockID="743357794" srcVarID="text"/>
<link dstBlockID="1952970220" dstVarID="550896155" srcBlockID="475635917" srcVarID="Folder"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="388466965" value="C:\Users\gerau\Desktop\Analyse Images\Dapi" visible="true"/>
<variable ID="extension" blockID="388466965" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="388466965" value="false" visible="true"/>
<variable ID="262720723:text" blockID="262720723" value="Tiff" visible="false"/>
<variable ID="625514161:decimal" blockID="625514161" value="128.0" visible="false"/>
<variable ID="1095946766:decimal" blockID="1095946766" value="0.0" visible="false"/>
<variable ID="2070016971:integer" blockID="2070016971" value="0" visible="true"/>
<variable ID="1244016032:text" blockID="1244016032" value="No" visible="false"/>
<variable ID="941062590:sequence" blockID="941062590" value="No Sequence" visible="false"/>
<variable ID="941062590:channel" blockID="941062590" value="2" visible="false"/>
<variable ID="1324090319:integer" blockID="1324090319" value="500" visible="false"/>
<variable ID="600377611:Script" blockID="600377611" value="importClass(Packages.ij.IJ)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;8-bit&quot;, &quot;&quot;)&#10;if (input1 == &quot;Yes&quot;){&#10;&#9;IJ.run(imp, &quot;Subtract Background...&quot;, &quot;rolling=&quot; + input2)&#10;}&#10;imPlus2 = imp&#10;seq2 = ImageJUtil.convertToIcySequence(imPlus2, null)&#10;seq2.removeAllROI()&#10;output0 = seq2&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="false"/>
<variable ID="600377611:Add Input" blockID="600377611" value="2" visible="false"/>
<variable ID="600377611:Add output" blockID="600377611" value="2" visible="false"/>
<variable ID="600377611:input0" blockID="600377611" value="" visible="false"/>
<variable ID="600377611:588252512" blockID="600377611" value="" visible="false"/>
<variable ID="600377611:850932624" blockID="600377611" value="" visible="false"/>
<variable ID="866126931:Input" blockID="866126931" value="No Sequence" visible="false"/>
<variable ID="866126931:Type" blockID="866126931" value="Multi 2D" visible="false"/>
<variable ID="866126931:No.bins" blockID="866126931" value="255" visible="false"/>
<variable ID="866126931:Half size XY" blockID="866126931" value="15" visible="false"/>
<variable ID="866126931:Half size Z" blockID="866126931" value="1" visible="false"/>
<variable ID="866126931:Maximum slope" blockID="866126931" value="1.0" visible="false"/>
<variable ID="1588685860:input" blockID="1588685860" value="No Sequence" visible="false"/>
<variable ID="1588685860:filterX" blockID="1588685860" value="0.0" visible="false"/>
<variable ID="1588685860:filterY" blockID="1588685860" value="0.0" visible="false"/>
<variable ID="1588685860:filterZ" blockID="1588685860" value="0.0" visible="false"/>
<variable ID="1273097100:integer" blockID="1273097100" value="2" visible="false"/>
<variable ID="1390649572:integer" blockID="1390649572" value="5000" visible="false"/>
<variable ID="605431502:integer" blockID="605431502" value="35000" visible="false"/>
<variable ID="1699199775:integer" blockID="1699199775" value="2" visible="false"/>
<variable ID="500183731:Script" blockID="500183731" value="importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.plugins.adufour.hierarchicalkmeans.HKMeans)&#10;&#10;if (input1 == 1){&#10;&#9;rois = HKMeans.hKMeans(input0, input2, input3, input4, 0)&#10;&#9;output0 = []&#10;&#9;for (j=0; j&lt;rois.size(); j++){&#10;&#9;&#9;output0[j] = rois.get(j)&#10;&#9;}&#10;} else {&#10;&#9;gui.addSequence(input0)&#10;&#9;do{&#10;&#9;&#9;&#10;&#9;} while (gui.isOpened(input0) == false)&#10;&#9;if (input5&lt;input6){&#10;&#9;&#9;MessageDialog.showDialog(&quot;Determine optimal ROIs with HK-Means plugin and close image&quot;)&#10;&#9;}&#10;&#9;do {&#10;&#9;&#10;        } while (gui.isOpened(input0))&#10;        x = input0.getROIs()&#10;        output0 = []&#10;        for (i=0; i&lt;x.size(); i++){&#10;        &#9;output0[i] = x.get(i)&#10;        }&#10;}" visible="false"/>
<variable ID="500183731:Add Input" blockID="500183731" value="6" visible="false"/>
<variable ID="500183731:Add output" blockID="500183731" value="0" visible="false"/>
<variable ID="500183731:input0" blockID="500183731" value="" visible="false"/>
<variable ID="500183731:482570518" blockID="500183731" value="" visible="false"/>
<variable ID="500183731:12262553" blockID="500183731" value="" visible="false"/>
<variable ID="500183731:1890493772" blockID="500183731" value="" visible="false"/>
<variable ID="500183731:139940564" blockID="500183731" value="" visible="false"/>
<variable ID="500183731:1081261522" blockID="500183731" value="" visible="false"/>
<variable ID="500183731:95348229" blockID="500183731" value="" visible="false"/>
<variable ID="431176311:input sequence" blockID="431176311" value="No Sequence" visible="false"/>
<variable ID="431176311:Input ROI" blockID="431176311" value="No ROI" visible="false"/>
<variable ID="431176311:regularization: weight" blockID="431176311" value="0.05" visible="false"/>
<variable ID="431176311:edge: weight" blockID="431176311" value="0.0" visible="false"/>
<variable ID="431176311:edge: channel" blockID="431176311" value="0" visible="false"/>
<variable ID="431176311:region: weight" blockID="431176311" value="1.0" visible="false"/>
<variable ID="431176311:region: sensitivity" blockID="431176311" value="1.0" visible="false"/>
<variable ID="431176311:region: channel" blockID="431176311" value="0" visible="false"/>
<variable ID="431176311:balloon: weight" blockID="431176311" value="0.0" visible="false"/>
<variable ID="431176311:contour resolution" blockID="431176311" value="2.0" visible="false"/>
<variable ID="431176311:region bounds" blockID="431176311" value="No Sequence" visible="false"/>
<variable ID="431176311:time step" blockID="431176311" value="1.0" visible="false"/>
<variable ID="431176311:convergence value" blockID="431176311" value="0.005" visible="false"/>
<variable ID="431176311:max. iterations" blockID="431176311" value="100000" visible="false"/>
<variable ID="431176311:type of ROI output" blockID="431176311" value="AREA" visible="false"/>
<variable ID="431176311:tracking" blockID="431176311" value="false" visible="false"/>
<variable ID="431176311:division sensitivity" blockID="431176311" value="0.0" visible="false"/>
<variable ID="431176311:axis constraint" blockID="431176311" value="0.0" visible="false"/>
<variable ID="431176311:Volume weight" blockID="431176311" value="0.01" visible="false"/>
<variable ID="431176311:watch entering objects" blockID="431176311" value="false" visible="false"/>
<variable ID="243812415:decimal" blockID="243812415" value="1.0" visible="false"/>
<variable ID="1062641553:Script" blockID="1062641553" value="importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.icy.type.DataIteratorUtil)&#10;importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.plugins.adufour.roi.LabelExtractor)&#10;&#10;seq = input0.getCopy()&#10;gui.addSequence(input0)&#10;do {&#10;&#9;&#10;} while (gui.isOpened(input0)==false)&#10;rois = LabelExtractor.extractLabels(input0, LabelExtractor.ExtractionType.ALL_LABELS_VS_BACKGROUND, input1)&#10;input0.addROIs(rois, true)&#10;if (input2&lt;input3){&#10;&#9;MessageDialog.showDialog(&quot;Remove unwanted ROIs and close image&quot;)&#10;}&#10;do{&#10;&#9;&#10;}while(gui.isOpened(input0))&#10;x = input0.getROIs()&#10;output0 = []&#10;for (i=0; i&lt;x.size(); i++){&#10;&#9;output0[i] = x.get(i)&#10;&#9;it = new SequenceDataIterator(input0, output0[i])&#10;&#9;DataIteratorUtil.set(it, input1)&#10;}&#10;input0.removeAllROI()&#10;&#10;rois2 = LabelExtractor.extractLabels(input0, LabelExtractor.ExtractionType.ALL_LABELS_VS_BACKGROUND, input1)&#10;output2 = []&#10;for (j=0; j&lt;rois2.size(); j++){&#10;&#9;output2[j] = rois2.get(j)&#10;}&#10;input0.removeAllROI()&#10;output1 = input0&#10;&#10;for (k=0; k&lt;output0.length; k++){&#10;&#9;it2 = new SequenceDataIterator(seq, output0[k])&#10;&#9;DataIteratorUtil.set(it2, 255.0)&#10;}&#10;for (l=0; l&lt;output2.length; l++){&#10;&#9;it3 = new SequenceDataIterator(seq, output2[l])&#10;&#9;DataIteratorUtil.set(it3, 255.0)&#10;}&#10;seq.removeAllROI()&#10;output3=seq" visible="false"/>
<variable ID="1062641553:Add Input" blockID="1062641553" value="3" visible="false"/>
<variable ID="1062641553:Add output" blockID="1062641553" value="3" visible="false"/>
<variable ID="1062641553:input0" blockID="1062641553" value="" visible="false"/>
<variable ID="1062641553:94716857" blockID="1062641553" value="" visible="false"/>
<variable ID="1062641553:1969612782" blockID="1062641553" value="" visible="false"/>
<variable ID="1062641553:589949466" blockID="1062641553" value="" visible="false"/>
<variable ID="1774300148:sequence" blockID="1774300148" value="No Sequence" visible="false"/>
<variable ID="1774300148:Type Wanted" blockID="1774300148" value="UBYTE" visible="false"/>
<variable ID="1774300148:Rescale" blockID="1774300148" value="true" visible="false"/>
<variable ID="263865631:sequence" blockID="263865631" value="No Sequence" visible="false"/>
<variable ID="263865631:rois" blockID="263865631" value="No ROI" visible="false"/>
<variable ID="263865631:value" blockID="263865631" value="255.0" visible="false"/>
<variable ID="190729355:Script" blockID="190729355" value="importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.plugins.adufour.roi.LabelExtractor)&#10;importClass(Packages.ij.IJ)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;&#10;seq = input0&#10;seq.removeAllROI()&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;Make Binary&quot;, &quot;&quot;)&#10;IJ.run(imp, &quot;Watershed&quot;, &quot;&quot;)&#10;imp.show()&#10;&#10;imPlus2 = ImageJUtil.convertToImageJImage(seq, null)&#10;imp3 = imPlus2&#10;IJ.run(imp3, &quot;Make Binary&quot;, &quot;&quot;)&#10;imp3.show()&#10;IJ.run(imp3, &quot;Images to Stack&quot;, &quot;name=Stack title=[] use&quot;)&#10;imp4 = IJ.getImage()&#10;IJ.run(imp4, &quot;Z Project...&quot;, &quot;projection=[Sum Slices]&quot;)&#10;imp5 = IJ.getImage()&#10;IJ.run(imp4, &quot;Close&quot;, &quot;&quot;)&#10;IJ.run(imp5, &quot;8-bit&quot;, &quot;&quot;)&#10;imPlus3 = imp5&#10;result = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;&#10;rois = LabelExtractor.extractLabels(result, LabelExtractor.ExtractionType.SPECIFIC_LABEL, input1)&#10;result.addROIs(rois, true)&#10;gui.addSequence(result)&#10;do {&#10;&#9;&#10;}while (gui.isOpened(result)==false)&#10;if (input2&lt;input3){&#10;&#9;MessageDialog.showDialog(&quot;Remove unwanted ROIs and close image&quot;)&#10;}&#10;do {&#10;&#9;&#10;} while (gui.isOpened(result))&#10;rois2 = result.getROIs()&#10;output0 = []&#10;for (i=0; i&lt;rois2.size(); i++){&#10;&#9;output0[i]=rois2.get(i)&#10;}" visible="false"/>
<variable ID="190729355:Add Input" blockID="190729355" value="3" visible="false"/>
<variable ID="190729355:Add output" blockID="190729355" value="0" visible="false"/>
<variable ID="190729355:input0" blockID="190729355" value="" visible="false"/>
<variable ID="190729355:1343704149" blockID="190729355" value="" visible="false"/>
<variable ID="190729355:2066698020" blockID="190729355" value="" visible="false"/>
<variable ID="190729355:403586487" blockID="190729355" value="" visible="false"/>
<variable ID="1855267390:Script" blockID="1855267390" value="importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.plugins.adufour.roi.LabelExtractor)&#10;importClass(Packages.icy.type.DataIteratorUtil)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;&#10;input0.removeAllROI()&#10;for (i=0; i&lt;input1.length; i++){&#10;&#9;it = new SequenceDataIterator(input0, input1[i])&#10;&#9;DataIteratorUtil.set(it, input2)&#10;}&#10;input0.removeAllROI()&#10;rois = LabelExtractor.extractLabels(input0, LabelExtractor.ExtractionType.ALL_LABELS_VS_BACKGROUND, input2)&#10;input0.addROIs(rois, true)&#10;&#10;gui.addSequence(input0)&#10;do{&#10;&#9;&#10;} while (gui.isOpened(input0)==false)&#10;if (input3&lt;input4){&#10;&#9;MessageDialog.showDialog(&quot;Remove unwanted ROIs&quot;)&#10;}&#10;do{&#10;&#9;&#10;}while (gui.isOpened(input0))&#10;rois2 = input0.getROIs()&#10;output0 = []&#10;for (j=0; j&lt;rois2.size(); j++){&#10;&#9;output0[j] = rois2.get(j)&#10;&#9;it2 = new SequenceDataIterator(input0, output0[j])&#10;&#9;DataIteratorUtil.set(it2, input2)&#10;}&#10;input0.removeAllROI()&#10;output1 = input0&#10;if (rois.size() == rois2.size()){&#10;&#9;output2 = 1&#10;}" visible="false"/>
<variable ID="1855267390:Add Input" blockID="1855267390" value="4" visible="false"/>
<variable ID="1855267390:Add output" blockID="1855267390" value="2" visible="false"/>
<variable ID="1855267390:input0" blockID="1855267390" value="" visible="false"/>
<variable ID="1855267390:179713927" blockID="1855267390" value="" visible="false"/>
<variable ID="1855267390:899979813" blockID="1855267390" value="" visible="false"/>
<variable ID="1855267390:231569602" blockID="1855267390" value="" visible="false"/>
<variable ID="1855267390:2035521875" blockID="1855267390" value="" visible="false"/>
<variable ID="417534089:Script" blockID="417534089" value="importClass(Packages.ij.IJ)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;&#10;seq1 = input1&#10;imPlus1 = ImageJUtil.convertToImageJImage(seq1, null)&#10;imp1 = imPlus1&#10;imp1.show()&#10;IJ.run(imp1, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.run(imp1, &quot;Make Binary&quot;, &quot;&quot;)&#10;IJ.run(imp1, &quot;Distance Map&quot;, &quot;&quot;)&#10;imp3 = IJ.getImage()&#10;imPlus3 = imp3&#10;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="false"/>
<variable ID="417534089:Add Input" blockID="417534089" value="1" visible="false"/>
<variable ID="417534089:Add output" blockID="417534089" value="1" visible="false"/>
<variable ID="417534089:input0" blockID="417534089" value="" visible="false"/>
<variable ID="417534089:1594552975" blockID="417534089" value="" visible="false"/>
<variable ID="1991216882:Script" blockID="1991216882" value="output0 = input0.getCopy()" visible="false"/>
<variable ID="1991216882:Add Input" blockID="1991216882" value="0" visible="false"/>
<variable ID="1991216882:Add output" blockID="1991216882" value="0" visible="false"/>
<variable ID="1991216882:input0" blockID="1991216882" value="" visible="false"/>
<variable ID="1750244225:Script" blockID="1750244225" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;//Define sequences&#10;seq1 = input0&#10;seq1.removeAllROI()&#10;//Distance transform&#10;seq2 = input1&#10;seq2.removeAllROI()&#10;&#10;//Convert into ImageJ images&#10;imPlus1 = ImageJUtil.convertToImageJImage(seq1, null)&#10;imPlus2 = ImageJUtil.convertToImageJImage(seq2, null)&#10;&#10;//Open each images&#10;imp = imPlus1&#10;IJ.run(imp, &quot;Fast Filters&quot;, &quot;link filter=[eliminate minima] x=5 y=5 preprocessing=none offset=128&quot;)&#10;imp.show()&#10;&#10;imp2 = imPlus2&#10;IJ.run(imp2, &quot;Invert&quot;, &quot;&quot;)&#10;IJ.run(imp2, &quot;Bandpass Filter...&quot;, &quot;filter_large=100 filter_small=3 suppress=None tolerance=5 autoscale saturate&quot;)&#10;imp2.show()&#10;&#10;//Run Images to Stack and don't keep previous pictures&#10;IJ.run(imp, &quot;Images to Stack&quot;, &quot;name=Stack1 title=[]&quot;)&#10;//Get Stack image and Sum the 2 slices inside the stack&#10;imp3 = IJ.getImage()&#10;IJ.run(imp3, &quot;Z Project...&quot;, &quot;projection=[Sum Slices]&quot;)&#10;imp4 = IJ.getImage()&#10;imPlus3 = imp4&#10;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;&#10;IJ.run(imp4, &quot;8-bit&quot;, &quot;&quot;)&#10;imPlus3 = imp4&#10;seq3 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;output0 = seq3&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="false"/>
<variable ID="1750244225:Add Input" blockID="1750244225" value="2" visible="false"/>
<variable ID="1750244225:Add output" blockID="1750244225" value="2" visible="false"/>
<variable ID="1750244225:input0" blockID="1750244225" value="" visible="false"/>
<variable ID="1750244225:319873890" blockID="1750244225" value="" visible="false"/>
<variable ID="1750244225:1349900304" blockID="1750244225" value="" visible="false"/>
<variable ID="983106175:integer" blockID="983106175" value="0" visible="true"/>
<variable ID="964694639:Script" blockID="964694639" value="importClass(Packages.icy.gui.dialog.MessageDialog)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;importClass(Packages.ij.WindowManager)&#10;&#10;//Marqueurs internes&#10;seq = input0&#10;seq.removeAllROI()&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp1 = imPlus&#10;&#10;if (input1==1 || input4==1){&#10;&#9;IJ.run(imp1, &quot;Extended Min &amp; Max&quot;, &quot;operation=[Extended Minima] dynamic=1 connectivity=4&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;IJ.run(imp1, &quot;Close&quot;, &quot;&quot;)&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else {&#10;&#9;imp1.show()&#10;&#9;if (input2&lt;input3){&#10;&#9;&#9;MessageDialog.showDialog(&quot;Determine/adjust internal markers&quot;)&#10;&#9;}&#10;&#9;do {&#10;&#9;&#10;&#9;} while (WindowManager.getCurrentWindow()!=null)&#10;&#9;IJ.wait(500)&#10;&#9;imPlus2 = IJ.getImage()&#10;&#9;output0=ImageJUtil.convertToIcySequence(imPlus2, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;}" visible="false"/>
<variable ID="964694639:Add Input" blockID="964694639" value="4" visible="false"/>
<variable ID="964694639:Add output" blockID="964694639" value="0" visible="false"/>
<variable ID="964694639:input0" blockID="964694639" value="" visible="false"/>
<variable ID="964694639:1574281399" blockID="964694639" value="" visible="false"/>
<variable ID="964694639:1718614120" blockID="964694639" value="" visible="false"/>
<variable ID="964694639:1346614573" blockID="964694639" value="" visible="false"/>
<variable ID="964694639:1840346746" blockID="964694639" value="" visible="false"/>
<variable ID="1609252055:Script" blockID="1609252055" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;seq = input0&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;IJ.run(imp, &quot;Invert&quot;, &quot;&quot;)&#10;imPlus1 = imp&#10;seq1 = ImageJUtil.convertToIcySequence(imPlus1, null)&#10;output0 = seq1&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="false"/>
<variable ID="1609252055:Add Input" blockID="1609252055" value="1" visible="false"/>
<variable ID="1609252055:Add output" blockID="1609252055" value="0" visible="false"/>
<variable ID="1609252055:input0" blockID="1609252055" value="" visible="false"/>
<variable ID="1609252055:997848553" blockID="1609252055" value="" visible="false"/>
<variable ID="2033261355:Script" blockID="2033261355" value="importClass(Packages.plugins.adufour.roi.LabelExtractor)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;//Marqueurs internes&#10;seq = input0&#10;seq.removeAllROI()&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;var imp1 = imPlus&#10;imp1.show()&#10;&#10;//Marqueurs externes&#10;seq3 = input2&#10;seq3.removeAllROI()&#10;imPlus3 = ImageJUtil.convertToImageJImage(seq3, null)&#10;var imp11 = imPlus3&#10;imp11.show()&#10;&#10;//Assemblage des marqueurs ext et int&#10;IJ.run(imp11, &quot;Images to Stack&quot;, &quot;name=Stack title=[] use&quot;)&#10;var imp12 = IJ.getImage()&#10;IJ.run(imp12, &quot;Z Project...&quot;, &quot;projection=[Max Intensity]&quot;)&#10;var imp13 = IJ.getImage()&#10;IJ.run(imp13, &quot;8-bit&quot;, &quot;&quot;)&#10;imp13.setTitle(&quot;markers&quot;)&#10;imp13.show()&#10;&#10;//Gradient&#10;seq1 = input1&#10;seq1.removeAllROI()&#10;imPlus2 = ImageJUtil.convertToImageJImage(seq1, null)&#10;var imp14 = imPlus2&#10;IJ.run(imp14, &quot;8-bit&quot;, &quot;&quot;)&#10;IJ.run(imp14, &quot;Invert&quot;, &quot;&quot;)&#10;imp14.setTitle(&quot;object&quot;)&#10;imp14.show()&#10;&#10;//Masque&#10;seq4 = input4&#10;seq4.removeAllROI()&#10;imPlus5 = ImageJUtil.convertToImageJImage(seq4, null)&#10;var imp15 = imPlus5&#10;IJ.run(imp15, &quot;Morphological Filters&quot;, &quot;operation=Closing element=Square radius=5&quot;)&#10;imp17 = IJ.getImage()&#10;IJ.run(imp15, &quot;Close&quot;, &quot;&quot;)&#10;imp17.setTitle(&quot;mask&quot;)&#10;imp17.show()&#10;&#10;IJ.run(imp14, &quot;Marker-controlled Watershed&quot;, &quot;input=object  marker=markers  mask=mask  binary calculate&quot;)&#10;var imp16 = IJ.getImage()&#10;IJ.run(imp16, &quot;8-bit&quot;, &quot;&quot;)&#10;&#10;imPlus6 = imp16&#10;seq5 = ImageJUtil.convertToIcySequence(imPlus6, null)&#10;seq5.removeAllROI()&#10;rois = LabelExtractor.extractLabels(seq5, LabelExtractor.ExtractionType.ALL_LABELS_VS_BACKGROUND, input6)&#10;output0 = []&#10;for (i=0; i&lt;rois.size(); i++){&#10;&#9;output0[i] = rois.get(i)&#10;}&#10;IJ.run(&quot;Close All&quot;, &quot;&quot;)" visible="false"/>
<variable ID="2033261355:Add Input" blockID="2033261355" value="6" visible="false"/>
<variable ID="2033261355:Add output" blockID="2033261355" value="2" visible="false"/>
<variable ID="2033261355:input0" blockID="2033261355" value="" visible="false"/>
<variable ID="2033261355:1544127687" blockID="2033261355" value="" visible="false"/>
<variable ID="2033261355:1039698716" blockID="2033261355" value="" visible="false"/>
<variable ID="2033261355:2009997811" blockID="2033261355" value="" visible="false"/>
<variable ID="2033261355:1713828342" blockID="2033261355" value="" visible="false"/>
<variable ID="2033261355:1381174031" blockID="2033261355" value="" visible="false"/>
<variable ID="2033261355:1616366690" blockID="2033261355" value="" visible="false"/>
<variable ID="743357794:text" blockID="743357794" value="Segmented nuclei" visible="false"/>
<variable ID="475635917:Sequence" blockID="475635917" value="No Sequence" visible="false"/>
<variable ID="1952970220:Script" blockID="1952970220" value="importClass(Packages.icy.file.FileUtil)&#10;importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.icy.roi.ROI2DRectangle)&#10;importClass(Packages.icy.type.DataIteratorUtil)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.ij.IJ)&#10;&#10;//Create empty sequence with the same size as input&#10;width = input0.getWidth()&#10;height = input0.getHeight()&#10;seq = input0.getCopy()&#10;roi = new ROI2DRectangle(0, 0, width, height)&#10;it = new SequenceDataIterator(seq, roi)&#10;DataIteratorUtil.set(it, 0.0)&#10;&#10;name = input4.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;&#10;if(n==-1){&#10;&#9;name2=name&#10;}else{&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;Title = name2.substring(0, n) + &quot;_&quot; + input6.substring(0)&#10;&#10;seq.setName(Title)&#10;seq.removeAllROI()&#10;&#10;for (i=0; i&lt;input1.length; i++){&#10;&#9;it = new SequenceDataIterator(seq, input1[i])&#10;&#9;DataIteratorUtil.set(it, input2+i)&#10;}&#10;&#10;for (j=0; j&lt;input3.length; j++){&#10;&#9;it2 = new SequenceDataIterator(seq, input3[j])&#10;&#9;DataIteratorUtil.set(it2, input2+j)&#10;}&#10;for (k=0; k&lt;input5.length; k++){&#10;&#9;it3 = new SequenceDataIterator(seq, input5[k])&#10;&#9;DataIteratorUtil.set(it3, input2+k)&#10;}&#10;&#10;imPlus = ImageJUtil.convertToImageJImage(seq, null)&#10;imp = imPlus&#10;FileUtil.createDir(input8 + &quot;\\&quot; + input6)&#10;path = input8.getAbsolutePath()&#10;dir = path + &quot;\\&quot; + input6 + &quot;\\&quot; + Title&#10;IJ.saveAs(imp, input7, dir)" visible="false"/>
<variable ID="1952970220:Add Input" blockID="1952970220" value="8" visible="false"/>
<variable ID="1952970220:Add output" blockID="1952970220" value="1" visible="false"/>
<variable ID="1952970220:input0" blockID="1952970220" value="" visible="false"/>
<variable ID="1952970220:967360669" blockID="1952970220" value="" visible="false"/>
<variable ID="1952970220:238089726" blockID="1952970220" value="" visible="false"/>
<variable ID="1952970220:1001701823" blockID="1952970220" value="" visible="false"/>
<variable ID="1952970220:877782270" blockID="1952970220" value="" visible="false"/>
<variable ID="1952970220:967062051" blockID="1952970220" value="" visible="false"/>
<variable ID="1952970220:20777510" blockID="1952970220" value="" visible="false"/>
<variable ID="1952970220:237994615" blockID="1952970220" value="" visible="false"/>
<variable ID="1952970220:550896155" blockID="1952970220" value="" visible="false"/>
<variable ID="1505261431:object" blockID="1505261431" value="" visible="false"/>
<variable ID="2090785485:object" blockID="2090785485" value="" visible="false"/>
<variable ID="751728693:object" blockID="751728693" value="" visible="false"/>
<variable ID="1725838123:object" blockID="1725838123" value="" visible="false"/>
<variable ID="2014524623:object" blockID="2014524623" value="" visible="false"/>
<variable ID="494849701:object" blockID="494849701" value="" visible="false"/>
<variable ID="474507367:object" blockID="474507367" value="" visible="false"/>
<variable ID="1993328042:object" blockID="1993328042" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="388466965" visible="true"/>
<variable ID="Sequence" blockID="388466965" visible="true"/>
<variable ID="941062590:extracted" blockID="941062590" visible="false"/>
<variable ID="600377611:output0" blockID="600377611" visible="false"/>
<variable ID="600377611:441782" blockID="600377611" visible="false"/>
<variable ID="600377611:1131362856" blockID="600377611" visible="false"/>
<variable ID="866126931:Output" blockID="866126931" visible="false"/>
<variable ID="1588685860:output" blockID="1588685860" visible="false"/>
<variable ID="500183731:output0" blockID="500183731" visible="false"/>
<variable ID="431176311:Regions of interest" blockID="431176311" visible="false"/>
<variable ID="431176311:Tracks" blockID="431176311" visible="false"/>
<variable ID="431176311:Labels" blockID="431176311" visible="false"/>
<variable ID="1062641553:output0" blockID="1062641553" visible="false"/>
<variable ID="1062641553:1697781762" blockID="1062641553" visible="false"/>
<variable ID="1062641553:1145832860" blockID="1062641553" visible="false"/>
<variable ID="1062641553:1311516353" blockID="1062641553" visible="false"/>
<variable ID="1774300148:converted" blockID="1774300148" visible="false"/>
<variable ID="190729355:output0" blockID="190729355" visible="false"/>
<variable ID="1855267390:output0" blockID="1855267390" visible="false"/>
<variable ID="1855267390:1719823823" blockID="1855267390" visible="false"/>
<variable ID="1855267390:1020409894" blockID="1855267390" visible="false"/>
<variable ID="417534089:output0" blockID="417534089" visible="false"/>
<variable ID="417534089:114543266" blockID="417534089" visible="false"/>
<variable ID="1991216882:output0" blockID="1991216882" visible="false"/>
<variable ID="1750244225:output0" blockID="1750244225" visible="false"/>
<variable ID="1750244225:1366888376" blockID="1750244225" visible="false"/>
<variable ID="1750244225:2066629305" blockID="1750244225" visible="false"/>
<variable ID="964694639:output0" blockID="964694639" visible="false"/>
<variable ID="1609252055:output0" blockID="1609252055" visible="false"/>
<variable ID="2033261355:output0" blockID="2033261355" visible="false"/>
<variable ID="2033261355:1806445011" blockID="2033261355" visible="false"/>
<variable ID="2033261355:83447746" blockID="2033261355" visible="false"/>
<variable ID="475635917:Folder" blockID="475635917" visible="false"/>
<variable ID="1952970220:output0" blockID="1952970220" visible="false"/>
<variable ID="1952970220:1193886144" blockID="1952970220" visible="false"/>
</output>
</variables>
</workflow>
<workflow ID="1227986369" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Fluorescence Analysis A: 1 Channel" height="144" keepsResults="true" width="475" xLocation="914" yLocation="15">
<blocks>
<block CommandLineID="" ID="518218084" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder images ROI" height="101" keepsResults="true" width="307" xLocation="244" yLocation="15">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="\Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="945360777" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented objects" height="101" keepsResults="true" width="304" xLocation="244" yLocation="115">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="tif" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1465294030" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="false" definedName="Channel spots signal" height="150" keepsResults="true" width="309" xLocation="246" yLocation="219">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1311829208" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display spots signal" height="336" keepsResults="true" width="377" xLocation="0" yLocation="563">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1881981832" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="136" keepsResults="true" width="466" xLocation="657" yLocation="5">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="44424109" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Folder Fluorescent Signal" height="199" keepsResults="true" width="920" xLocation="891" yLocation="3">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1497471217" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="417" keepsResults="true" width="631" xLocation="1157" yLocation="4">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="name = input0.getName()&#10;n = name.lastIndexOf(&quot;.&quot;)&#10;&#10;if (n==-1){&#10;&#9;name2 = name&#10;}else{&#10;&#9;name2=name.substring(0, n)&#10;}&#10;output0 = &quot;\\&quot; + name2 + &quot;_&quot; + input2.substring(1) + &quot;.&quot; + input1&#10;output1 = name2" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="2141825572" name="input1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="63494442" name="input2" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
<variable ID="1094350567" name="output1" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block ID="1457603694" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="248" keepsResults="true" width="1062" xLocation="1352" yLocation="6">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1773773167" blockType="plugins.adufour.blocks.tools.io.FileToSequence" className="plugins.adufour.blocks.tools.io.FileToSequence" collapsed="true" definedName="File to sequence" height="188" keepsResults="true" width="323" xLocation="1603" yLocation="7">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
<variable ID="Series" name="Series" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1216914136" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Kill Borders?" height="101" keepsResults="true" width="173" xLocation="22" yLocation="406">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Yes" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1466287424" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript (KillBorders)" height="465" keepsResults="true" width="547" xLocation="207" yLocation="414">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input1==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="1" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="300613543" name="input1" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1370966191" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="458" yLocation="446">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="76280434" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter ROI by size" height="282" keepsResults="true" width="444" xLocation="659" yLocation="448">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E8" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="455185749" blockType="plugins.tprovoost.sequenceblocks.add.AddRois" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Add rois" height="158" keepsResults="true" width="565" xLocation="737" yLocation="211">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="rois(s)" name="Roi(s)" runtime="false" visible="true"/>
<variable ID="remove" name="Remove previous" runtime="false" value="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="188627358" blockType="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" className="plugins.fab.waveletspotdetectorblock.WaveletSpotDetectorBlock" collapsed="true" definedName="Wavelet Spot Detector Block" height="451" keepsResults="true" width="716" xLocation="931" yLocation="234">
<variables>
<input>
<variable ID="input Sequence" name="input Sequence" runtime="false" visible="true"/>
<variable ID="Spot to detect" name="Spot to detect" runtime="false" value="BRIGHT_SPOT" visible="true"/>
<variable ID="input Sequence ROIs" name="ROIs from sequence for WAT" runtime="false" visible="true"/>
<variable ID="Compute WAT considering ROI" name="Compute WAT considering ROI" runtime="false" value="false" visible="true"/>
<variable ID="ROIs for detection mask" name="ROIs for detection mask" runtime="false" value="" visible="true"/>
<variable ID="Scale 1" name="Scale 1" runtime="false" value="false" visible="true"/>
<variable ID="Scale 2" name="Scale 2" runtime="false" value="false" visible="true"/>
<variable ID="Scale 3" name="Scale 3" runtime="false" value="true" visible="true"/>
<variable ID="Scale 4" name="Scale 4" runtime="false" value="false" visible="true"/>
<variable ID="Scale 5" name="Scale 5" runtime="false" value="false" visible="true"/>
<variable ID="Th. scale 1:" name="Th. scale 1:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 2:" name="Th. scale 2:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 3:" name="Th. scale 3:" runtime="false" value="20" visible="false"/>
<variable ID="Th. scale 4:" name="Th. scale 4:" runtime="false" value="100" visible="false"/>
<variable ID="Th. scale 5:" name="Th. scale 5:" runtime="false" value="100" visible="false"/>
<variable ID="Force 2D Wavelets" name="Force 2D Wavelets" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="binary Spot Sequence" name="binary Spot Sequence" runtime="false" visible="true"/>
<variable ID="detection as ROIs" name="detection as ROIs" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="553595517" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display detected spots" height="336" keepsResults="true" width="357" xLocation="381" yLocation="564">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="182634250" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display ROI" height="338" keepsResults="true" width="379" xLocation="740" yLocation="566">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1853094405" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Name of localized molecule" height="101" keepsResults="true" width="273" xLocation="668" yLocation="70">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="X" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="864924071" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Get Excel File" height="385" keepsResults="true" width="1394" xLocation="972" yLocation="68">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\Results.xlsx" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1444857129" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Spots size threshold" height="101" keepsResults="true" width="225" xLocation="1212" yLocation="268">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="0" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="569595258" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1222" yLocation="372">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1583487239" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter spots by size" height="282" keepsResults="true" width="444" xLocation="1217" yLocation="417">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E9" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="318340907" blockType="plugins.stef.roi.bloc.op.FilterROI" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter spots" height="302" keepsResults="true" width="530" xLocation="1218" yLocation="468">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="descriptors" name="Filter on" runtime="false" value="Interior" visible="true"/>
<variable ID="operator" name="Accept if" runtime="false" value="GREATER" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="out" name="Filtered ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1232682279" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="758" keepsResults="true" width="1193" xLocation="1214" yLocation="510">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.file.FileUtil)&#10;&#10;FileUtil.createDir(input0 + &quot;\\ROI ID&quot;)&#10;output0 = input1.substring(1)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="1" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="java.io.File" visible="true"/>
<variable ID="1281148295" name="input1" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block ID="1070794490" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Spot Counting and Data Saving" height="754" keepsResults="true" width="605" xLocation="1516" yLocation="502">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;importClass(Packages.icy.util.DateUtil)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;seq = input3&#10;&#10;name2 = input7&#10;MicrofociThreshold = input5&#10;&#10;ch0 = input6&#10;&#10;ws = Workbooks.getSheet(wb, input4 + &quot; Information&quot;)&#10;ws1 = Workbooks.getSheet(wb, &quot;Distribution foci size&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws1.setValue(0, 0, date)&#10;ws.setRow(1, [&quot;Cell ID&quot;, input4+&quot; Size&quot;, ch0 + &quot;_Mean Intensity&quot;, &#10;ch0 + &quot;_Total foci&quot;,ch0 + &quot;_Foci_size&lt;&quot; + MicrofociThreshold,&#10;ch0 + &quot;_Foci_size&gt;=&quot; + MicrofociThreshold,&quot;Condition&quot;,&quot;Number of Cells&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;ws.setFillColor(1, 6, Color.lightGray)&#10;ws.setFillColor(1, 7, Color.lightGray)&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;ws.setValue(row, 6, name2)&#10;ws.setValue(row, 7, input0.length)&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;roi = input0[i]&#10;&#9;roi.setName(&quot;Object_&quot; + i)&#10;&#9;seq.addROI(roi)&#10;&#9;roi.setShowName(true)&#10;&#9;roi.setOpacity(1)&#10;&#9;title = name2 + &quot;_Object_&quot; + i&#10;&#9;ws.setValue(i+row, 0, title)&#10;&#9;mean = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 2, mean)&#10;&#9;size = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 1, size)&#9;&#10;&#9;ws1.setValue(i+row, 0, ch0 + &quot;_&quot; + title)&#10;&#9;nbdetection = 0 &#10;&#9;nbmicrofoci = 0&#10;&#9;nbfoci = 0&#10;&#10;&#9;for (k=0; k&lt;input2.length; k++){&#10;&#9;&#9;roi2 = input2[k]&#9;&#10;&#9;&#9;&#10;&#9;&#9;if(roi.contains(roi2)){&#10;&#9;&#9;&#9;nbdetection += 1&#10;&#9;&#9;&#9;size2 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi2, seq)&#10;&#9;&#9;&#9;ws1.setValue(i+row, nbdetection, size2)&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi2) &amp;&amp; size2&lt;MicrofociThreshold){&#10;&#9;&#9;&#9;nbmicrofoci +=1&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if(roi.contains(roi2) &amp;&amp; size2&gt;=MicrofociThreshold){&#10;&#9;&#9;&#9;nbfoci +=1&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;ws.setValue(i+row, 3, nbdetection)&#10;&#9;ws.setValue(i+row, 4, nbmicrofoci)&#10;&#9;ws.setValue(i+row, 5, nbfoci)&#10;} &#10;seq.setName(name2)&#10;output0 = seq&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="7" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="2014856225" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="1381446573" name="input2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="561494731" name="input3" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1628745397" name="input4" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="837055885" name="input5" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="487165339" name="input6" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="665858327" name="input7" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="477708056" name="output1" runtime="true" type="java.io.File" visible="true"/>
</output>
</variables>
</block>
<block ID="1692801853" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display ROI ID" height="339" keepsResults="true" width="397" xLocation="1119" yLocation="568">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1714537485" blockType="plugins.adufour.blocks.tools.sequence.SequenceScreenshot" className="plugins.adufour.blocks.tools.sequence.SequenceScreenshot" collapsed="true" definedName="Sequence screenshot" height="76" keepsResults="true" width="466" xLocation="1192" yLocation="170">
<variables>
<input>
<variable ID="input sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="screenshot" name="Screenshot" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="850323307" blockType="plugins.tprovoost.sequenceblocks.infos.GetName" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="true" definedName="Get name" height="83" keepsResults="true" width="466" xLocation="1349" yLocation="82">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="name" name="Name" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="2088324607" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="226" keepsResults="true" width="428" xLocation="1600" yLocation="83">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\ROI ID\ROI ID_" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="406046909" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="894" xLocation="1606" yLocation="130">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="10439705" blockType="plugins.tprovoost.sequenceblocks.files.SaveSequence" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="false" definedName="Save sequence" height="127" keepsResults="true" width="440" xLocation="1460" yLocation="187">
<variables>
<input>
<variable ID="file" name="File" runtime="false" type="java.io.File" visible="true"/>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="format" name="Format" runtime="false" value="TIFF" visible="true"/>
<variable ID="overwrite" name="Overwrite" runtime="false" value="true" visible="true"/>
<variable ID="multiple file" name="Multiple file" runtime="false" value="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1167578487" blockType="plugins.adufour.blocks.tools.io.FileToWorkbook" className="plugins.adufour.blocks.tools.io.FileToWorkbook" collapsed="true" definedName="File to workbook" height="360" keepsResults="true" width="506" xLocation="1541" yLocation="347">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
</input>
<output>
<variable ID="workbook" name="workbook" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1713908125" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="253" keepsResults="true" width="915" xLocation="7" yLocation="928">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="org.apache.poi.ss.usermodel.Workbook" visible="true"/>
</input>
<output/>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="1881981832" dstVarID="Sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1465294030" dstVarID="sequence" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="1497471217" dstVarID="input0" srcBlockID="1227986369" srcVarID="Sequence"/>
<link dstBlockID="44424109" dstVarID="suffix" srcBlockID="518218084" srcVarID="text"/>
<link dstBlockID="1497471217" dstVarID="63494442" srcBlockID="518218084" srcVarID="text"/>
<link dstBlockID="1232682279" dstVarID="1281148295" srcBlockID="518218084" srcVarID="text"/>
<link dstBlockID="1497471217" dstVarID="2141825572" srcBlockID="945360777" srcVarID="text"/>
<link dstBlockID="188627358" dstVarID="input Sequence" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="455185749" dstVarID="sequence" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="1311829208" dstVarID="object" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="1070794490" dstVarID="561494731" srcBlockID="1465294030" srcVarID="extracted"/>
<link dstBlockID="2088324607" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="44424109" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="864924071" dstVarID="input file" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="1232682279" dstVarID="input0" srcBlockID="1881981832" srcVarID="Folder"/>
<link dstBlockID="1457603694" dstVarID="input file" srcBlockID="44424109" srcVarID="output file"/>
<link dstBlockID="1457603694" dstVarID="suffix" srcBlockID="1497471217" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="1070794490" dstVarID="665858327" srcBlockID="1497471217" srcVarID="1094350567" srcVarType="java.lang.String"/>
<link dstBlockID="1773773167" dstVarID="input file" srcBlockID="1457603694" srcVarID="output file"/>
<link dstBlockID="1466287424" dstVarID="input0" srcBlockID="1773773167" srcVarID="sequence"/>
<link dstBlockID="1466287424" dstVarID="300613543" srcBlockID="1216914136" srcVarID="text"/>
<link dstBlockID="1370966191" dstVarID="input sequence" srcBlockID="1466287424" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="182634250" dstVarID="object" srcBlockID="1466287424" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="76280434" dstVarID="roi" srcBlockID="1370966191" srcVarID="ROI"/>
<link dstBlockID="1070794490" dstVarID="input0" srcBlockID="76280434" srcVarID="out"/>
<link dstBlockID="455185749" dstVarID="rois(s)" srcBlockID="76280434" srcVarID="out"/>
<link dstBlockID="188627358" dstVarID="input Sequence ROIs" srcBlockID="455185749" srcVarID="sequence"/>
<link dstBlockID="569595258" dstVarID="input sequence" srcBlockID="188627358" srcVarID="binary Spot Sequence"/>
<link dstBlockID="318340907" dstVarID="sequence" srcBlockID="188627358" srcVarID="input Sequence ROIs"/>
<link dstBlockID="553595517" dstVarID="object" srcBlockID="188627358" srcVarID="binary Spot Sequence"/>
<link dstBlockID="1070794490" dstVarID="487165339" srcBlockID="1853094405" srcVarID="text"/>
<link dstBlockID="1070794490" dstVarID="2014856225" srcBlockID="864924071" srcVarID="output file"/>
<link dstBlockID="1167578487" dstVarID="input file" srcBlockID="864924071" srcVarID="output file"/>
<link dstBlockID="1070794490" dstVarID="837055885" srcBlockID="1444857129" srcVarID="text"/>
<link dstBlockID="1583487239" dstVarID="roi" srcBlockID="569595258" srcVarID="ROI"/>
<link dstBlockID="318340907" dstVarID="roi" srcBlockID="1583487239" srcVarID="out"/>
<link dstBlockID="1070794490" dstVarID="1381446573" srcBlockID="318340907" srcVarID="out"/>
<link dstBlockID="1070794490" dstVarID="1628745397" srcBlockID="1232682279" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="1692801853" dstVarID="object" srcBlockID="1070794490" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="850323307" dstVarID="sequence" srcBlockID="1070794490" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1714537485" dstVarID="input sequence" srcBlockID="1692801853" srcVarID="object" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="10439705" dstVarID="sequence" srcBlockID="1714537485" srcVarID="screenshot"/>
<link dstBlockID="406046909" dstVarID="suffix" srcBlockID="850323307" srcVarID="name"/>
<link dstBlockID="406046909" dstVarID="input file" srcBlockID="2088324607" srcVarID="output file"/>
<link dstBlockID="10439705" dstVarID="file" srcBlockID="406046909" srcVarID="output file"/>
<link dstBlockID="1713908125" dstVarID="object" srcBlockID="1167578487" srcVarID="workbook"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="1227986369" value="C:\Users\gerau\Desktop\New folder\Merge" visible="true"/>
<variable ID="extension" blockID="1227986369" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="1227986369" value="false" visible="true"/>
<variable ID="518218084:text" blockID="518218084" value="\Segmented nuclei" visible="false"/>
<variable ID="945360777:text" blockID="945360777" value="tif" visible="false"/>
<variable ID="1465294030:sequence" blockID="1465294030" value="No Sequence" visible="false"/>
<variable ID="1465294030:channel" blockID="1465294030" value="0" visible="false"/>
<variable ID="1311829208:object" blockID="1311829208" value="" visible="false"/>
<variable ID="1881981832:Sequence" blockID="1881981832" value="No Sequence" visible="false"/>
<variable ID="44424109:input file" blockID="44424109" value="" visible="false"/>
<variable ID="44424109:remove ext." blockID="44424109" value="false" visible="false"/>
<variable ID="44424109:suffix" blockID="44424109" value="\Segmented nuclei" visible="false"/>
<variable ID="1497471217:Script" blockID="1497471217" value="name = input0.getName()&#10;n = name.lastIndexOf(&quot;.&quot;)&#10;&#10;if (n==-1){&#10;&#9;name2 = name&#10;}else{&#10;&#9;name2=name.substring(0, n)&#10;}&#10;output0 = &quot;\\&quot; + name2 + &quot;_&quot; + input2.substring(1) + &quot;.&quot; + input1&#10;output1 = name2" visible="false"/>
<variable ID="1497471217:Add Input" blockID="1497471217" value="2" visible="false"/>
<variable ID="1497471217:Add output" blockID="1497471217" value="1" visible="false"/>
<variable ID="1497471217:input0" blockID="1497471217" value="" visible="false"/>
<variable ID="1497471217:2141825572" blockID="1497471217" value="" visible="false"/>
<variable ID="1497471217:63494442" blockID="1497471217" value="" visible="false"/>
<variable ID="1457603694:input file" blockID="1457603694" value="" visible="false"/>
<variable ID="1457603694:remove ext." blockID="1457603694" value="false" visible="false"/>
<variable ID="1457603694:suffix" blockID="1457603694" value="" visible="false"/>
<variable ID="1773773167:input file" blockID="1773773167" value="" visible="false"/>
<variable ID="1773773167:Series" blockID="1773773167" value="0" visible="false"/>
<variable ID="1216914136:text" blockID="1216914136" value="Yes" visible="false"/>
<variable ID="1466287424:Script" blockID="1466287424" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input1==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}" visible="false"/>
<variable ID="1466287424:Add Input" blockID="1466287424" value="1" visible="false"/>
<variable ID="1466287424:Add output" blockID="1466287424" value="0" visible="false"/>
<variable ID="1466287424:input0" blockID="1466287424" value="" visible="false"/>
<variable ID="1466287424:300613543" blockID="1466287424" value="" visible="false"/>
<variable ID="1370966191:input sequence" blockID="1370966191" value="No Sequence" visible="false"/>
<variable ID="1370966191:extract mode" blockID="1370966191" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="1370966191:value" blockID="1370966191" value="0.0" visible="false"/>
<variable ID="76280434:roi" blockID="76280434" value="No ROI" visible="false"/>
<variable ID="76280434:minSize" blockID="76280434" value="0.0" visible="false"/>
<variable ID="76280434:maxSize" blockID="76280434" value="1.0E8" visible="false"/>
<variable ID="76280434:incBorder" blockID="76280434" value="false" visible="false"/>
<variable ID="455185749:sequence" blockID="455185749" value="No Sequence" visible="false"/>
<variable ID="455185749:rois(s)" blockID="455185749" value="No ROI" visible="false"/>
<variable ID="455185749:remove" blockID="455185749" value="false" visible="false"/>
<variable ID="188627358:input Sequence" blockID="188627358" value="No Sequence" visible="false"/>
<variable ID="188627358:Spot to detect" blockID="188627358" value="BRIGHT_SPOT" visible="false"/>
<variable ID="188627358:input Sequence ROIs" blockID="188627358" value="No Sequence" visible="false"/>
<variable ID="188627358:Compute WAT considering ROI" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:ROIs for detection mask" blockID="188627358" value="" visible="false"/>
<variable ID="188627358:Scale 1" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Scale 2" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Scale 3" blockID="188627358" value="true" visible="false"/>
<variable ID="188627358:Scale 4" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Scale 5" blockID="188627358" value="false" visible="false"/>
<variable ID="188627358:Th. scale 1:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Th. scale 2:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Th. scale 3:" blockID="188627358" value="20" visible="false"/>
<variable ID="188627358:Th. scale 4:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Th. scale 5:" blockID="188627358" value="100" visible="false"/>
<variable ID="188627358:Force 2D Wavelets" blockID="188627358" value="false" visible="false"/>
<variable ID="553595517:object" blockID="553595517" value="" visible="false"/>
<variable ID="182634250:object" blockID="182634250" value="" visible="false"/>
<variable ID="1853094405:text" blockID="1853094405" value="X" visible="false"/>
<variable ID="864924071:input file" blockID="864924071" value="" visible="false"/>
<variable ID="864924071:remove ext." blockID="864924071" value="false" visible="false"/>
<variable ID="864924071:suffix" blockID="864924071" value="\Results.xlsx" visible="false"/>
<variable ID="1444857129:text" blockID="1444857129" value="0" visible="false"/>
<variable ID="569595258:input sequence" blockID="569595258" value="No Sequence" visible="false"/>
<variable ID="569595258:extract mode" blockID="569595258" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="569595258:value" blockID="569595258" value="0.0" visible="false"/>
<variable ID="1583487239:roi" blockID="1583487239" value="No ROI" visible="false"/>
<variable ID="1583487239:minSize" blockID="1583487239" value="0.0" visible="false"/>
<variable ID="1583487239:maxSize" blockID="1583487239" value="1.0E9" visible="false"/>
<variable ID="1583487239:incBorder" blockID="1583487239" value="false" visible="false"/>
<variable ID="318340907:roi" blockID="318340907" value="No ROI" visible="false"/>
<variable ID="318340907:sequence" blockID="318340907" value="No Sequence" visible="false"/>
<variable ID="318340907:descriptors" blockID="318340907" value="Interior" visible="false"/>
<variable ID="318340907:operator" blockID="318340907" value="GREATER" visible="false"/>
<variable ID="318340907:value" blockID="318340907" value="0.0" visible="false"/>
<variable ID="1232682279:Script" blockID="1232682279" value="importClass(Packages.icy.file.FileUtil)&#10;&#10;FileUtil.createDir(input0 + &quot;\\ROI ID&quot;)&#10;output0 = input1.substring(1)" visible="false"/>
<variable ID="1232682279:Add Input" blockID="1232682279" value="1" visible="false"/>
<variable ID="1232682279:Add output" blockID="1232682279" value="0" visible="false"/>
<variable ID="1232682279:input0" blockID="1232682279" value="" visible="false"/>
<variable ID="1232682279:1281148295" blockID="1232682279" value="" visible="false"/>
<variable ID="1070794490:Script" blockID="1070794490" value="importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;importClass(Packages.icy.util.DateUtil)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;seq = input3&#10;&#10;name2 = input7&#10;MicrofociThreshold = input5&#10;&#10;ch0 = input6&#10;&#10;ws = Workbooks.getSheet(wb, input4 + &quot; Information&quot;)&#10;ws1 = Workbooks.getSheet(wb, &quot;Distribution foci size&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws1.setValue(0, 0, date)&#10;ws.setRow(1, [&quot;Cell ID&quot;, input4+&quot; Size&quot;, ch0 + &quot;_Mean Intensity&quot;, &#10;ch0 + &quot;_Total foci&quot;,ch0 + &quot;_Foci_size&lt;&quot; + MicrofociThreshold,&#10;ch0 + &quot;_Foci_size&gt;=&quot; + MicrofociThreshold,&quot;Condition&quot;,&quot;Number of Cells&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;ws.setFillColor(1, 6, Color.lightGray)&#10;ws.setFillColor(1, 7, Color.lightGray)&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;ws.setValue(row, 6, name2)&#10;ws.setValue(row, 7, input0.length)&#10;&#10;for (i=0; i&lt;input0.length; i++){&#10;&#9;roi = input0[i]&#10;&#9;roi.setName(&quot;Object_&quot; + i)&#10;&#9;seq.addROI(roi)&#10;&#9;roi.setShowName(true)&#10;&#9;roi.setOpacity(1)&#10;&#9;title = name2 + &quot;_Object_&quot; + i&#10;&#9;ws.setValue(i+row, 0, title)&#10;&#9;mean = ROIDescriptor.computeDescriptor(&quot;Mean intensity&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 2, mean)&#10;&#9;size = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi, seq)&#10;&#9;ws.setValue(i+row, 1, size)&#9;&#10;&#9;ws1.setValue(i+row, 0, ch0 + &quot;_&quot; + title)&#10;&#9;nbdetection = 0 &#10;&#9;nbmicrofoci = 0&#10;&#9;nbfoci = 0&#10;&#10;&#9;for (k=0; k&lt;input2.length; k++){&#10;&#9;&#9;roi2 = input2[k]&#9;&#10;&#9;&#9;&#10;&#9;&#9;if(roi.contains(roi2)){&#10;&#9;&#9;&#9;nbdetection += 1&#10;&#9;&#9;&#9;size2 = ROIDescriptor.computeDescriptor(&quot;Interior&quot;, roi2, seq)&#10;&#9;&#9;&#9;ws1.setValue(i+row, nbdetection, size2)&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if (roi.contains(roi2) &amp;&amp; size2&lt;MicrofociThreshold){&#10;&#9;&#9;&#9;nbmicrofoci +=1&#10;&#9;&#9;}&#10;&#10;&#9;&#9;if(roi.contains(roi2) &amp;&amp; size2&gt;=MicrofociThreshold){&#10;&#9;&#9;&#9;nbfoci +=1&#10;&#9;&#9;}&#10;&#9;}&#10;&#9;ws.setValue(i+row, 3, nbdetection)&#10;&#9;ws.setValue(i+row, 4, nbmicrofoci)&#10;&#9;ws.setValue(i+row, 5, nbfoci)&#10;} &#10;seq.setName(name2)&#10;output0 = seq&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)" visible="false"/>
<variable ID="1070794490:Add Input" blockID="1070794490" value="7" visible="false"/>
<variable ID="1070794490:Add output" blockID="1070794490" value="1" visible="false"/>
<variable ID="1070794490:input0" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:2014856225" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:1381446573" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:561494731" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:1628745397" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:837055885" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:487165339" blockID="1070794490" value="" visible="false"/>
<variable ID="1070794490:665858327" blockID="1070794490" value="" visible="false"/>
<variable ID="1692801853:object" blockID="1692801853" value="" visible="false"/>
<variable ID="1714537485:input sequence" blockID="1714537485" value="No Sequence" visible="false"/>
<variable ID="850323307:sequence" blockID="850323307" value="No Sequence" visible="false"/>
<variable ID="2088324607:input file" blockID="2088324607" value="" visible="false"/>
<variable ID="2088324607:remove ext." blockID="2088324607" value="false" visible="false"/>
<variable ID="2088324607:suffix" blockID="2088324607" value="\ROI ID\ROI ID_" visible="false"/>
<variable ID="406046909:input file" blockID="406046909" value="" visible="false"/>
<variable ID="406046909:remove ext." blockID="406046909" value="false" visible="false"/>
<variable ID="406046909:suffix" blockID="406046909" value="" visible="false"/>
<variable ID="10439705:file" blockID="10439705" value="" visible="false"/>
<variable ID="10439705:sequence" blockID="10439705" value="No Sequence" visible="false"/>
<variable ID="10439705:format" blockID="10439705" value="TIFF" visible="false"/>
<variable ID="10439705:overwrite" blockID="10439705" value="true" visible="false"/>
<variable ID="10439705:multiple file" blockID="10439705" value="false" visible="false"/>
<variable ID="1167578487:input file" blockID="1167578487" value="" visible="false"/>
<variable ID="1713908125:object" blockID="1713908125" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="1227986369" visible="true"/>
<variable ID="Sequence" blockID="1227986369" visible="true"/>
<variable ID="1465294030:extracted" blockID="1465294030" visible="false"/>
<variable ID="1881981832:Folder" blockID="1881981832" visible="false"/>
<variable ID="44424109:output file" blockID="44424109" visible="false"/>
<variable ID="1497471217:output0" blockID="1497471217" visible="false"/>
<variable ID="1497471217:1094350567" blockID="1497471217" visible="false"/>
<variable ID="1457603694:output file" blockID="1457603694" visible="false"/>
<variable ID="1773773167:sequence" blockID="1773773167" visible="false"/>
<variable ID="1466287424:output0" blockID="1466287424" visible="false"/>
<variable ID="1370966191:ROI" blockID="1370966191" visible="false"/>
<variable ID="76280434:out" blockID="76280434" visible="false"/>
<variable ID="188627358:binary Spot Sequence" blockID="188627358" visible="false"/>
<variable ID="188627358:detection as ROIs" blockID="188627358" visible="false"/>
<variable ID="864924071:output file" blockID="864924071" visible="false"/>
<variable ID="569595258:ROI" blockID="569595258" visible="false"/>
<variable ID="1583487239:out" blockID="1583487239" visible="false"/>
<variable ID="318340907:out" blockID="318340907" visible="false"/>
<variable ID="1232682279:output0" blockID="1232682279" visible="false"/>
<variable ID="1070794490:output0" blockID="1070794490" visible="false"/>
<variable ID="1070794490:477708056" blockID="1070794490" visible="false"/>
<variable ID="1714537485:screenshot" blockID="1714537485" visible="false"/>
<variable ID="850323307:name" blockID="850323307" visible="false"/>
<variable ID="2088324607:output file" blockID="2088324607" visible="false"/>
<variable ID="406046909:output file" blockID="406046909" visible="false"/>
<variable ID="1167578487:workbook" blockID="1167578487" visible="false"/>
</output>
</variables>
</workflow>
<workflow ID="1177938654" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Fluorescence Analysis D: Global Translocation" height="214" keepsResults="true" width="416" xLocation="1400" yLocation="4">
<blocks>
<block CommandLineID="" ID="1941158531" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder images ROI a" height="101" keepsResults="true" width="471" xLocation="0" yLocation="110">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1772987946" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder images ROI b" height="101" keepsResults="true" width="473" xLocation="0" yLocation="210">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Segmented cytoplasm" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="754992384" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="false" definedName="Extract channel" height="145" keepsResults="true" width="466" xLocation="0" yLocation="310">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="664569154" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented objects" height="101" keepsResults="true" width="304" xLocation="1" yLocation="458">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="tif" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="433345696" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="83" keepsResults="true" width="466" xLocation="263" yLocation="0">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1752331015" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="1003" keepsResults="true" width="1193" xLocation="512" yLocation="0">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="name = input0.getName()&#10;n=name.lastIndexOf(&quot;.&quot;)&#10;&#10;if(n==-1){&#10;&#9;title=name&#10;}else{&#10;&#9;title = name.substring(0, n)&#10;}&#10;output0 = &quot;\\&quot; + input3 + &quot;\\&quot; + title + &quot;_&quot; + input3 + &quot;.&quot; + input1&#10;output1 = &quot;\\&quot; + input4 + &quot;\\&quot; + title + &quot;_&quot; + input4 + &quot;.&quot; + input1" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="4" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1109963738" name="input1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="2035855381" name="input2" runtime="true" type="java.io.File" value="" visible="true"/>
<variable ID="1696748938" name="input3" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="426688483" name="input4" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
<variable ID="1643488542" name="output1" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1681754226" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="true" definedName="Text" height="101" keepsResults="true" width="127" xLocation="697" yLocation="0">
<variables>
<input>
<variable ID="text" name="text" runtime="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1902812205" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="true" definedName="Text" height="101" keepsResults="true" width="127" xLocation="692" yLocation="35">
<variables>
<input>
<variable ID="text" name="text" runtime="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="111063903" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="861" yLocation="0">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1789260145" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="858" yLocation="36">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="656083820" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="327" keepsResults="true" width="348" xLocation="31" yLocation="568">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1027884116" blockType="plugins.adufour.blocks.tools.io.FileToSequence" className="plugins.adufour.blocks.tools.io.FileToSequence" collapsed="true" definedName="File to sequence" height="145" keepsResults="true" width="279" xLocation="1074" yLocation="0">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
<variable ID="Series" name="Series" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1202269697" blockType="plugins.adufour.blocks.tools.io.FileToSequence" className="plugins.adufour.blocks.tools.io.FileToSequence" collapsed="true" definedName="File to sequence" height="145" keepsResults="true" width="279" xLocation="1076" yLocation="37">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
<variable ID="Series" name="Series" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="141719771" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Kill Borders?" height="101" keepsResults="true" width="173" xLocation="346" yLocation="470">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Yes" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="926953525" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="1003" keepsResults="true" width="1193" xLocation="506" yLocation="37">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus1 = ImageJUtil.convertToImageJImage(input1, null)&#10;&#9;imp1 = imPlus1&#10;&#9;IJ.run(imp1, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp3 = IJ.getImage()&#10;&#9;imPlus3 = imp3&#10;&#9;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output1=input1&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="975184883" name="input1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1931909681" name="input2" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="555683407" name="output1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="2053880158" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="203" keepsResults="true" width="195" xLocation="726" yLocation="94">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="109126389" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="208" keepsResults="true" width="213" xLocation="716" yLocation="329">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="200207556" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1308" yLocation="0">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ANY_LABEL_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="206753906" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1308" yLocation="41">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ANY_LABEL_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="2027291185" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter ROI by size a" height="282" keepsResults="true" width="444" xLocation="971" yLocation="192">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="10.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="10000.0" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="172766232" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter ROI by size b" height="282" keepsResults="true" width="444" xLocation="974" yLocation="411">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="10.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="10000.0" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="988385844" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="true" definedName="Integer" height="101" keepsResults="true" width="142" xLocation="1532" yLocation="46">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1488438487" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="1508" yLocation="4">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\Results.xlsx" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="2041729722" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="false" definedName="Javascript" height="583" keepsResults="true" width="502" xLocation="1271" yLocation="96">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.util.DateUtil)&#10;importClass(Packages.icy.math.DataIteratorMath)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;ws = Workbooks.getSheet(wb, &quot;Individual cell informations&quot;)&#10;ws2 = Workbooks.getSheet(wb, &quot;Image information&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws2.setValue(0, 0, date)&#10;ws.setRow(1, [&quot;Nucleus ROI ID&quot;, &quot;Nuclear intensity&quot;, &quot;Cytoplasm ROI ID&quot;, &#10;&quot;Cytoplasmic intensity&quot;])&#10;ws2.setRow(1, [&quot;Image&quot;,&quot;% Nucleus&quot;,&quot;% Cytoplasm&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws2.setFillColor(1, 0, Color.lightGray)&#10;ws2.setFillColor(1, 1, Color.lightGray)&#10;ws2.setFillColor(1, 2, Color.lightGray)&#10;&#10;name = input0.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;&#10;if (n==-1){&#10;&#9;name2=name&#10;}else{&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;var Sumnucleus = 0&#10;for (i=0; i&lt;input2.length; i++){&#10;&#9;var sum = 0&#10;&#9;roi = input2[i]&#10;&#9;input0.addROI(roi)&#10;&#9;it = new SequenceDataIterator(input0, roi, false)&#10;&#9;Sumpixels = DataIteratorMath.sum(it)&#10;&#9;sum = sum+Sumpixels&#10;&#9;ws.setValue(i+row, 0, roi.getName())&#10;&#9;ws.setValue(i+row, 1, sum)&#9;&#10;&#9;Sumnucleus = Sumnucleus + Sumpixels&#10;} &#10;&#10;input0.removeAllROI()&#10;var Sumcyto = 0&#10;for (j=0; j&lt;input3.length; j++){&#10;&#9;var sum2 = 0&#10;&#9;roi2 = input3[j]&#10;&#9;input0.addROI(roi2)&#10;&#9;it2 = new SequenceDataIterator(input0, roi2, false)&#10;&#9;Sumpixels2 = DataIteratorMath.sum(it2)&#10;&#9;sum2 = sum2+Sumpixels2&#10;&#9;ws.setValue(j+row, 2, roi2.getName())&#10;&#9;ws.setValue(j+row, 3, sum2)&#10;&#9;Sumcyto = Sumcyto + Sumpixels2&#10;} &#10;&#10;rationuc = (Sumnucleus*100)/(Sumnucleus+Sumcyto)&#10;ratiocyto = (Sumcyto*100)/(Sumnucleus+Sumcyto)&#10;ws2.setValue(input4+2, 1, rationuc)&#10;ws2.setValue(input4+2, 2, ratiocyto)&#10;ws2.setValue(input4+2, 0, name2)&#10;&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)&#10;output0 = input0" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="4" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="2079655079" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="712860079" name="input2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1579341912" name="input3" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1700989228" name="input4" runtime="true" type="int" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.Object" visible="true"/>
</output>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="433345696" dstVarID="Sequence" srcBlockID="1177938654" srcVarID="Sequence"/>
<link dstBlockID="1752331015" dstVarID="input0" srcBlockID="1177938654" srcVarID="Sequence"/>
<link dstBlockID="988385844" dstVarID="integer" srcBlockID="1177938654" srcVarID="iteration"/>
<link dstBlockID="754992384" dstVarID="sequence" srcBlockID="1177938654" srcVarID="Sequence"/>
<link dstBlockID="1752331015" dstVarID="1696748938" srcBlockID="1941158531" srcVarID="text"/>
<link dstBlockID="1752331015" dstVarID="426688483" srcBlockID="1772987946" srcVarID="text"/>
<link dstBlockID="656083820" dstVarID="object" srcBlockID="754992384" srcVarID="extracted"/>
<link dstBlockID="2041729722" dstVarID="input0" srcBlockID="754992384" srcVarID="extracted"/>
<link dstBlockID="1752331015" dstVarID="1109963738" srcBlockID="664569154" srcVarID="text"/>
<link dstBlockID="111063903" dstVarID="input file" srcBlockID="433345696" srcVarID="Folder"/>
<link dstBlockID="1789260145" dstVarID="input file" srcBlockID="433345696" srcVarID="Folder"/>
<link dstBlockID="1488438487" dstVarID="input file" srcBlockID="433345696" srcVarID="Folder"/>
<link dstBlockID="1902812205" dstVarID="text" srcBlockID="1752331015" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="1681754226" dstVarID="text" srcBlockID="1752331015" srcVarID="1643488542" srcVarType="java.lang.String"/>
<link dstBlockID="1789260145" dstVarID="suffix" srcBlockID="1681754226" srcVarID="text"/>
<link dstBlockID="111063903" dstVarID="suffix" srcBlockID="1902812205" srcVarID="text"/>
<link dstBlockID="1027884116" dstVarID="input file" srcBlockID="111063903" srcVarID="output file"/>
<link dstBlockID="1202269697" dstVarID="input file" srcBlockID="1789260145" srcVarID="output file"/>
<link dstBlockID="926953525" dstVarID="input0" srcBlockID="1027884116" srcVarID="sequence"/>
<link dstBlockID="926953525" dstVarID="975184883" srcBlockID="1202269697" srcVarID="sequence"/>
<link dstBlockID="926953525" dstVarID="1931909681" srcBlockID="141719771" srcVarID="text"/>
<link dstBlockID="2053880158" dstVarID="object" srcBlockID="926953525" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="109126389" dstVarID="object" srcBlockID="926953525" srcVarID="555683407" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="200207556" dstVarID="input sequence" srcBlockID="926953525" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="206753906" dstVarID="input sequence" srcBlockID="926953525" srcVarID="555683407" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="2027291185" dstVarID="roi" srcBlockID="200207556" srcVarID="ROI"/>
<link dstBlockID="172766232" dstVarID="roi" srcBlockID="206753906" srcVarID="ROI"/>
<link dstBlockID="2041729722" dstVarID="712860079" srcBlockID="2027291185" srcVarID="out"/>
<link dstBlockID="2041729722" dstVarID="1579341912" srcBlockID="172766232" srcVarID="out"/>
<link dstBlockID="2041729722" dstVarID="1700989228" srcBlockID="988385844" srcVarID="integer"/>
<link dstBlockID="2041729722" dstVarID="2079655079" srcBlockID="1488438487" srcVarID="output file"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="1177938654" value="C:\Users\gerau\Desktop\New folder\Translocation" visible="true"/>
<variable ID="extension" blockID="1177938654" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="1177938654" value="false" visible="true"/>
<variable ID="1941158531:text" blockID="1941158531" value="Segmented nuclei" visible="false"/>
<variable ID="1772987946:text" blockID="1772987946" value="Segmented cytoplasm" visible="false"/>
<variable ID="754992384:sequence" blockID="754992384" value="No Sequence" visible="false"/>
<variable ID="754992384:channel" blockID="754992384" value="0" visible="false"/>
<variable ID="664569154:text" blockID="664569154" value="tif" visible="false"/>
<variable ID="433345696:Sequence" blockID="433345696" value="No Sequence" visible="false"/>
<variable ID="1752331015:Script" blockID="1752331015" value="name = input0.getName()&#10;n=name.lastIndexOf(&quot;.&quot;)&#10;&#10;if(n==-1){&#10;&#9;title=name&#10;}else{&#10;&#9;title = name.substring(0, n)&#10;}&#10;output0 = &quot;\\&quot; + input3 + &quot;\\&quot; + title + &quot;_&quot; + input3 + &quot;.&quot; + input1&#10;output1 = &quot;\\&quot; + input4 + &quot;\\&quot; + title + &quot;_&quot; + input4 + &quot;.&quot; + input1" visible="false"/>
<variable ID="1752331015:Add Input" blockID="1752331015" value="4" visible="false"/>
<variable ID="1752331015:Add output" blockID="1752331015" value="1" visible="false"/>
<variable ID="1752331015:input0" blockID="1752331015" value="" visible="false"/>
<variable ID="1752331015:1109963738" blockID="1752331015" value="" visible="false"/>
<variable ID="1752331015:2035855381" blockID="1752331015" value="" visible="false"/>
<variable ID="1752331015:1696748938" blockID="1752331015" value="" visible="false"/>
<variable ID="1752331015:426688483" blockID="1752331015" value="" visible="false"/>
<variable ID="1681754226:text" blockID="1681754226" value="" visible="false"/>
<variable ID="1902812205:text" blockID="1902812205" value="" visible="false"/>
<variable ID="111063903:input file" blockID="111063903" value="" visible="false"/>
<variable ID="111063903:remove ext." blockID="111063903" value="false" visible="false"/>
<variable ID="111063903:suffix" blockID="111063903" value="" visible="false"/>
<variable ID="1789260145:input file" blockID="1789260145" value="" visible="false"/>
<variable ID="1789260145:remove ext." blockID="1789260145" value="false" visible="false"/>
<variable ID="1789260145:suffix" blockID="1789260145" value="" visible="false"/>
<variable ID="656083820:object" blockID="656083820" value="" visible="false"/>
<variable ID="1027884116:input file" blockID="1027884116" value="" visible="false"/>
<variable ID="1027884116:Series" blockID="1027884116" value="0" visible="false"/>
<variable ID="1202269697:input file" blockID="1202269697" value="" visible="false"/>
<variable ID="1202269697:Series" blockID="1202269697" value="0" visible="false"/>
<variable ID="141719771:text" blockID="141719771" value="Yes" visible="false"/>
<variable ID="926953525:Script" blockID="926953525" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus1 = ImageJUtil.convertToImageJImage(input1, null)&#10;&#9;imp1 = imPlus1&#10;&#9;IJ.run(imp1, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp3 = IJ.getImage()&#10;&#9;imPlus3 = imp3&#10;&#9;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output1=input1&#10;}" visible="false"/>
<variable ID="926953525:Add Input" blockID="926953525" value="2" visible="false"/>
<variable ID="926953525:Add output" blockID="926953525" value="1" visible="false"/>
<variable ID="926953525:input0" blockID="926953525" value="" visible="false"/>
<variable ID="926953525:975184883" blockID="926953525" value="" visible="false"/>
<variable ID="926953525:1931909681" blockID="926953525" value="" visible="false"/>
<variable ID="2053880158:object" blockID="2053880158" value="" visible="false"/>
<variable ID="109126389:object" blockID="109126389" value="" visible="false"/>
<variable ID="200207556:input sequence" blockID="200207556" value="No Sequence" visible="false"/>
<variable ID="200207556:extract mode" blockID="200207556" value="ANY_LABEL_VS_BACKGROUND" visible="false"/>
<variable ID="200207556:value" blockID="200207556" value="0.0" visible="false"/>
<variable ID="206753906:input sequence" blockID="206753906" value="No Sequence" visible="false"/>
<variable ID="206753906:extract mode" blockID="206753906" value="ANY_LABEL_VS_BACKGROUND" visible="false"/>
<variable ID="206753906:value" blockID="206753906" value="0.0" visible="false"/>
<variable ID="2027291185:roi" blockID="2027291185" value="No ROI" visible="false"/>
<variable ID="2027291185:minSize" blockID="2027291185" value="10.0" visible="false"/>
<variable ID="2027291185:maxSize" blockID="2027291185" value="10000.0" visible="false"/>
<variable ID="2027291185:incBorder" blockID="2027291185" value="false" visible="false"/>
<variable ID="172766232:roi" blockID="172766232" value="No ROI" visible="false"/>
<variable ID="172766232:minSize" blockID="172766232" value="10.0" visible="false"/>
<variable ID="172766232:maxSize" blockID="172766232" value="10000.0" visible="false"/>
<variable ID="172766232:incBorder" blockID="172766232" value="false" visible="false"/>
<variable ID="988385844:integer" blockID="988385844" value="0" visible="false"/>
<variable ID="1488438487:input file" blockID="1488438487" value="" visible="false"/>
<variable ID="1488438487:remove ext." blockID="1488438487" value="false" visible="false"/>
<variable ID="1488438487:suffix" blockID="1488438487" value="\Results.xlsx" visible="false"/>
<variable ID="2041729722:Script" blockID="2041729722" value="importClass(Packages.icy.util.DateUtil)&#10;importClass(Packages.icy.math.DataIteratorMath)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;ws = Workbooks.getSheet(wb, &quot;Individual cell informations&quot;)&#10;ws2 = Workbooks.getSheet(wb, &quot;Image information&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws2.setValue(0, 0, date)&#10;ws.setRow(1, [&quot;Nucleus ROI ID&quot;, &quot;Nuclear intensity&quot;, &quot;Cytoplasm ROI ID&quot;, &#10;&quot;Cytoplasmic intensity&quot;])&#10;ws2.setRow(1, [&quot;Image&quot;,&quot;% Nucleus&quot;,&quot;% Cytoplasm&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws2.setFillColor(1, 0, Color.lightGray)&#10;ws2.setFillColor(1, 1, Color.lightGray)&#10;ws2.setFillColor(1, 2, Color.lightGray)&#10;&#10;name = input0.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;&#10;if (n==-1){&#10;&#9;name2=name&#10;}else{&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;var Sumnucleus = 0&#10;for (i=0; i&lt;input2.length; i++){&#10;&#9;var sum = 0&#10;&#9;roi = input2[i]&#10;&#9;input0.addROI(roi)&#10;&#9;it = new SequenceDataIterator(input0, roi, false)&#10;&#9;Sumpixels = DataIteratorMath.sum(it)&#10;&#9;sum = sum+Sumpixels&#10;&#9;ws.setValue(i+row, 0, roi.getName())&#10;&#9;ws.setValue(i+row, 1, sum)&#9;&#10;&#9;Sumnucleus = Sumnucleus + Sumpixels&#10;} &#10;&#10;input0.removeAllROI()&#10;var Sumcyto = 0&#10;for (j=0; j&lt;input3.length; j++){&#10;&#9;var sum2 = 0&#10;&#9;roi2 = input3[j]&#10;&#9;input0.addROI(roi2)&#10;&#9;it2 = new SequenceDataIterator(input0, roi2, false)&#10;&#9;Sumpixels2 = DataIteratorMath.sum(it2)&#10;&#9;sum2 = sum2+Sumpixels2&#10;&#9;ws.setValue(j+row, 2, roi2.getName())&#10;&#9;ws.setValue(j+row, 3, sum2)&#10;&#9;Sumcyto = Sumcyto + Sumpixels2&#10;} &#10;&#10;rationuc = (Sumnucleus*100)/(Sumnucleus+Sumcyto)&#10;ratiocyto = (Sumcyto*100)/(Sumnucleus+Sumcyto)&#10;ws2.setValue(input4+2, 1, rationuc)&#10;ws2.setValue(input4+2, 2, ratiocyto)&#10;ws2.setValue(input4+2, 0, name2)&#10;&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)&#10;output0 = input0" visible="false"/>
<variable ID="2041729722:Add Input" blockID="2041729722" value="4" visible="false"/>
<variable ID="2041729722:Add output" blockID="2041729722" value="0" visible="false"/>
<variable ID="2041729722:input0" blockID="2041729722" value="" visible="false"/>
<variable ID="2041729722:2079655079" blockID="2041729722" value="" visible="false"/>
<variable ID="2041729722:712860079" blockID="2041729722" value="" visible="false"/>
<variable ID="2041729722:1579341912" blockID="2041729722" value="" visible="false"/>
<variable ID="2041729722:1700989228" blockID="2041729722" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="1177938654" visible="true"/>
<variable ID="Sequence" blockID="1177938654" visible="true"/>
<variable ID="754992384:extracted" blockID="754992384" visible="false"/>
<variable ID="433345696:Folder" blockID="433345696" visible="false"/>
<variable ID="1752331015:output0" blockID="1752331015" visible="false"/>
<variable ID="1752331015:1643488542" blockID="1752331015" visible="false"/>
<variable ID="111063903:output file" blockID="111063903" visible="false"/>
<variable ID="1789260145:output file" blockID="1789260145" visible="false"/>
<variable ID="1027884116:sequence" blockID="1027884116" visible="false"/>
<variable ID="1202269697:sequence" blockID="1202269697" visible="false"/>
<variable ID="926953525:output0" blockID="926953525" visible="false"/>
<variable ID="926953525:555683407" blockID="926953525" visible="false"/>
<variable ID="200207556:ROI" blockID="200207556" visible="false"/>
<variable ID="206753906:ROI" blockID="206753906" visible="false"/>
<variable ID="2027291185:out" blockID="2027291185" visible="false"/>
<variable ID="172766232:out" blockID="172766232" visible="false"/>
<variable ID="1488438487:output file" blockID="1488438487" visible="false"/>
<variable ID="2041729722:output0" blockID="2041729722" visible="false"/>
</output>
</variables>
</workflow>
<workflow ID="19121745" blockType="plugins.adufour.blocks.lang.SequenceFileBatch" className="plugins.adufour.blocks.lang.SequenceFileBatch" collapsed="false" definedName="Fluorescence Analysis E: Individual Cell translocation" height="233" keepsResults="true" width="420" xLocation="1402" yLocation="221">
<blocks>
<block CommandLineID="" ID="765279686" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder images segmented nuclei" height="101" keepsResults="true" width="426" xLocation="8" yLocation="113">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Segmented nuclei" visible="true"/>
</input>
<output/>
</variables>
</block>
<block CommandLineID="" ID="1792537336" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Folder images segmented cytoplasms" height="101" keepsResults="true" width="427" xLocation="7" yLocation="218">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Segmented cytoplasm" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1281731181" blockType="plugins.tprovoost.sequenceblocks.extract.ExtractChannel" className="plugins.tprovoost.sequenceblocks.SequenceBlocks" collapsed="false" definedName="Extract channel" height="145" keepsResults="true" width="430" xLocation="4" yLocation="326">
<variables>
<input>
<variable ID="sequence" name="Sequence" runtime="false" visible="true"/>
<variable ID="channel" name="Channel" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="extracted" name="Extracted" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="411486689" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Format images segmented objects" height="101" keepsResults="true" width="304" xLocation="0" yLocation="473">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="tif" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="34473109" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="1003" keepsResults="true" width="1193" xLocation="321" yLocation="0">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="name = input0.getName()&#10;n=name.lastIndexOf(&quot;.&quot;)&#10;&#10;if(n==-1){&#10;&#9;title=name&#10;}else{&#10;&#9;title = name.substring(0, n)&#10;}&#10;output0 = &quot;\\&quot; + input3 + &quot;\\&quot; + title + &quot;_&quot; + input3 + &quot;.&quot; + input1&#10;output1 = &quot;\\&quot; + input4 + &quot;\\&quot; + title + &quot;_&quot; + input4 + &quot;.&quot; + input1" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="4" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1483811417" name="input1" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="215142189" name="input2" runtime="true" type="java.io.File" value="" visible="true"/>
<variable ID="1312266866" name="input3" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="1721687495" name="input4" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="java.lang.String" visible="true"/>
<variable ID="200028391" name="output1" runtime="true" type="java.lang.String" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="2110543744" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="true" definedName="Text" height="101" keepsResults="true" width="655" xLocation="748" yLocation="0">
<variables>
<input>
<variable ID="text" name="text" runtime="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1509339533" blockType="plugins.adufour.blocks.tools.io.GetSequenceFolder" className="plugins.adufour.blocks.tools.io.GetSequenceFolder" collapsed="true" definedName="Get sequence folder" height="143" keepsResults="true" width="611" xLocation="524" yLocation="0">
<variables>
<input>
<variable ID="Sequence" name="Sequence" runtime="false" visible="true"/>
</input>
<output>
<variable ID="Folder" name="Folder" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="792719025" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="199" keepsResults="true" width="387" xLocation="895" yLocation="0">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1383056525" blockType="plugins.adufour.blocks.tools.io.FileToSequence" className="plugins.adufour.blocks.tools.io.FileToSequence" collapsed="true" definedName="File to sequence" height="145" keepsResults="true" width="279" xLocation="1112" yLocation="0">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
<variable ID="Series" name="Series" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="627040643" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="true" definedName="Text" height="101" keepsResults="true" width="745" xLocation="747" yLocation="35">
<variables>
<input>
<variable ID="text" name="text" runtime="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1253016836" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="243" keepsResults="true" width="387" xLocation="901" yLocation="26">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="2125585743" blockType="plugins.adufour.blocks.tools.io.FileToSequence" className="plugins.adufour.blocks.tools.io.FileToSequence" collapsed="true" definedName="File to sequence" height="145" keepsResults="true" width="279" xLocation="1113" yLocation="36">
<variables>
<input>
<variable ID="input file" name="input file" runtime="false" visible="true"/>
<variable ID="Series" name="Series" runtime="false" value="0" visible="true"/>
</input>
<output>
<variable ID="sequence" name="sequence" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1737994194" blockType="plugins.adufour.blocks.tools.input.Text" className="plugins.adufour.blocks.tools.input.Text" collapsed="false" definedName="Kill Borders?" height="101" keepsResults="true" width="173" xLocation="386" yLocation="485">
<variables>
<input>
<variable ID="text" name="text" runtime="false" value="Yes" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="552832778" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="1003" keepsResults="true" width="1193" xLocation="1334" yLocation="0">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus1 = ImageJUtil.convertToImageJImage(input1, null)&#10;&#9;imp1 = imPlus1&#10;&#9;IJ.run(imp1, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp3 = IJ.getImage()&#10;&#9;imPlus3 = imp3&#10;&#9;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output1=input1&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="2" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="1" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="994935348" name="input1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1374274848" name="input2" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="1764712473" name="output1" runtime="true" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="1656865419" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1516" yLocation="1">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1379183046" blockType="plugins.adufour.blocks.tools.io.AppendFilePath" className="plugins.adufour.blocks.tools.io.AppendFilePath" collapsed="true" definedName="Append file path" height="324" keepsResults="true" width="724" xLocation="893" yLocation="68">
<variables>
<input>
<variable ID="input file" name="Current file" runtime="false" type="java.io.File" visible="true"/>
<variable ID="remove ext." name="Remove extension" runtime="false" value="false" visible="true"/>
<variable ID="suffix" name="Add suffix" runtime="false" value="\Results2.xlsx" visible="true"/>
</input>
<output>
<variable ID="output file" name="New file" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="107669387" blockType="plugins.adufour.roi.LabelExtractor" className="plugins.adufour.roi.LabelExtractor" collapsed="true" definedName="Label Extractor" height="202" keepsResults="true" width="682" xLocation="1511" yLocation="39">
<variables>
<input>
<variable ID="input sequence" name="Labeled sequence" runtime="false" visible="true"/>
<variable ID="extract mode" name="Extract" runtime="false" value="ALL_LABELS_VS_BACKGROUND" visible="true"/>
<variable ID="value" name="Value" runtime="false" value="0.0" visible="true"/>
</input>
<output>
<variable ID="ROI" name="Extracted ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="242607300" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter ROI by size nuclei" height="282" keepsResults="true" width="492" xLocation="461" yLocation="135">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E10" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="658085365" blockType="plugins.stef.roi.bloc.op.FilterROIBySize" className="plugins.stef.roi.bloc.RoiBlocks" collapsed="true" definedName="Filter ROI by size cytoplasm" height="282" keepsResults="true" width="444" xLocation="450" yLocation="250">
<variables>
<input>
<variable ID="roi" name="ROI(s)" runtime="false" visible="true"/>
<variable ID="minSize" name="Min size (px)" runtime="false" value="0.0" visible="true"/>
<variable ID="maxSize" name="Max size (px)" runtime="false" value="1.0E10" visible="true"/>
<variable ID="incBorder" name="Include border pixels" runtime="false" value="false" visible="true"/>
</input>
<output>
<variable ID="out" name="ROI(s)" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block CommandLineID="" ID="1847339580" blockType="plugins.adufour.blocks.tools.input.Integer" className="plugins.adufour.blocks.tools.input.Integer" collapsed="true" definedName="Integer" height="101" keepsResults="true" width="142" xLocation="1544" yLocation="82">
<variables>
<input>
<variable ID="integer" name="integer" runtime="false" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1233319162" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="255" keepsResults="true" width="301" xLocation="1019" yLocation="516">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1984604003" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="253" keepsResults="true" width="302" xLocation="1018" yLocation="220">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="1390362133" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="259" keepsResults="true" width="285" xLocation="1363" yLocation="219">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
<block ID="828237590" blockType="plugins.adufour.morphology.FillHolesInROI" className="plugins.adufour.morphology.FillHolesInROI" collapsed="true" definedName="Fill holes in ROI" height="104" keepsResults="true" width="450" xLocation="521" yLocation="38">
<variables>
<input>
<variable ID="List of ROI" name="List of ROI" runtime="false" visible="true"/>
</input>
<output>
<variable ID="List of hole-filled ROI" name="List of hole-filled ROI" runtime="false" visible="true"/>
</output>
</variables>
</block>
<block ID="1014712228" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="true" definedName="Javascript" height="1687" keepsResults="true" width="1193" xLocation="1344" yLocation="49">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.icy.roi.ROI2DArea)&#10;importClass(Packages.icy.roi.ROIUtil)&#10;&#10;seq = input0&#10;seq.removeAllROI()&#10;name1 = seq.getName()&#10;n = name1.lastIndexOf(&quot;.&quot;)&#10;&#10;if (n==-1){&#10;&#9;title=name1&#10;}else{&#10;&#9;title = name1.substring(0, n)&#10;}&#10;&#10;output1 = []&#10;output2 = []&#10;&#10;for (i=0; i&lt;input1.length; i++){&#10;&#9;roi = input1[i]&#10;&#9;roi.setName(title + &quot;_&quot; + input3 + &quot;_&quot; + i)&#10;&#9;roi.setShowName(true)&#10;&#9;output1[i]=input1[i]&#10;&#9;roi3 = new ROI2DArea()&#10;&#9;roi3.setName(&quot;Empty ROI&quot;)&#10;&#9;for (j=0; j&lt;input2.length; j++){&#10;        &#9;roi2 = input2[j]&#10;&#9;&#9;if (roi2.contains(roi)){&#10;&#9;&#9;&#9;roi3.remove()&#10;&#9;&#9;&#9;roi3 = ROIUtil.getSubtraction(roi2, roi)&#10;&#9;&#9;&#9;roi3.setName(title + &quot;_&quot; + input4 + &quot;_&quot; + i)&#10;&#9;&#9;&#9;roi3.setShowName(true)&#10;&#9;&#9;} &#10;&#9;}&#10;&#9;output2[i] = roi3&#10;}" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="4" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="2" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="59763956" name="input1" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="624561987" name="input2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="752045371" name="input3" runtime="true" type="java.lang.String" visible="true"/>
<variable ID="796410851" name="input4" runtime="true" type="java.lang.String" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="949441859" name="output1" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1858819724" name="output2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
</output>
</variables>
</block>
<block ID="508551344" blockType="plugins.tprovoost.scripteditor.scriptblock.Javascript" className="plugins.tprovoost.scripteditor.scriptblock.Javascript" collapsed="false" definedName="Javascript" height="861" keepsResults="true" width="683" xLocation="1729" yLocation="11">
<variables>
<input>
<variable ID="Script" name="" runtime="false" value="importClass(Packages.org.python.core.PyXRange$xrange___getitem___exposer)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.icy.util.DateUtil)&#10;importClass(Packages.icy.math.DataIteratorMath)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;ws = Workbooks.getSheet(wb, &quot;Individual cell informations&quot;)&#10;ws2 = Workbooks.getSheet(wb, &quot;Image information&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws2.setValue(0, 0, date)&#10;&#10;ws.setRow(1, [&quot;Nucleus ROI ID&quot;, &quot;ROI X position&quot;, &quot;ROI Y position&quot;, &#10;&quot;Nuclear intensity&quot;,&quot;Cytoplasm ROI ID&quot;,&quot;ROI X position&quot;,&quot;ROI Y position&quot;,&#10;&quot;Cytoplasmic intensity&quot;,&quot;% Nucleus&quot;,&quot;% Cytoplasm&quot;])&#10;&#10;ws2.setRow(1, [&quot;Image&quot;,&quot;% Nucleus&quot;,&quot;% Cytoplasm&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;ws.setFillColor(1, 6, Color.lightGray)&#10;ws.setFillColor(1, 7, Color.lightGray)&#10;ws.setFillColor(1, 8, Color.lightGray)&#10;ws.setFillColor(1, 9, Color.lightGray)&#10;&#10;ws2.setFillColor(1, 0, Color.lightGray)&#10;ws2.setFillColor(1, 1, Color.lightGray)&#10;ws2.setFillColor(1, 2, Color.lightGray)&#10;&#10;name = input0.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;if (n==-1){&#10;&#9;name2=name&#10;}else{&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;var Sumnucleus = 0&#10;var Sumcyto = 0&#10;for (i=0; i&lt;input2.length; i++){&#10;&#9;var sum=0&#10;&#9;var sum2=0&#10;&#9;roi = input2[i]&#10;&#9;input0.addROI(roi)&#10;&#9;it = new SequenceDataIterator(input0, roi, false)&#10;&#9;Sumpixels = DataIteratorMath.sum(it)&#10;&#9;sum = sum+Sumpixels&#10;&#9;ws.setValue(i+row, 0, roi.getName())&#10;&#9;ws.setValue(i+row, 3, sum)&#9;&#10;&#9;Sumnucleus = Sumnucleus + Sumpixels&#10;&#9;&#10;&#9;roi2 = input3[i]&#10;&#9;input0.addROI(roi2)&#10;&#9;it2 = new SequenceDataIterator(input0, roi2, false)&#10;&#9;Sumpixels2 = DataIteratorMath.sum(it2)&#10;&#9;sum2=sum2+Sumpixels2&#10;&#9;ws.setValue(i+row, 4, roi2.getName())&#10;&#9;ws.setValue(i+row, 7, sum2)&#10;&#9;Sumcyto = Sumcyto + Sumpixels2&#10;&#9;rationuc1 = (Sumpixels*100)/(Sumpixels+Sumpixels2)&#10;&#9;ratiocyto1 = (Sumpixels2*100)/(Sumpixels+Sumpixels2)&#10;&#9;ws.setValue(i+row, 8, rationuc1)&#10;&#9;ws.setValue(i+row, 9, ratiocyto1)&#10;&#10;&#9;X = ROIDescriptor.computeDescriptor(&quot;Size X&quot;, roi, input0)&#10;&#9;Y = ROIDescriptor.computeDescriptor(&quot;Size Y&quot;, roi, input0)&#10;&#9;X1 = ROIDescriptor.computeDescriptor(&quot;Size X&quot;, roi2, input0)&#10;&#9;Y1 = ROIDescriptor.computeDescriptor(&quot;Size Y&quot;, roi2, input0)&#10;&#9;ws.setValue(i+row, 1, X)&#10;&#9;ws.setValue(i+row, 2, Y)&#10;&#9;ws.setValue(i+row, 5, X1)&#10;&#9;ws.setValue(i+row, 6, Y1)&#10;} &#10;rationuc = (Sumnucleus*100)/(Sumnucleus+Sumcyto)&#10;ratiocyto = (Sumcyto*100)/(Sumnucleus+Sumcyto)&#10;ws2.setValue(input4+2, 1, rationuc)&#10;ws2.setValue(input4+2, 2, ratiocyto)&#10;ws2.setValue(input4+2, 0, name2)&#10;&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)&#10;output0 = input0" visible="true"/>
<variable ID="Add Input" name="Add Input" runtime="false" value="4" visible="true"/>
<variable ID="Add output" name="Add output" runtime="false" value="0" visible="true"/>
<variable ID="input0" name="input0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
<variable ID="360527544" name="input1" runtime="true" type="java.io.File" visible="true"/>
<variable ID="231912541" name="input2" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1068069779" name="input3" runtime="true" type="[Licy.roi.ROI;" visible="true"/>
<variable ID="1296243043" name="input4" runtime="true" type="int" visible="true"/>
</input>
<output>
<variable ID="output0" name="output0" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</output>
</variables>
</block>
<block ID="571402537" blockType="plugins.adufour.blocks.tools.Display" className="plugins.adufour.blocks.tools.Display" collapsed="false" definedName="Display" height="258" keepsResults="true" width="299" xLocation="1356" yLocation="515">
<variables>
<input>
<variable ID="object" name="object" runtime="false" type="icy.sequence.Sequence" visible="true"/>
</input>
<output/>
</variables>
</block>
</blocks>
<links>
<link dstBlockID="1509339533" dstVarID="Sequence" srcBlockID="19121745" srcVarID="Sequence"/>
<link dstBlockID="1847339580" dstVarID="integer" srcBlockID="19121745" srcVarID="iteration"/>
<link dstBlockID="1281731181" dstVarID="sequence" srcBlockID="19121745" srcVarID="Sequence"/>
<link dstBlockID="34473109" dstVarID="input0" srcBlockID="19121745" srcVarID="Sequence"/>
<link dstBlockID="34473109" dstVarID="1312266866" srcBlockID="765279686" srcVarID="text"/>
<link dstBlockID="1014712228" dstVarID="752045371" srcBlockID="765279686" srcVarID="text"/>
<link dstBlockID="34473109" dstVarID="1721687495" srcBlockID="1792537336" srcVarID="text"/>
<link dstBlockID="1014712228" dstVarID="796410851" srcBlockID="1792537336" srcVarID="text"/>
<link dstBlockID="1233319162" dstVarID="object" srcBlockID="1281731181" srcVarID="extracted"/>
<link dstBlockID="508551344" dstVarID="input0" srcBlockID="1281731181" srcVarID="extracted"/>
<link dstBlockID="1014712228" dstVarID="input0" srcBlockID="1281731181" srcVarID="extracted"/>
<link dstBlockID="34473109" dstVarID="1483811417" srcBlockID="411486689" srcVarID="text"/>
<link dstBlockID="2110543744" dstVarID="text" srcBlockID="34473109" srcVarID="output0" srcVarType="java.lang.String"/>
<link dstBlockID="627040643" dstVarID="text" srcBlockID="34473109" srcVarID="200028391" srcVarType="java.lang.String"/>
<link dstBlockID="792719025" dstVarID="suffix" srcBlockID="2110543744" srcVarID="text"/>
<link dstBlockID="1379183046" dstVarID="input file" srcBlockID="1509339533" srcVarID="Folder"/>
<link dstBlockID="792719025" dstVarID="input file" srcBlockID="1509339533" srcVarID="Folder"/>
<link dstBlockID="1253016836" dstVarID="input file" srcBlockID="1509339533" srcVarID="Folder"/>
<link dstBlockID="1383056525" dstVarID="input file" srcBlockID="792719025" srcVarID="output file"/>
<link dstBlockID="552832778" dstVarID="input0" srcBlockID="1383056525" srcVarID="sequence"/>
<link dstBlockID="1253016836" dstVarID="suffix" srcBlockID="627040643" srcVarID="text"/>
<link dstBlockID="2125585743" dstVarID="input file" srcBlockID="1253016836" srcVarID="output file"/>
<link dstBlockID="552832778" dstVarID="994935348" srcBlockID="2125585743" srcVarID="sequence"/>
<link dstBlockID="552832778" dstVarID="1374274848" srcBlockID="1737994194" srcVarID="text"/>
<link dstBlockID="1390362133" dstVarID="object" srcBlockID="552832778" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1984604003" dstVarID="object" srcBlockID="552832778" srcVarID="1764712473" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="1656865419" dstVarID="input sequence" srcBlockID="552832778" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="107669387" dstVarID="input sequence" srcBlockID="552832778" srcVarID="1764712473" srcVarType="icy.sequence.Sequence"/>
<link dstBlockID="242607300" dstVarID="roi" srcBlockID="1656865419" srcVarID="ROI"/>
<link dstBlockID="508551344" dstVarID="360527544" srcBlockID="1379183046" srcVarID="output file"/>
<link dstBlockID="658085365" dstVarID="roi" srcBlockID="107669387" srcVarID="ROI"/>
<link dstBlockID="1014712228" dstVarID="59763956" srcBlockID="242607300" srcVarID="out"/>
<link dstBlockID="828237590" dstVarID="List of ROI" srcBlockID="658085365" srcVarID="out"/>
<link dstBlockID="508551344" dstVarID="1296243043" srcBlockID="1847339580" srcVarID="integer"/>
<link dstBlockID="1014712228" dstVarID="624561987" srcBlockID="828237590" srcVarID="List of hole-filled ROI"/>
<link dstBlockID="508551344" dstVarID="231912541" srcBlockID="1014712228" srcVarID="949441859" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="508551344" dstVarID="1068069779" srcBlockID="1014712228" srcVarID="1858819724" srcVarType="[Licy.roi.ROI;"/>
<link dstBlockID="571402537" dstVarID="object" srcBlockID="508551344" srcVarID="output0" srcVarType="icy.sequence.Sequence"/>
</links>
<variables>
<input>
<variable ID="folder" blockID="19121745" value="C:\Users\gerau\Desktop\New folder\Translocation" visible="true"/>
<variable ID="extension" blockID="19121745" value="" visible="true"/>
<variable ID="Include sub-folders" blockID="19121745" value="false" visible="true"/>
<variable ID="765279686:text" blockID="765279686" value="Segmented nuclei" visible="false"/>
<variable ID="1792537336:text" blockID="1792537336" value="Segmented cytoplasm" visible="false"/>
<variable ID="1281731181:sequence" blockID="1281731181" value="No Sequence" visible="false"/>
<variable ID="1281731181:channel" blockID="1281731181" value="0" visible="false"/>
<variable ID="411486689:text" blockID="411486689" value="tif" visible="false"/>
<variable ID="34473109:Script" blockID="34473109" value="name = input0.getName()&#10;n=name.lastIndexOf(&quot;.&quot;)&#10;&#10;if(n==-1){&#10;&#9;title=name&#10;}else{&#10;&#9;title = name.substring(0, n)&#10;}&#10;output0 = &quot;\\&quot; + input3 + &quot;\\&quot; + title + &quot;_&quot; + input3 + &quot;.&quot; + input1&#10;output1 = &quot;\\&quot; + input4 + &quot;\\&quot; + title + &quot;_&quot; + input4 + &quot;.&quot; + input1" visible="false"/>
<variable ID="34473109:Add Input" blockID="34473109" value="4" visible="false"/>
<variable ID="34473109:Add output" blockID="34473109" value="1" visible="false"/>
<variable ID="34473109:input0" blockID="34473109" value="" visible="false"/>
<variable ID="34473109:1483811417" blockID="34473109" value="" visible="false"/>
<variable ID="34473109:215142189" blockID="34473109" value="" visible="false"/>
<variable ID="34473109:1312266866" blockID="34473109" value="" visible="false"/>
<variable ID="34473109:1721687495" blockID="34473109" value="" visible="false"/>
<variable ID="2110543744:text" blockID="2110543744" value="" visible="false"/>
<variable ID="1509339533:Sequence" blockID="1509339533" value="No Sequence" visible="false"/>
<variable ID="792719025:input file" blockID="792719025" value="" visible="false"/>
<variable ID="792719025:remove ext." blockID="792719025" value="false" visible="false"/>
<variable ID="792719025:suffix" blockID="792719025" value="" visible="false"/>
<variable ID="1383056525:input file" blockID="1383056525" value="" visible="false"/>
<variable ID="1383056525:Series" blockID="1383056525" value="0" visible="false"/>
<variable ID="627040643:text" blockID="627040643" value="" visible="false"/>
<variable ID="1253016836:input file" blockID="1253016836" value="" visible="false"/>
<variable ID="1253016836:remove ext." blockID="1253016836" value="false" visible="false"/>
<variable ID="1253016836:suffix" blockID="1253016836" value="" visible="false"/>
<variable ID="2125585743:input file" blockID="2125585743" value="" visible="false"/>
<variable ID="2125585743:Series" blockID="2125585743" value="0" visible="false"/>
<variable ID="1737994194:text" blockID="1737994194" value="Yes" visible="false"/>
<variable ID="552832778:Script" blockID="552832778" value="importClass(Packages.icy.imagej.ImageJUtil)&#10;importClass(Packages.ij.IJ)&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus = ImageJUtil.convertToImageJImage(input0, null)&#10;&#9;imp = imPlus&#10;&#9;IJ.run(imp, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp2 = IJ.getImage()&#10;&#9;imPlus2 = imp2&#10;&#9;output0 = ImageJUtil.convertToIcySequence(imPlus2,null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output0=input0&#10;}&#10;&#10;if (input2==&quot;Yes&quot;){&#10;&#9;imPlus1 = ImageJUtil.convertToImageJImage(input1, null)&#10;&#9;imp1 = imPlus1&#10;&#9;IJ.run(imp1, &quot;Kill Borders&quot;, &quot;&quot;)&#10;&#9;imp3 = IJ.getImage()&#10;&#9;imPlus3 = imp3&#10;&#9;output1 = ImageJUtil.convertToIcySequence(imPlus3, null)&#10;&#9;IJ.run(&quot;Close All&quot;, &quot;&quot;)&#10;} else{&#10;&#9;output1=input1&#10;}" visible="false"/>
<variable ID="552832778:Add Input" blockID="552832778" value="2" visible="false"/>
<variable ID="552832778:Add output" blockID="552832778" value="1" visible="false"/>
<variable ID="552832778:input0" blockID="552832778" value="" visible="false"/>
<variable ID="552832778:994935348" blockID="552832778" value="" visible="false"/>
<variable ID="552832778:1374274848" blockID="552832778" value="" visible="false"/>
<variable ID="1656865419:input sequence" blockID="1656865419" value="No Sequence" visible="false"/>
<variable ID="1656865419:extract mode" blockID="1656865419" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="1656865419:value" blockID="1656865419" value="0.0" visible="false"/>
<variable ID="1379183046:input file" blockID="1379183046" value="" visible="false"/>
<variable ID="1379183046:remove ext." blockID="1379183046" value="false" visible="false"/>
<variable ID="1379183046:suffix" blockID="1379183046" value="\Results2.xlsx" visible="false"/>
<variable ID="107669387:input sequence" blockID="107669387" value="No Sequence" visible="false"/>
<variable ID="107669387:extract mode" blockID="107669387" value="ALL_LABELS_VS_BACKGROUND" visible="false"/>
<variable ID="107669387:value" blockID="107669387" value="0.0" visible="false"/>
<variable ID="242607300:roi" blockID="242607300" value="No ROI" visible="false"/>
<variable ID="242607300:minSize" blockID="242607300" value="0.0" visible="false"/>
<variable ID="242607300:maxSize" blockID="242607300" value="1.0E10" visible="false"/>
<variable ID="242607300:incBorder" blockID="242607300" value="false" visible="false"/>
<variable ID="658085365:roi" blockID="658085365" value="No ROI" visible="false"/>
<variable ID="658085365:minSize" blockID="658085365" value="0.0" visible="false"/>
<variable ID="658085365:maxSize" blockID="658085365" value="1.0E10" visible="false"/>
<variable ID="658085365:incBorder" blockID="658085365" value="false" visible="false"/>
<variable ID="1847339580:integer" blockID="1847339580" value="0" visible="false"/>
<variable ID="1233319162:object" blockID="1233319162" value="" visible="false"/>
<variable ID="1984604003:object" blockID="1984604003" value="" visible="false"/>
<variable ID="1390362133:object" blockID="1390362133" value="" visible="false"/>
<variable ID="828237590:List of ROI" blockID="828237590" value="No ROI" visible="false"/>
<variable ID="1014712228:Script" blockID="1014712228" value="importClass(Packages.icy.roi.ROI2DArea)&#10;importClass(Packages.icy.roi.ROIUtil)&#10;&#10;seq = input0&#10;seq.removeAllROI()&#10;name1 = seq.getName()&#10;n = name1.lastIndexOf(&quot;.&quot;)&#10;&#10;if (n==-1){&#10;&#9;title=name1&#10;}else{&#10;&#9;title = name1.substring(0, n)&#10;}&#10;&#10;output1 = []&#10;output2 = []&#10;&#10;for (i=0; i&lt;input1.length; i++){&#10;&#9;roi = input1[i]&#10;&#9;roi.setName(title + &quot;_&quot; + input3 + &quot;_&quot; + i)&#10;&#9;roi.setShowName(true)&#10;&#9;output1[i]=input1[i]&#10;&#9;roi3 = new ROI2DArea()&#10;&#9;roi3.setName(&quot;Empty ROI&quot;)&#10;&#9;for (j=0; j&lt;input2.length; j++){&#10;        &#9;roi2 = input2[j]&#10;&#9;&#9;if (roi2.contains(roi)){&#10;&#9;&#9;&#9;roi3.remove()&#10;&#9;&#9;&#9;roi3 = ROIUtil.getSubtraction(roi2, roi)&#10;&#9;&#9;&#9;roi3.setName(title + &quot;_&quot; + input4 + &quot;_&quot; + i)&#10;&#9;&#9;&#9;roi3.setShowName(true)&#10;&#9;&#9;} &#10;&#9;}&#10;&#9;output2[i] = roi3&#10;}" visible="false"/>
<variable ID="1014712228:Add Input" blockID="1014712228" value="4" visible="false"/>
<variable ID="1014712228:Add output" blockID="1014712228" value="2" visible="false"/>
<variable ID="1014712228:input0" blockID="1014712228" value="" visible="false"/>
<variable ID="1014712228:59763956" blockID="1014712228" value="" visible="false"/>
<variable ID="1014712228:624561987" blockID="1014712228" value="" visible="false"/>
<variable ID="1014712228:752045371" blockID="1014712228" value="" visible="false"/>
<variable ID="1014712228:796410851" blockID="1014712228" value="" visible="false"/>
<variable ID="508551344:Script" blockID="508551344" value="importClass(Packages.org.python.core.PyXRange$xrange___getitem___exposer)&#10;importClass(Packages.icy.roi.ROIDescriptor)&#10;importClass(Packages.icy.util.DateUtil)&#10;importClass(Packages.icy.math.DataIteratorMath)&#10;importClass(Packages.icy.sequence.SequenceDataIterator)&#10;importClass(Packages.plugins.adufour.blocks.tools.io.WorkbookToFile)&#10;importClass(Packages.plugins.adufour.workbooks.Workbooks)&#10;importClass(Packages.plugins.adufour.workbooks.IcySpreadSheet)&#10;importClass(Packages.java.awt.Color)&#10;&#10;date = DateUtil.now(&quot;yyyy.MM.dd 'at' hh:mm:ss z&quot;)&#10;&#10;path = input1.getAbsolutePath()&#10;&#10;try{&#10;&#9;wb=Workbooks.openWorkbook(input1)&#10;}catch(IllegalArgumentException){&#10;&#9;wb = Workbooks.createEmptyWorkbook(Workbooks.WorkbookFormat.XLSX)&#10;}&#10;&#10;ws = Workbooks.getSheet(wb, &quot;Individual cell informations&quot;)&#10;ws2 = Workbooks.getSheet(wb, &quot;Image information&quot;)&#10;&#10;ws.setValue(0, 0, date)&#10;ws2.setValue(0, 0, date)&#10;&#10;ws.setRow(1, [&quot;Nucleus ROI ID&quot;, &quot;ROI X position&quot;, &quot;ROI Y position&quot;, &#10;&quot;Nuclear intensity&quot;,&quot;Cytoplasm ROI ID&quot;,&quot;ROI X position&quot;,&quot;ROI Y position&quot;,&#10;&quot;Cytoplasmic intensity&quot;,&quot;% Nucleus&quot;,&quot;% Cytoplasm&quot;])&#10;&#10;ws2.setRow(1, [&quot;Image&quot;,&quot;% Nucleus&quot;,&quot;% Cytoplasm&quot;])&#10;&#10;ws.setFillColor(1, 0, Color.lightGray)&#10;ws.setFillColor(1, 1, Color.lightGray)&#10;ws.setFillColor(1, 2, Color.lightGray)&#10;ws.setFillColor(1, 3, Color.lightGray)&#10;ws.setFillColor(1, 4, Color.lightGray)&#10;ws.setFillColor(1, 5, Color.lightGray)&#10;ws.setFillColor(1, 6, Color.lightGray)&#10;ws.setFillColor(1, 7, Color.lightGray)&#10;ws.setFillColor(1, 8, Color.lightGray)&#10;ws.setFillColor(1, 9, Color.lightGray)&#10;&#10;ws2.setFillColor(1, 0, Color.lightGray)&#10;ws2.setFillColor(1, 1, Color.lightGray)&#10;ws2.setFillColor(1, 2, Color.lightGray)&#10;&#10;name = input0.getName()&#10;n = name.indexOf(&quot;.&quot;)&#10;if (n==-1){&#10;&#9;name2=name&#10;}else{&#10;&#9;name2 = name.substring(0, n)&#10;}&#10;&#10;row = ws.getNumberOfRows()&#10;&#10;var Sumnucleus = 0&#10;var Sumcyto = 0&#10;for (i=0; i&lt;input2.length; i++){&#10;&#9;var sum=0&#10;&#9;var sum2=0&#10;&#9;roi = input2[i]&#10;&#9;input0.addROI(roi)&#10;&#9;it = new SequenceDataIterator(input0, roi, false)&#10;&#9;Sumpixels = DataIteratorMath.sum(it)&#10;&#9;sum = sum+Sumpixels&#10;&#9;ws.setValue(i+row, 0, roi.getName())&#10;&#9;ws.setValue(i+row, 3, sum)&#9;&#10;&#9;Sumnucleus = Sumnucleus + Sumpixels&#10;&#9;&#10;&#9;roi2 = input3[i]&#10;&#9;input0.addROI(roi2)&#10;&#9;it2 = new SequenceDataIterator(input0, roi2, false)&#10;&#9;Sumpixels2 = DataIteratorMath.sum(it2)&#10;&#9;sum2=sum2+Sumpixels2&#10;&#9;ws.setValue(i+row, 4, roi2.getName())&#10;&#9;ws.setValue(i+row, 7, sum2)&#10;&#9;Sumcyto = Sumcyto + Sumpixels2&#10;&#9;rationuc1 = (Sumpixels*100)/(Sumpixels+Sumpixels2)&#10;&#9;ratiocyto1 = (Sumpixels2*100)/(Sumpixels+Sumpixels2)&#10;&#9;ws.setValue(i+row, 8, rationuc1)&#10;&#9;ws.setValue(i+row, 9, ratiocyto1)&#10;&#10;&#9;X = ROIDescriptor.computeDescriptor(&quot;Size X&quot;, roi, input0)&#10;&#9;Y = ROIDescriptor.computeDescriptor(&quot;Size Y&quot;, roi, input0)&#10;&#9;X1 = ROIDescriptor.computeDescriptor(&quot;Size X&quot;, roi2, input0)&#10;&#9;Y1 = ROIDescriptor.computeDescriptor(&quot;Size Y&quot;, roi2, input0)&#10;&#9;ws.setValue(i+row, 1, X)&#10;&#9;ws.setValue(i+row, 2, Y)&#10;&#9;ws.setValue(i+row, 5, X1)&#10;&#9;ws.setValue(i+row, 6, Y1)&#10;} &#10;rationuc = (Sumnucleus*100)/(Sumnucleus+Sumcyto)&#10;ratiocyto = (Sumcyto*100)/(Sumnucleus+Sumcyto)&#10;ws2.setValue(input4+2, 1, rationuc)&#10;ws2.setValue(input4+2, 2, ratiocyto)&#10;ws2.setValue(input4+2, 0, name2)&#10;&#10;WorkbookToFile.saveAsSpreadSheet(wb, path)&#10;output0 = input0" visible="false"/>
<variable ID="508551344:Add Input" blockID="508551344" value="4" visible="false"/>
<variable ID="508551344:Add output" blockID="508551344" value="0" visible="false"/>
<variable ID="508551344:input0" blockID="508551344" value="" visible="false"/>
<variable ID="508551344:360527544" blockID="508551344" value="" visible="false"/>
<variable ID="508551344:231912541" blockID="508551344" value="" visible="false"/>
<variable ID="508551344:1068069779" blockID="508551344" value="" visible="false"/>
<variable ID="508551344:1296243043" blockID="508551344" value="" visible="false"/>
<variable ID="571402537:object" blockID="571402537" value="" visible="false"/>
</input>
<output>
<variable ID="iteration" blockID="19121745" visible="true"/>
<variable ID="Sequence" blockID="19121745" visible="true"/>
<variable ID="1281731181:extracted" blockID="1281731181" visible="false"/>
<variable ID="34473109:output0" blockID="34473109" visible="false"/>
<variable ID="34473109:200028391" blockID="34473109" visible="false"/>
<variable ID="1509339533:Folder" blockID="1509339533" visible="false"/>
<variable ID="792719025:output file" blockID="792719025" visible="false"/>
<variable ID="1383056525:sequence" blockID="1383056525" visible="false"/>
<variable ID="1253016836:output file" blockID="1253016836" visible="false"/>
<variable ID="2125585743:sequence" blockID="2125585743" visible="false"/>
<variable ID="552832778:output0" blockID="552832778" visible="false"/>
<variable ID="552832778:1764712473" blockID="552832778" visible="false"/>
<variable ID="1656865419:ROI" blockID="1656865419" visible="false"/>
<variable ID="1379183046:output file" blockID="1379183046" visible="false"/>
<variable ID="107669387:ROI" blockID="107669387" visible="false"/>
<variable ID="242607300:out" blockID="242607300" visible="false"/>
<variable ID="658085365:out" blockID="658085365" visible="false"/>
<variable ID="828237590:List of hole-filled ROI" blockID="828237590" visible="false"/>
<variable ID="1014712228:output0" blockID="1014712228" visible="false"/>
<variable ID="1014712228:949441859" blockID="1014712228" visible="false"/>
<variable ID="1014712228:1858819724" blockID="1014712228" visible="false"/>
<variable ID="508551344:output0" blockID="508551344" visible="false"/>
</output>
</variables>
</workflow>
</blocks>
<links>
<link dstBlockID="388466965" dstVarID="folder" srcBlockID="686286284" srcVarID="output0" srcVarType="java.io.File"/>
<link dstBlockID="1227986369" dstVarID="folder" srcBlockID="686286284" srcVarID="output0" srcVarType="java.io.File"/>
</links>
</protocol>
