(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 11.2' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] NotebookDataLength[ 10244315, 211182] NotebookOptionsPosition[ 10036205, 208178] NotebookOutlinePosition[ 10036549, 208193] CellTagsIndexPosition[ 10036506, 208190] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["Initialize", "Chapter", CellChangeTimes->{{3.751839082772438*^9, 3.7518390846956425`*^9}},ExpressionUUID->"6fec2ef9-682e-4614-9459-\ 671f6a316b7c"], Cell[BoxData[{ RowBox[{ RowBox[{"$HistoryLength", "=", "1"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"ClearAll", "[", "\"\\"", "]"}], ";"}], "\n", RowBox[{ RowBox[{"Off", "[", RowBox[{ RowBox[{"General", "::", "spell"}], ",", " ", RowBox[{"General", "::", "spell1"}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Needs", "[", "\"\\"", "]"}], ";"}]}], "Input", CellChangeTimes->{{3.642167939244282*^9, 3.6421679399873247`*^9}, { 3.6514954254104395`*^9, 3.65149564868221*^9}, {3.6514957496829867`*^9, 3.651495786850113*^9}, {3.6514985885093584`*^9, 3.6514986184050684`*^9}, { 3.651520636239416*^9, 3.651520636918455*^9}, {3.714998406639521*^9, 3.714998408417136*^9}},ExpressionUUID->"abbec2e0-bed2-4925-aa00-\ a359a0cf67e7"] }, Closed]], Cell[CellGroupData[{ Cell["Functions", "Chapter", CellChangeTimes->{{3.7518390896952677`*^9, 3.751839090907285*^9}},ExpressionUUID->"48ea6d25-ca0a-4751-b55c-\ 8e64dee6bdec"], Cell[CellGroupData[{ Cell["ImgCoord2DataCoord (integer)", "Subsection", CellChangeTimes->{{3.715707646859561*^9, 3.7157076885559464`*^9}, { 3.7157157411215267`*^9, 3.715715743770678*^9}},ExpressionUUID->"e7a24bfa-3465-4b7f-8a90-\ b760d4feac5f"], Cell[BoxData[ RowBox[{ RowBox[{"Img2DataCoord", "[", RowBox[{"imageSize_", ",", "coordinate_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"#", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", RowBox[{"#", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], "}"}], "&"}], "@", RowBox[{"Abs", "@", RowBox[{"(", RowBox[{ RowBox[{"{", RowBox[{"0", ",", RowBox[{ RowBox[{ "imageSize", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "+", "1"}]}], "}"}], "-", RowBox[{"Ceiling", "@", "coordinate"}]}], ")"}]}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.71570769159112*^9, 3.715707770748647*^9}, { 3.7157078970378704`*^9, 3.7157079243804345`*^9}, {3.7157079962525454`*^9, 3.7157079981646547`*^9}},ExpressionUUID->"81b987d2-8239-4597-add4-\ c6e712459520"] }, Closed]], Cell[CellGroupData[{ Cell["BandPass", "Subsection", CellChangeTimes->{{3.5781169365680165`*^9, 3.57811693907802*^9}},ExpressionUUID->"39dea4ed-d2ba-4a75-9a44-\ 7b9bab888653"], Cell[BoxData[ RowBox[{ RowBox[{"BandPass", "[", RowBox[{"img_", ",", RowBox[{"{", RowBox[{"lo_", ",", "hi_"}], "}"}]}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"imgb", ",", "imgc"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"imgb", "=", RowBox[{"ImageConvolve", "[", RowBox[{"img", ",", RowBox[{"GaussianMatrix", "[", RowBox[{"{", RowBox[{"hi", ",", "lo"}], "}"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"imgc", "=", RowBox[{"ImageConvolve", "[", RowBox[{"img", ",", FractionBox[ RowBox[{"BoxMatrix", "[", "hi", "]"}], SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "hi"}], "+", "1"}], ")"}], "2"]]}], "]"}]}], ";"}], "*)"}], "\[IndentingNewLine]", RowBox[{"imgc", "=", RowBox[{"ImageConvolve", "[", RowBox[{"img", ",", FractionBox[ RowBox[{"DiskMatrix", "[", "hi", "]"}], RowBox[{"Plus", "@@", RowBox[{"Plus", "@@", RowBox[{"DiskMatrix", "[", "hi", "]"}]}]}]]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"ImageSubtract", "[", RowBox[{"imgb", ",", "imgc"}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.5750965858018923`*^9, 3.5750966952420454`*^9}, { 3.5751516881187415`*^9, 3.5751517415788164`*^9}, {3.5787952659665294`*^9, 3.578795266902531*^9}},ExpressionUUID->"2a1559b6-fa93-4741-9780-\ 05d92d9333ff"], Cell[BoxData[ RowBox[{"(*", RowBox[{ RowBox[{"BandPass", "[", RowBox[{ GraphicsBox[ TagBox[RasterBox[CompressedData[" 1:eJxc3XezbVWZx/uuui+io0gDksydg6STz9777JM5gKG77aBtEyQniYIoAqIe lCgoSUREBbSRjKKAWTF29T/9Su73jk/NUdRdVXvV2mvNOeYIz3jC7wnjz99/ 1p73/z9/8Ad/cH9/z/f3/33+wAc+8O53v/vAgQObN2/etm3bCSecsL6+vmfP nu3bt//DP/zDysrKe9/73r7ZuHHj2trarl27Nm3atGHDhr//+7/fO179dNxx x/Xe59NOO211dfVtb3tbt//zP//zSSed9B//8R99v2XLFld2++mnn/5v//Zv Pah23ve+95188smnnHJKT+/9gx/8YP92TQ/dunVr19SHPmt8586d28ernvzd 3/1dV9bCvn376nAPqg9d2UDqZN3up63j1ZVvfetb+6kO++aYY47p167/x3/8 x/6t5R07duj8/v37Deev/uqvukafu/c973lPD2pQJqfHdW/TVeN90+P0ttt7 r/8nnnhiw+knw6xBs6fPW8br/e9/f3cdffTRTVdNnXrqqU3C2Wef3QVNeM9q Jmu55/7rv/5rHWiuuqAu/dM//dN//ud/1o1/+Zd/Oeywwz70oQ8df/zxPVTH +lyzZkmXGku/9mH37t21UyNd0BNruX52V73693//927pifvGq870uRb6vp40 lt67uBt7RO/NVZd1Qe30TW32iDrWhDS0Bl6bzWpzHqmYYTPTq7vqRp3pygbY hx7XKOpnH2q81qLJPnTBnvHq3jkDzUYP6kN9+/CHP2xpoo0eUT+7qwmsV/W/ lntc9/bEuvHOd76zpfyLv/iLFqIvW8Fa7uJm4B/Hq3+7vuWIQrqgVajlvjGf f/u3f9vtXdazaqH3Btt7z6qRHlcHehB66Ke+7Jt+tTTmthb6ppmswf3j1WVN Zt/0XrPd0qh7epNmyK5H0qeMV9c05/W227vsr//6r7vF1oskkGh9bvjdWJt9 rmPd2LzVYFNR+01417dM9arJbFztnT53V//63F0tSq3VeB1u6v7mb/4GgXXj scce23vt13LvNdvy1du62rQ00q7sp4bf7b3vHC+01xBqtrt63DnnnBNDqD/1 Sgt1ssnvS2TTNd1Yby1cPWn4LVMT0vfdMje7nrSzoo3a6VdbpoE0XX2uKWNE aX3oEQje3PZlLAuN1W176l3veldjqTULXcv1oSv7tTXqvX+tXRdH861+1NLn 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 "], {{0, 165}, {192, 0}}, {0, 255}, ColorFunction->RGBColor], BoxForm`ImageTag["Byte", ColorSpace -> "RGB", Interleaving -> True], Selectable->False], BaseStyle->"ImageGraphics", ImageSize->{78., Automatic}, ImageSizeRaw->{192, 165}, PlotRange->{{0, 192}, {0, 165}}], ",", RowBox[{"{", RowBox[{"1", ",", "12"}], "}"}]}], "]"}], "//", "ImageAdjust"}], "*)"}]], "Input", CellChangeTimes->{{3.575096671242012*^9, 3.575096685632032*^9}, { 3.575151552048551*^9, 3.575151584238596*^9}, {3.5751527213321905`*^9, 3.575152738242214*^9}, {3.5787952704749374`*^9, 3.5787952717229395`*^9}, { 3.648226188532628*^9, 3.6482261920908318`*^9}, {3.648226491268944*^9, 3.648226494211112*^9}, {3.6482313009610424`*^9, 3.6482313029911585`*^9}, { 3.6482314723518453`*^9, 3.648231474766983*^9}, {3.6483038949211793`*^9, 3.6483038979373517`*^9}, 3.7197529874318905`*^9, 3.719756532127636*^9},ExpressionUUID->"b3d7ed69-5372-4835-bc67-\ 078d14ff3eea"] }, Closed]], Cell[CellGroupData[{ Cell["MyThresholding", "Subsection", CellChangeTimes->{{3.713117663995283*^9, 3.7131176666674356`*^9}},ExpressionUUID->"2776c939-e305-4666-ad1a-\ 859813cdc3eb"], Cell[BoxData[ RowBox[{ RowBox[{"MyThresholding", "[", RowBox[{"img_", ",", "analysisFolder_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"myImg", "=", "img"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"DynamicModule", "[", RowBox[{ RowBox[{"{", RowBox[{"flagRed", ",", "flagGreen", ",", "flagBlue"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{"checking", " ", "for", " ", "saved", " ", "parameters"}], "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"flagRed", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thred.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thred", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thred.dat\>\""}], ")"}]}]}], ";", RowBox[{ RowBox[{"ToString", "@", "thred"}], "<>", "\"\< Already Saved\>\""}]}], ",", "\"\\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagGreen", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thgreen.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thgreen", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thgreen.dat\>\""}], ")"}]}]}], ";", RowBox[{ RowBox[{"ToString", "@", "thgreen"}], "<>", "\"\< Already Saved\>\""}]}], ",", "\"\\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagBlue", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thblue.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thblue", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thblue.dat\>\""}], ")"}]}]}], ";", RowBox[{ RowBox[{"ToString", "@", "thblue"}], "<>", "\"\< Already Saved\>\""}]}], ",", "\"\\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", "control", "*)"}], "\[IndentingNewLine]", RowBox[{"SetOptions", "[", RowBox[{"Manipulator", ",", RowBox[{"Appearance", "\[Rule]", "\"\\""}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Manipulate", "[", RowBox[{ RowBox[{"Column", "@", RowBox[{"{", RowBox[{ RowBox[{"Show", "[", RowBox[{ RowBox[{ RowBox[{"myImg", "\[LeftDoubleBracket]", RowBox[{"color", ",", "frame"}], "\[RightDoubleBracket]"}], "//", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{"#", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}]}], "]"}], "&"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "300"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"\"\\"", "<>", "flagRed"}], ",", "\[IndentingNewLine]", RowBox[{"\"\\"", "<>", "flagGreen"}], ",", "\[IndentingNewLine]", RowBox[{"\"\\"", "<>", "flagBlue"}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"color", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"1", "\[Rule]", "\"\\""}], ",", RowBox[{"2", "\[Rule]", "\"\\""}], ",", RowBox[{"3", "\[Rule]", "\"\\""}]}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"frame", ",", "1", ",", RowBox[{"Length", "[", RowBox[{ "myImg", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "]"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"threshold1", ",", "0.01"}], "}"}], ",", "0", ",", "0.4", ",", "0.001"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"threshold2", ",", "0.1"}], "}"}], ",", "0", ",", "1", ",", "0.001"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "10"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "1"}], ",", RowBox[{ RowBox[{"thred", "=", RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagRed", "=", RowBox[{ RowBox[{"ToString", "@", "thred"}], "<>", "\"\\""}]}], ";", "\[IndentingNewLine]", RowBox[{"thred", ">>", RowBox[{"analysisFolder", "<>", "\"\<_thred.dat\>\""}]}]}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "2"}], ",", RowBox[{ RowBox[{"thgreen", "=", RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}]}], ";", RowBox[{"flagGreen", "=", RowBox[{ RowBox[{"ToString", "@", "thgreen"}], "<>", "\"\\""}]}], ";", RowBox[{"thgreen", ">>", RowBox[{ "analysisFolder", "<>", "\"\<_thgreen.dat\>\""}]}]}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "3"}], ",", RowBox[{ RowBox[{"thblue", "=", RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}]}], ";", RowBox[{"flagBlue", "=", RowBox[{ RowBox[{"ToString", "@", "thblue"}], "<>", "\"\\""}]}], ";", RowBox[{"thblue", ">>", RowBox[{"analysisFolder", "<>", "\"\<_thblue.dat\>\""}]}]}]}], "]"}], ";"}]}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "5"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "1"}], "&&", RowBox[{"ValueQ", "@", "thred"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}], "=", "thred"}]}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "2"}], "&&", RowBox[{"ValueQ", "@", "thgreen"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}], "=", "thgreen"}]}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "3"}], "&&", RowBox[{"ValueQ", "@", "thblue"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}], "=", "thblue"}]}], "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"ControlPlacement", "\[Rule]", "Left"}]}], "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.71311477549407*^9, 3.713115047105606*^9}, { 3.7131151313864264`*^9, 3.7131151317224455`*^9}, {3.713115176105984*^9, 3.71311524684203*^9}, {3.7131152824100647`*^9, 3.71311533880329*^9}, { 3.7131153694430428`*^9, 3.7131153772424884`*^9}, {3.713115557426794*^9, 3.7131155639231663`*^9}, {3.7131156055385466`*^9, 3.7131156140430326`*^9}, {3.713115714765794*^9, 3.713115717363942*^9}, { 3.7131157802195377`*^9, 3.7131158982832904`*^9}, {3.7131159299871035`*^9, 3.713115946627055*^9}, {3.7131160469557943`*^9, 3.7131160525641146`*^9}, { 3.7131170980459127`*^9, 3.7131171494368525`*^9}, {3.7131172670045767`*^9, 3.7131172728449106`*^9}, {3.7131173345974426`*^9, 3.7131174051574783`*^9}, 3.7131174585005293`*^9, {3.7131184818940644`*^9, 3.7131185203572645`*^9}, { 3.7131191217586627`*^9, 3.71311913098219*^9}, {3.7131191695663967`*^9, 3.7131191793019543`*^9}, {3.7131192385663433`*^9, 3.713119240806472*^9}, { 3.713120509503037*^9, 3.7131205660152693`*^9}, {3.7131232576092196`*^9, 3.7131232793214617`*^9}, {3.7131235614495983`*^9, 3.713123571710185*^9}, { 3.7131826018405156`*^9, 3.713182620017555*^9}, {3.7166680370076284`*^9, 3.716668098192128*^9}, {3.716668276360319*^9, 3.7166683499365273`*^9}, { 3.7166684302801228`*^9, 3.716668482617116*^9}, {3.716668517240096*^9, 3.7166685530891466`*^9}, 3.7166702604908047`*^9, 3.7169062389820023`*^9, { 3.7174333794424405`*^9, 3.7174333865958495`*^9}, {3.7179422555525503`*^9, 3.7179424707438583`*^9}, 3.7179430071455383`*^9, {3.72798411798842*^9, 3.727984118635457*^9}},ExpressionUUID->"8d249bb1-ca24-44ee-94b9-\ 5cb06cf27c58"], Cell[BoxData[ RowBox[{ RowBox[{"MyThresholding3D", "[", RowBox[{"img_", ",", "analysisFolder_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"myImg", "=", "img"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"DynamicModule", "[", RowBox[{ RowBox[{"{", RowBox[{"flagRed", ",", "flagGreen", ",", "flagBlue3D"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{"checking", " ", "for", " ", "saved", " ", "parameters"}], "*)"}], "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"flagRed", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thred.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thred", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thred.dat\>\""}], ")"}]}]}], ";", RowBox[{ RowBox[{"ToString", "@", "thred"}], "<>", "\"\< Already Saved\>\""}]}], ",", "\"\\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagGreen", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thgreen.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thgreen", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thgreen.dat\>\""}], ")"}]}]}], ";", RowBox[{ RowBox[{"ToString", "@", "thgreen"}], "<>", "\"\< Already Saved\>\""}]}], ",", "\"\\""}], "]"}]}], ";"}], "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"flagBlue3D", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thblue3D.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thblue3D", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thblue3D.dat\>\""}], ")"}]}]}], ";", RowBox[{ RowBox[{"ToString", "@", "thblue3D"}], "<>", "\"\< Already Saved\>\""}]}], ",", "\"\\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", "control", "*)"}], "\[IndentingNewLine]", RowBox[{"SetOptions", "[", RowBox[{"Manipulator", ",", RowBox[{"Appearance", "\[Rule]", "\"\\""}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Manipulate", "[", RowBox[{ RowBox[{"Column", "@", RowBox[{"{", RowBox[{ RowBox[{"Show", "[", RowBox[{ RowBox[{ RowBox[{"myImg", "\[LeftDoubleBracket]", RowBox[{"frame", ",", "z"}], "\[RightDoubleBracket]"}], "//", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{"#", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}]}], "]"}], "&"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "300"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"\"\\"", "<>", "flagRed"}], ",", "\[IndentingNewLine]", RowBox[{"\"\\"", "<>", "flagGreen"}], ","}], "*)"}], "\[IndentingNewLine]", RowBox[{"\"\\"", "<>", "flagBlue3D"}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"frame", ",", "1", ",", RowBox[{"Length", "@", "myImg"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"z", ",", RowBox[{"Round", "@", RowBox[{"(", RowBox[{ RowBox[{"Length", "@", RowBox[{ "myImg", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], "/", "2"}], ")"}]}]}], "}"}], ",", "1", ",", RowBox[{"Length", "@", RowBox[{ "myImg", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"threshold1", ",", "0.01"}], "}"}], ",", "0", ",", "0.4", ",", "0.001"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"threshold2", ",", "0.1"}], "}"}], ",", "0", ",", "0.4", ",", "0.001"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "10"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "1"}], ",", RowBox[{ RowBox[{"thred", "=", RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagRed", "=", RowBox[{ RowBox[{"ToString", "@", "thred"}], "<>", "\"\\""}]}], ";", "\[IndentingNewLine]", RowBox[{"thred", ">>", RowBox[{"analysisFolder", "<>", "\"\<_thred.dat\>\""}]}]}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "2"}], ",", RowBox[{ RowBox[{"thgreen", "=", RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}]}], ";", RowBox[{"flagGreen", "=", RowBox[{ RowBox[{"ToString", "@", "thgreen"}], "<>", "\"\\""}]}], ";", RowBox[{"thgreen", ">>", RowBox[{ "analysisFolder", "<>", "\"\<_thgreen.dat\>\""}]}]}]}], "]"}], ";"}], "*)"}], "\[IndentingNewLine]", RowBox[{"(*", RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "3"}], ","}]}], "*)"}], RowBox[{ RowBox[{"thblue3D", "=", RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}]}], ";", RowBox[{"flagBlue3D", "=", RowBox[{ RowBox[{"ToString", "@", "thblue3D"}], "<>", "\"\< Saved\>\""}]}], ";", RowBox[{"thblue3D", ">>", RowBox[{"analysisFolder", "<>", "\"\<_thblue3D.dat\>\""}]}], RowBox[{"(*", "]", "*)"}], ";"}]}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "5"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", RowBox[{"(*", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "1"}], "&&", RowBox[{"ValueQ", "@", "thred"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}], "=", "thred"}]}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "2"}], "&&", RowBox[{"ValueQ", "@", "thgreen"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}], "=", "thgreen"}]}], "]"}], ";"}], "*)"}], RowBox[{"If", "[", RowBox[{"(*", RowBox[{ RowBox[{"color", "\[Equal]", "3"}], "&&"}], "*)"}], RowBox[{ RowBox[{"ValueQ", "@", "thblue3D"}], ",", RowBox[{ RowBox[{"{", RowBox[{"threshold1", ",", "threshold2"}], "}"}], "=", "thblue3D"}]}], "]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"ControlPlacement", "\[Rule]", "Left"}]}], "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.7185591101571407`*^9, 3.7185593449895725`*^9}, { 3.7186414361979213`*^9, 3.7186414613663607`*^9}, {3.7186417151428757`*^9, 3.7186417163909473`*^9}},ExpressionUUID->"c1ba7efa-7aa7-4f7a-9eb9-\ c93a5d32a923"] }, Closed]], Cell[CellGroupData[{ Cell["MyBinarization", "Subsection", CellChangeTimes->{{3.71311410796889*^9, 3.7131141110090637`*^9}},ExpressionUUID->"db36b7ff-8548-412b-806c-\ 1c47f20f7fda"], Cell[BoxData[ RowBox[{ RowBox[{"MyBinarization", "[", RowBox[{"img_", ",", "analysisFolder_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"myImg", "=", "img"}], ",", "mask", ",", "threshold1"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"mask", "=", RowBox[{"Import", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_mask.tif\>\""}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"threshold1", "=", RowBox[{"Get", "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"analysisFolder", "<>", "#"}], "&"}], "/@", RowBox[{"{", RowBox[{ "\"\<_thred.dat\>\"", ",", "\"\<_thgreen.dat\>\"", ",", "\"\<_thblue.dat\>\""}], "}"}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"DynamicModule", "[", RowBox[{ RowBox[{"{", RowBox[{ "flagRed", ",", "flagGreen", ",", "flagBlue", ",", "max", ",", "imga", ",", "imgb", ",", "color", ",", "frame", ",", "threshold", ",", "lowpass", ",", "hipass", ",", "lo", ",", "hi", ",", "myOutline", ",", "myFill"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{"checking", " ", "for", " ", "saved", " ", "parameters"}], "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"flagRed", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thred2.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thredAll", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thred2.dat\>\""}], ")"}]}]}], ";", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thredAll"}], ",", "\"\\""}], "]"}]}], ",", RowBox[{"{", "\"\\"", "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagGreen", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thgreen2.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thgreenAll", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thgreen2.dat\>\""}], ")"}]}]}], ";", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thgreenAll"}], ",", "\"\\""}], "]"}]}], ",", RowBox[{"{", "\"\\"", "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagBlue", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thblue2.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thblueAll", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thblue2.dat\>\""}], ")"}]}]}], ";", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thblueAll"}], ",", "\"\\""}], "]"}]}], ",", RowBox[{"{", "\"\\"", "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", "control", "*)"}], "\[IndentingNewLine]", RowBox[{"SetOptions", "[", RowBox[{"Manipulator", ",", RowBox[{"Appearance", "\[Rule]", "\"\\""}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Manipulate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"imga", "=", RowBox[{"ImageAdjust", "[", RowBox[{ RowBox[{"myImg", "\[LeftDoubleBracket]", RowBox[{"color", ",", "frame"}], "\[RightDoubleBracket]"}], ",", " ", RowBox[{"{", RowBox[{"0", ",", " ", "0", ",", " ", "1"}], "}"}], ",", RowBox[{ "threshold1", "\[LeftDoubleBracket]", "color", "\[RightDoubleBracket]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"max", "=", RowBox[{ RowBox[{ RowBox[{"BandPass", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{ RowBox[{"myImg", "\[LeftDoubleBracket]", RowBox[{"color", ",", "1"}], "\[RightDoubleBracket]"}], ",", " ", RowBox[{"{", RowBox[{"0", ",", " ", "0", ",", " ", "1"}], "}"}], ",", RowBox[{ "threshold1", "\[LeftDoubleBracket]", "color", "\[RightDoubleBracket]"}]}], "]"}], ",", "mask"}], "]"}], ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], "]"}], "//", "ImageData"}], "//", "Max"}]}], ";", "\[IndentingNewLine]", RowBox[{"imgb", "=", RowBox[{"SelectComponents", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{ RowBox[{"Binarize", "[", RowBox[{ RowBox[{"BandPass", "[", RowBox[{"imga", ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], "]"}], ",", RowBox[{"max", " ", "threshold"}]}], "]"}], ",", "mask"}], "]"}], ",", "\"\\"", ",", RowBox[{ RowBox[{"lo", "<", "#", "<", "hi"}], "&"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Column", "@", RowBox[{"{", RowBox[{ RowBox[{"GraphicsRow", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Show", "[", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"myOutline", "\[Equal]", "True"}], "&&", RowBox[{"myFill", "\[Equal]", "False"}]}], ",", RowBox[{"{", RowBox[{"imga", ",", RowBox[{ RowBox[{ RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{"Green", ",", "#"}], "}"}], "]"}], "&"}], "/@", RowBox[{ RowBox[{"(", RowBox[{"ComponentMeasurements", "[", RowBox[{"imgb", ",", "\"\\""}], "]"}], ")"}], "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}]}]}], "}"}], ",", RowBox[{"If", "[", RowBox[{ RowBox[{"myFill", "\[Equal]", "True"}], ",", RowBox[{"{", RowBox[{"imga", ",", RowBox[{ RowBox[{ RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{"Green", ",", RowBox[{"Polygon", "@", "#"}]}], "}"}], "]"}], "&"}], "/@", RowBox[{ RowBox[{"(", RowBox[{"ComponentMeasurements", "[", RowBox[{"imgb", ",", "\"\\""}], "]"}], ")"}], "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", "1", ",", "1"}], "\[RightDoubleBracket]"}]}]}], "}"}], ",", "imga"}], "]"}]}], "]"}], "]"}], ",", "imgb"}], "}"}], ",", RowBox[{"ImageSize", "\[Rule]", "600"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"TableForm", "@", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "\"\<\>\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Prepend", "[", RowBox[{"flagRed", ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Prepend", "[", RowBox[{"flagGreen", ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Prepend", "[", RowBox[{"flagBlue", ",", "\"\\""}], "]"}]}], "}"}]}]}], "}"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"color", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"1", "\[Rule]", "\"\\""}], ",", RowBox[{"2", "\[Rule]", "\"\\""}], ",", RowBox[{"3", "\[Rule]", "\"\\""}]}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"frame", ",", "1", ",", RowBox[{"Length", "@", RowBox[{ "myImg", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"threshold", ",", "0.1"}], "}"}], ",", "0", ",", "1", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"lowpass", ",", "1"}], "}"}], ",", "0", ",", "10", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"hipass", ",", "7"}], "}"}], ",", "0", ",", "10", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"lo", ",", "5"}], "}"}], ",", "0", ",", "20", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"hi", ",", "100"}], "}"}], ",", "10", ",", "1000", ",", "1"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "10"}], ",", "\[IndentingNewLine]", RowBox[{"Row", "@", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Spacer", "@", "5"}], ",", "\"\\"", ",", RowBox[{"Checkbox", "[", RowBox[{"Dynamic", "@", "myOutline"}], "]"}], ",", RowBox[{"Spacer", "@", "10"}], ",", "\"\\"", ",", RowBox[{"Checkbox", "[", RowBox[{"Dynamic", "@", "myFill"}], "]"}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "10"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "1"}], ",", RowBox[{ RowBox[{"thredAll", "=", RowBox[{"{", RowBox[{ RowBox[{"mymaxred", "=", "max"}], ",", RowBox[{"thred2", "=", "threshold"}], ",", RowBox[{"bandpassred", "=", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], ",", RowBox[{"dotsizered", "=", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagRed", "=", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thredAll"}], ",", "\"\\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"thredAll", ">>", RowBox[{ "analysisFolder", "<>", "\"\<_thred2.dat\>\""}]}]}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "2"}], ",", RowBox[{ RowBox[{"thgreenAll", "=", RowBox[{"{", RowBox[{ RowBox[{"mymaxgreen", "=", "max"}], ",", RowBox[{"thgreen2", "=", "threshold"}], ",", RowBox[{"bandpassgreen", "=", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], ",", RowBox[{"dotsizegreen", "=", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}]}], "}"}]}], ";", RowBox[{"flagGreen", "=", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thgreenAll"}], ",", "\"\\""}], "]"}]}], ";", RowBox[{"thgreenAll", ">>", RowBox[{ "analysisFolder", "<>", "\"\<_thgreen2.dat\>\""}]}]}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "3"}], ",", RowBox[{ RowBox[{"thblueAll", "=", RowBox[{"{", RowBox[{ RowBox[{"mymaxblue", "=", "max"}], ",", RowBox[{"thblue2", "=", "threshold"}], ",", RowBox[{"bandpassblue", "=", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], ",", RowBox[{"dotsizeblue", "=", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagBlue", "=", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thblueAll"}], ",", "\"\\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"thblueAll", ">>", RowBox[{ "analysisFolder", "<>", "\"\<_thblue2.dat\>\""}]}]}]}], "]"}], ";"}]}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "10"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "1"}], "&&", RowBox[{"ValueQ", "@", "thredAll"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"max", ",", "threshold", ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}], ",", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}], "}"}], "=", "thredAll"}]}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "2"}], "&&", RowBox[{"ValueQ", "@", "thgreenAll"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"max", ",", "threshold", ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}], ",", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}], "}"}], "=", "thgreenAll"}]}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "3"}], "&&", RowBox[{"ValueQ", "@", "thblueAll"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"max", ",", "threshold", ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}], ",", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}], "}"}], "=", "thblueAll"}]}], "]"}]}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}]}], "]"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.7131841049224873`*^9, 3.7131841932585397`*^9}, { 3.7131843328755255`*^9, 3.713184435515396*^9}, {3.713184478715867*^9, 3.7131845394673414`*^9}, {3.713184625946288*^9, 3.7131846392040462`*^9}, { 3.7131847116601906`*^9, 3.7131847117871976`*^9}, {3.713186711469573*^9, 3.7131867951253576`*^9}, {3.713186834756624*^9, 3.7131869018374615`*^9}, { 3.713187223207843*^9, 3.713187224589922*^9}, {3.7131872578378234`*^9, 3.7131873188943157`*^9}, {3.7131873600926723`*^9, 3.7131873820939302`*^9}, {3.713187748766903*^9, 3.7131877488939104`*^9}, 3.713187904446807*^9, {3.713188219446824*^9, 3.713188279646268*^9}, 3.7131883351344414`*^9, {3.7131888887031035`*^9, 3.713188927351314*^9}, { 3.7131889758730893`*^9, 3.713188982431464*^9}, {3.7166686764812045`*^9, 3.7166688942106576`*^9}, 3.7166702543794546`*^9, {3.716735928614806*^9, 3.716735988719244*^9}, {3.716736085134759*^9, 3.7167360934152327`*^9}, { 3.7167361571758795`*^9, 3.7167362008393764`*^9}, {3.716906052159316*^9, 3.7169060532543793`*^9}, {3.7174333178519173`*^9, 3.71743334342038*^9}, 3.717433388805976*^9, {3.7179430208503227`*^9, 3.717943109562396*^9}, 3.717943226355077*^9, {3.717975480387902*^9, 3.7179754811719465`*^9}, { 3.71864149614635*^9, 3.7186415213427916`*^9}, {3.7186415716556687`*^9, 3.71864161258701*^9}, {3.718643873009299*^9, 3.718643887489127*^9}, 3.719275482931738*^9, 3.7197594166796227`*^9, {3.7197704322556777`*^9, 3.719770487855858*^9}, {3.719770576023901*^9, 3.7197705867205124`*^9}, { 3.71977073616006*^9, 3.7197707689039326`*^9}, {3.7197708854726*^9, 3.7197709295771227`*^9}, {3.7197710785686445`*^9, 3.7197712434890776`*^9}, {3.719771354449424*^9, 3.719771419025118*^9}, { 3.719771461363539*^9, 3.7197714856339273`*^9}, {3.7197715282983675`*^9, 3.719771643057932*^9}, {3.7197716903786383`*^9, 3.7197717895703115`*^9}, 3.719772309700061*^9, {3.7197727494912157`*^9, 3.719772755139539*^9}, 3.719772788883469*^9},ExpressionUUID->"40eea718-29a9-4cef-bd99-\ 2c190d05bd7f"], Cell[BoxData[ RowBox[{ RowBox[{"MyBinarization3D", "[", RowBox[{"img_", ",", "analysisFolder_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"myImg", "=", "img"}], ",", "mask", ",", "threshold1"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"mask", "=", RowBox[{"Import", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_mask.tif\>\""}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"threshold1", "=", RowBox[{"Get", "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"analysisFolder", "<>", "#"}], "&"}], "/@", RowBox[{"{", RowBox[{"(*", RowBox[{"\"\<_thred.dat\>\"", ",", "\"\<_thgreen.dat\>\"", ","}], "*)"}], "\"\<_thblue.dat\>\"", "}"}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"DynamicModule", "[", RowBox[{ RowBox[{"{", RowBox[{ "flagRed", ",", "flagGreen", ",", "flagBlue3D", ",", "max", ",", "imgb", ",", "color", ",", "frame", ",", "threshold", ",", "lowpass", ",", "hipass", ",", "lo", ",", "hi"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{"checking", " ", "for", " ", "saved", " ", "parameters"}], "*)"}], "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"flagRed", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thred2.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thredAll", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thred2.dat\>\""}], ")"}]}]}], ";", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thredAll"}], ",", "\"\\""}], "]"}]}], ",", RowBox[{"{", "\"\\"", "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagGreen", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thgreen2.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thgreenAll", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thgreen2.dat\>\""}], ")"}]}]}], ";", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thgreenAll"}], ",", "\"\\""}], "]"}]}], ",", RowBox[{"{", "\"\\"", "}"}]}], "]"}]}], ";"}], "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"flagBlue3D", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"FileExistsQ", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thblue3D2.dat\>\""}], ")"}]}], ",", RowBox[{ RowBox[{"thblue3DAll", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_thblue3D2.dat\>\""}], ")"}]}]}], ";", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thblue3DAll"}], ",", "\"\< Already Saved\>\""}], "]"}]}], ",", RowBox[{"{", "\"\\"", "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"color", "=", "1"}], ";", "\[IndentingNewLine]", RowBox[{"(*", "control", "*)"}], "\[IndentingNewLine]", RowBox[{"SetOptions", "[", RowBox[{"Manipulator", ",", RowBox[{"Appearance", "\[Rule]", "\"\\""}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Manipulate", "[", RowBox[{ RowBox[{ RowBox[{"max", "=", RowBox[{ RowBox[{ RowBox[{"BandPass", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{ RowBox[{"myImg", "\[LeftDoubleBracket]", RowBox[{"1", ",", RowBox[{"Round", "@", RowBox[{"(", RowBox[{ RowBox[{"Length", "@", RowBox[{ "myImg", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], "/", "2"}], ")"}]}]}], "\[RightDoubleBracket]"}], ",", " ", RowBox[{"{", RowBox[{"0", ",", " ", "0", ",", " ", "1"}], "}"}], ",", RowBox[{ "threshold1", "\[LeftDoubleBracket]", "color", "\[RightDoubleBracket]"}]}], "]"}], ",", "mask"}], "]"}], ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], "]"}], "//", "ImageData"}], "//", "Max"}]}], ";", "\[IndentingNewLine]", RowBox[{"imgb", "=", RowBox[{"BandPass", "[", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{ RowBox[{"myImg", "\[LeftDoubleBracket]", RowBox[{"frame", ",", "z"}], "\[RightDoubleBracket]"}], " ", ",", " ", RowBox[{"{", RowBox[{"0", ",", " ", "0", ",", " ", "1"}], "}"}], ",", " ", RowBox[{ "threshold1", "\[LeftDoubleBracket]", "color", "\[RightDoubleBracket]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Column", "@", RowBox[{"{", RowBox[{ RowBox[{"GraphicsRow", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{ RowBox[{"myImg", "\[LeftDoubleBracket]", RowBox[{"frame", ",", "z"}], "\[RightDoubleBracket]"}], ",", " ", RowBox[{"{", RowBox[{"0", ",", " ", "0", ",", " ", "1"}], "}"}], ",", RowBox[{ "threshold1", "\[LeftDoubleBracket]", "color", "\[RightDoubleBracket]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"SelectComponents", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{ RowBox[{"Binarize", "[", RowBox[{"imgb", ",", RowBox[{"max", " ", "threshold"}]}], "]"}], ",", "mask"}], "]"}], ",", "\"\\"", ",", RowBox[{ RowBox[{"lo", "<", "#", "<", "hi"}], "&"}]}], "]"}]}], "}"}], ",", RowBox[{"ImageSize", "\[Rule]", "600"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"TableForm", "@", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "\"\<\>\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"Prepend", "[", RowBox[{"flagRed", ",", "\"\\""}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Prepend", "[", RowBox[{"flagGreen", ",", "\"\\""}], "]"}], ","}], "*)"}], "\[IndentingNewLine]", RowBox[{"Prepend", "[", RowBox[{ "flagBlue3D", ",", "\"\\""}], "]"}]}], "}"}]}]}], "}"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"frame", ",", "1", ",", RowBox[{"Length", "@", "myImg"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"z", ",", RowBox[{"Round", "@", RowBox[{"(", RowBox[{ RowBox[{"Length", "@", RowBox[{ "myImg", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], "/", "2"}], ")"}]}]}], "}"}], ",", "1", ",", RowBox[{"Length", "@", RowBox[{ "myImg", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"threshold", ",", "0.1"}], "}"}], ",", "0", ",", "1", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"lowpass", ",", "1"}], "}"}], ",", "0", ",", "10", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"hipass", ",", "7"}], "}"}], ",", "0", ",", "10", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"lo", ",", "5"}], "}"}], ",", "0", ",", "20", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"hi", ",", "100"}], "}"}], ",", "10", ",", "1000", ",", "1"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "10"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "1"}], ",", RowBox[{ RowBox[{"thredAll", "=", RowBox[{"{", RowBox[{ RowBox[{"mymaxred", "=", "max"}], ",", RowBox[{"thred2", "=", "threshold"}], ",", RowBox[{"bandpassred", "=", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], ",", RowBox[{"dotsizered", "=", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagRed", "=", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thredAll"}], ",", "\"\\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"thredAll", ">>", RowBox[{ "analysisFolder", "<>", "\"\<_thred2.dat\>\""}]}]}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "2"}], ",", RowBox[{ RowBox[{"thgreenAll", "=", RowBox[{"{", RowBox[{ RowBox[{"mymaxgreen", "=", "max"}], ",", RowBox[{"thgreen2", "=", "threshold"}], ",", RowBox[{"bandpassgreen", "=", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], ",", RowBox[{"dotsizegreen", "=", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}]}], "}"}]}], ";", RowBox[{"flagGreen", "=", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thgreenAll"}], ",", "\"\\""}], "]"}]}], ";", RowBox[{"thgreenAll", ">>", RowBox[{ "analysisFolder", "<>", "\"\<_thgreen2.dat\>\""}]}]}]}], "]"}], ";"}], "*)"}], "\[IndentingNewLine]", RowBox[{"(*", RowBox[{"If", "[", RowBox[{ RowBox[{"color", "\[Equal]", "3"}], ","}]}], "*)"}], RowBox[{ RowBox[{"thblue3DAll", "=", RowBox[{"{", RowBox[{ RowBox[{"mymaxblue3D", "=", "max"}], ",", RowBox[{"thblue3D2", "=", "threshold"}], ",", RowBox[{"bandpassblue3D", "=", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}]}], ",", RowBox[{"dotsizeblue3D", "=", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagBlue3D", "=", RowBox[{"Append", "[", RowBox[{ RowBox[{"ToString", "/@", "thblue3DAll"}], ",", "\"\< Saved\>\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"thblue3DAll", ">>", RowBox[{ "analysisFolder", "<>", "\"\<_thblue3D2.dat\>\""}]}]}]}], RowBox[{"(*", RowBox[{"]", ";"}], "*)"}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "10"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", RowBox[{"(*", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "1"}], "&&", RowBox[{"ValueQ", "@", "thredAll"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"max", ",", "threshold", ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}], ",", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}], "}"}], "=", "thredAll"}]}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"color", "\[Equal]", "2"}], "&&", RowBox[{"ValueQ", "@", "thgreenAll"}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"max", ",", "threshold", ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}], ",", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}], "}"}], "=", "thgreenAll"}]}], "]"}], ";"}], "*)"}], RowBox[{"If", "[", RowBox[{"(*", RowBox[{ RowBox[{"color", "\[Equal]", "3"}], "&&"}], "*)"}], RowBox[{ RowBox[{"ValueQ", "@", "thblue3DAll"}], ",", RowBox[{ RowBox[{"{", RowBox[{"max", ",", "threshold", ",", RowBox[{"{", RowBox[{"lowpass", ",", "hipass"}], "}"}], ",", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}], "}"}], "=", "thblue3DAll"}]}], "]"}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}]}], "]"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.7186417253914623`*^9, 3.7186419242398357`*^9}, { 3.71864355709723*^9, 3.7186437180654364`*^9}, {3.7186437815850697`*^9, 3.7186437992340794`*^9}, {3.7186438951775665`*^9, 3.7186438992097974`*^9}, { 3.7186439718829536`*^9, 3.7186439745701075`*^9}},ExpressionUUID->"709c03b2-5b14-436d-b35c-\ c36e1bd70114"] }, Closed]], Cell[CellGroupData[{ Cell["FindParticles", "Subsection", CellChangeTimes->{{3.578116942838025*^9, 3.5781169456080294`*^9}},ExpressionUUID->"e9006813-b9a5-46ac-af36-\ 02da31268556"], Cell[BoxData[ RowBox[{ RowBox[{"FindParticlesWeighted", "[", RowBox[{"img_", ",", RowBox[{"{", RowBox[{"lo_", ",", "hi_"}], "}"}], ",", "max_", ",", "th_", ",", "imgmask_", ",", RowBox[{"{", RowBox[{"small_", ",", "large_"}], "}"}]}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"imgb", ",", "imgc", ",", "pos"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"imgb", "=", RowBox[{"BandPass", "[", RowBox[{"img", ",", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"imgc", "=", RowBox[{"SelectComponents", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{ RowBox[{"imgb", "//", RowBox[{ RowBox[{"Binarize", "[", RowBox[{"#", ",", " ", RowBox[{"max", " ", "th"}]}], "]"}], "&"}]}], ",", "imgmask"}], "]"}], ",", "\"\\"", ",", RowBox[{ RowBox[{"small", "<", "#", "<", "large"}], "&"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"ComponentMeasurements", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{"img", ",", "imgc"}], "]"}], ",", RowBox[{"{", "\"\\"", "}"}]}], "]"}], "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}]}], "\[IndentingNewLine]", RowBox[{"(*", RowBox[{"{", RowBox[{ RowBox[{"Show", "[", RowBox[{"img", ",", RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{"Color", ",", RowBox[{ RowBox[{ RowBox[{"Circle", "[", RowBox[{"#", ",", RowBox[{"hi", " ", "1.5"}]}], "]"}], "&"}], "/@", RowBox[{"(", RowBox[{"pos", "=", RowBox[{ RowBox[{"ComponentMeasurements", "[", RowBox[{"imgc", ",", RowBox[{"{", "\"\\"", "}"}]}], "]"}], "[", RowBox[{"[", RowBox[{"All", ",", "2", ",", "1"}], "]"}], "]"}]}], ")"}]}]}], "}"}], "]"}]}], "]"}], ",", "pos"}], "}"}], "*)"}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.5751527958022947`*^9, 3.5751528802924128`*^9}, { 3.575152925492476*^9, 3.575153061152666*^9}, {3.5751531432227807`*^9, 3.5751531438627815`*^9}, {3.575153188922845*^9, 3.575153245352924*^9}, { 3.5751533274730387`*^9, 3.5751533584830823`*^9}, {3.575153416033163*^9, 3.575153416743164*^9}, {3.575153718293586*^9, 3.5751537187735863`*^9}, { 3.575157436595137*^9, 3.575157459425169*^9}, {3.5751582558262844`*^9, 3.5751582568962855`*^9}, {3.575166234180505*^9, 3.5751662566605363`*^9}, { 3.5752405029781218`*^9, 3.5752405155081396`*^9}, 3.5752409476101503`*^9, { 3.575241075013016*^9, 3.575241093953043*^9}, {3.575241128623091*^9, 3.5752411288630915`*^9}, {3.575241197793188*^9, 3.5752411981431885`*^9}, { 3.5752413495734005`*^9, 3.5752413764734383`*^9}, {3.608917991298159*^9, 3.608917992241254*^9}, {3.6464847677413335`*^9, 3.646484783389229*^9}, { 3.6485836816759624`*^9, 3.648583758596362*^9}, {3.6485838271562834`*^9, 3.6485838425561647`*^9}, {3.648584935277664*^9, 3.648584935773693*^9}, { 3.653239142652603*^9, 3.653239166804985*^9}, {3.653239283964686*^9, 3.6532393084690876`*^9}, {3.6550415999770727`*^9, 3.6550416069970846`*^9}, {3.655041804633832*^9, 3.655041805772634*^9}, { 3.6550418792175627`*^9, 3.6550418826339693`*^9}, {3.655059163882098*^9, 3.655059163986104*^9}, {3.655059211210805*^9, 3.655059211353813*^9}, { 3.6552216016280055`*^9, 3.655221607020314*^9}, {3.6552232897335596`*^9, 3.6552232946458406`*^9}, {3.6552233416135273`*^9, 3.655223392261424*^9}, { 3.6552241750611973`*^9, 3.65522418961403*^9}, {3.6553853018305316`*^9, 3.6553853463590784`*^9}},ExpressionUUID->"faa74f92-f10e-49bc-9e9d-\ cf79e0955382"], Cell[BoxData[ RowBox[{ RowBox[{"FindParticles", "[", RowBox[{"img_", ",", RowBox[{"{", RowBox[{"lo_", ",", "hi_"}], "}"}], ",", "max_", ",", "th_", ",", "imgmask_", ",", RowBox[{"{", RowBox[{"small_", ",", "large_"}], "}"}]}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"imgb", ",", "imgc", ",", "compResults"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"imgb", "=", RowBox[{"BandPass", "[", RowBox[{"img", ",", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"imgc", "=", RowBox[{"SelectComponents", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{ RowBox[{"FillingTransform", "@", RowBox[{"Binarize", "[", RowBox[{"imgb", ",", " ", RowBox[{"max", " ", "th"}]}], "]"}]}], ",", "imgmask"}], "]"}], ",", "\"\\"", ",", RowBox[{ RowBox[{"small", "<", "#", "<", "large"}], "&"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"compResults", "=", RowBox[{"ComponentMeasurements", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{"img", ",", "imgc"}], "]"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"compResults", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.7147583971303506`*^9, 3.714758408167982*^9}, 3.7147584663613105`*^9, {3.714759074449091*^9, 3.7147591860164723`*^9}, { 3.715380673551758*^9, 3.71538067971211*^9}, {3.715434171802683*^9, 3.7154341776260157`*^9}, {3.7157340160817947`*^9, 3.7157340224781604`*^9}, 3.716227279614752*^9, {3.716227323727275*^9, 3.7162273973594866`*^9}, { 3.7162274765670166`*^9, 3.7162275061277075`*^9}, {3.717507076675681*^9, 3.7175070820519886`*^9}, {3.717507117202999*^9, 3.717507123539361*^9}},ExpressionUUID->"c67f288b-089b-4526-8942-\ fab5f3301c1e"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"After", " ", "finding", " ", "particles"}], ",", " ", RowBox[{"add", " ", "track", " ", "number", " ", "as", " ", "0"}], ",", " ", RowBox[{"and", " ", "add", " ", "frame", " ", "number"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"MyParticleFinder", "[", RowBox[{"myColMovie_", ",", "channel_", ",", "analysisFolder_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "threshold1", ",", "threshold2", ",", "imgmask", ",", "bandpass", ",", "dotsize", ",", "max", ",", "th2", ",", "result"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"threshold1", "=", RowBox[{"Get", "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"analysisFolder", "<>", "#"}], "&"}], "/@", RowBox[{"{", RowBox[{ "\"\<_thred.dat\>\"", ",", "\"\<_thgreen.dat\>\"", ",", "\"\<_thblue.dat\>\""}], "}"}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"threshold2", "=", RowBox[{"Get", "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"analysisFolder", "<>", "#"}], "&"}], "/@", RowBox[{"{", RowBox[{ "\"\<_thred2.dat\>\"", ",", "\"\<_thgreen2.dat\>\"", ",", "\"\<_thblue2.dat\>\""}], "}"}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"imgmask", "=", RowBox[{"Import", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_mask.tif\>\""}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"bandpass", ",", "dotsize"}], "}"}], "=", RowBox[{"threshold2", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"max", ",", "th2"}], "}"}], "=", RowBox[{"threshold2", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"result", "=", RowBox[{ RowBox[{ RowBox[{"FindParticles", "[", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{"#", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1"}], "}"}], ",", RowBox[{ "threshold1", "\[LeftDoubleBracket]", "channel", "\[RightDoubleBracket]"}]}], "]"}], ",", "bandpass", ",", "max", ",", "th2", ",", "imgmask", ",", "dotsize"}], "]"}], "&"}], "/@", RowBox[{ "myColMovie", "\[LeftDoubleBracket]", "channel", "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"result", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Thread", "@", RowBox[{"{", RowBox[{"i", ",", RowBox[{ "result", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], "}"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "@", "result"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"result", "=", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"Prepend", "[", RowBox[{"#", ",", "0"}], "]"}], "&"}], "/@", "#"}], "&"}], "/@", "result"}]}]}]}], "\[IndentingNewLine]", "]"}]}]}]], "Input", CellChangeTimes->{{3.7147583971303506`*^9, 3.714758408167982*^9}, 3.7147584663613105`*^9, {3.714759074449091*^9, 3.7147591860164723`*^9}, { 3.715380673551758*^9, 3.71538067971211*^9}, {3.715434171802683*^9, 3.7154341776260157`*^9}, {3.7157340160817947`*^9, 3.7157340224781604`*^9}, 3.716227279614752*^9, {3.716227323727275*^9, 3.7162273973594866`*^9}, { 3.7162274765670166`*^9, 3.7162275061277075`*^9}, {3.717507076675681*^9, 3.7175070820519886`*^9}, {3.717507117202999*^9, 3.717507123539361*^9}, { 3.717509271589223*^9, 3.717509293909499*^9}, {3.717509331916673*^9, 3.7175094269971113`*^9}, {3.717509507004688*^9, 3.7175095835090637`*^9}, { 3.717509644237537*^9, 3.7175097021328487`*^9}, {3.717510019574005*^9, 3.7175100234212255`*^9}, {3.7175101642622805`*^9, 3.7175101680614977`*^9}, {3.71751024729403*^9, 3.71751027491761*^9}, { 3.717521561879187*^9, 3.7175215686705756`*^9}, 3.717521646888049*^9, { 3.717521682112064*^9, 3.71752175459921*^9}, {3.717522233039575*^9, 3.71752228906378*^9}},ExpressionUUID->"d10f1a57-b4fb-430a-9f30-\ 35558f5f68b6"], Cell[BoxData[ RowBox[{ RowBox[{"FindGranuleMasks", "[", RowBox[{"img_", ",", RowBox[{"{", RowBox[{"lo_", ",", "hi_"}], "}"}], ",", "max_", ",", "th_", ",", "imgmask_", ",", RowBox[{"{", RowBox[{"small_", ",", "large_"}], "}"}]}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"imgb", ",", "imgc", ",", "pos"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"imgb", "=", RowBox[{"BandPass", "[", RowBox[{"img", ",", RowBox[{"{", RowBox[{"lo", ",", "hi"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"imgc", "=", RowBox[{"SelectComponents", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{ RowBox[{"FillingTransform", "@", RowBox[{"Binarize", "[", RowBox[{"imgb", ",", " ", RowBox[{"max", " ", "th"}]}], "]"}]}], ",", "imgmask"}], "]"}], ",", "\"\\"", ",", RowBox[{ RowBox[{"small", "<", "#", "<", "large"}], "&"}]}], "]"}]}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.715433047700388*^9, 3.7154330762730217`*^9}, { 3.715434158130901*^9, 3.715434164106242*^9}, {3.717523811400852*^9, 3.7175238219614563`*^9}},ExpressionUUID->"05a88394-7533-4cf0-836f-\ 8d1423651e09"], Cell[BoxData[ RowBox[{ RowBox[{"myGranuleMaskFinder", "[", RowBox[{"myColMovie_", ",", "channel_", ",", "analysisFolder_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "threshold1", ",", "threshold2", ",", "imgmask", ",", "bandpass", ",", "dotsize", ",", "max", ",", "th2", ",", "result"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"threshold1", "=", RowBox[{"Get", "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"analysisFolder", "<>", "#"}], "&"}], "/@", RowBox[{"{", RowBox[{ "\"\<_thred.dat\>\"", ",", "\"\<_thgreen.dat\>\"", ",", "\"\<_thblue.dat\>\""}], "}"}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"threshold2", "=", RowBox[{"Get", "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"analysisFolder", "<>", "#"}], "&"}], "/@", RowBox[{"{", RowBox[{ "\"\<_thred2.dat\>\"", ",", "\"\<_thgreen2.dat\>\"", ",", "\"\<_thblue2.dat\>\""}], "}"}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"imgmask", "=", RowBox[{"Import", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_mask.tif\>\""}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"bandpass", ",", "dotsize"}], "}"}], "=", RowBox[{"threshold2", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"max", ",", "th2"}], "}"}], "=", RowBox[{"threshold2", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"FindGranuleMasks", "[", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{"#", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1"}], "}"}], ",", RowBox[{ "threshold1", "\[LeftDoubleBracket]", "channel", "\[RightDoubleBracket]"}]}], "]"}], ",", "bandpass", ",", "max", ",", "th2", ",", "imgmask", ",", "dotsize"}], "]"}], "&"}], "/@", RowBox[{ "myColMovie", "\[LeftDoubleBracket]", "channel", "\[RightDoubleBracket]"}]}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.717523855883397*^9, 3.7175239911131315`*^9}},ExpressionUUID->"5e1b42ff-2b86-4377-b8d8-\ 93cb3b94e209"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ PairConnect2 \[LineSeparator](still one small error, but doesn\ \[CloseCurlyQuote]t seem to mess up stuff)\ \>", "Subsection", CellChangeTimes->{{3.578373737283985*^9, 3.578373754802816*^9}, { 3.6425405298598948`*^9, 3.6425405335598993`*^9}, {3.642540631241037*^9, 3.6425406446910553`*^9}, {3.6483824557337046`*^9, 3.648382456997307*^9}, 3.7153761218429656`*^9},ExpressionUUID->"d36d3580-5b8e-4fae-9c5a-\ 8554f9bf83af"], Cell[BoxData[ RowBox[{ RowBox[{"PairConnect2", "[", RowBox[{ RowBox[{"{", RowBox[{"ticker_", ",", "anolist1t_"}], "}"}], ",", "list2t_", ",", "dist_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "newticker", ",", "finalticker", ",", "list1", ",", "list2", ",", "flag", ",", "out", ",", "newTracks", ",", "mypos", ",", "myind", ",", "myl", ",", "out2", ",", "out3"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newticker", "=", "ticker"}], ";", "\[IndentingNewLine]", RowBox[{"list1", "=", RowBox[{"Sort", "[", RowBox[{"anolist1t", ",", RowBox[{ RowBox[{ RowBox[{"#1", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}], "<", RowBox[{"#2", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]}], "&"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"list2", "=", RowBox[{"Sort", "@", "list2t"}]}], ";", "\[IndentingNewLine]", RowBox[{"flag", "=", "0"}], ";", "\[IndentingNewLine]", RowBox[{"out", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"myind", "=", "1"}], ";", "\[IndentingNewLine]", RowBox[{"mypos", "=", RowBox[{"list2", "\[LeftDoubleBracket]", RowBox[{"myind", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Reap", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"While", "[", RowBox[{"(*", RowBox[{ RowBox[{ RowBox[{"list1", "\[LeftDoubleBracket]", RowBox[{"m", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], "-", "dist"}], "\[LessEqual]"}], " ", "*)"}], RowBox[{ RowBox[{ RowBox[{"mypos", "\[LessEqual]", RowBox[{ RowBox[{"list1", "\[LeftDoubleBracket]", RowBox[{"m", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], "+", "dist"}]}], " ", "&&", RowBox[{"myind", "\[LessEqual]", " ", RowBox[{"Length", "@", "list2"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"EuclideanDistance", "[", RowBox[{ RowBox[{ "list2", "\[LeftDoubleBracket]", "myind", "\[RightDoubleBracket]"}], ",", RowBox[{"list1", "\[LeftDoubleBracket]", RowBox[{"m", ",", "2"}], "\[RightDoubleBracket]"}]}], "]"}], "\[LessEqual]", "dist"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Sow", "[", RowBox[{"{", RowBox[{ RowBox[{"list1", "\[LeftDoubleBracket]", RowBox[{"m", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{ "list2", "\[LeftDoubleBracket]", "myind", "\[RightDoubleBracket]"}]}], "}"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"list2", "=", RowBox[{"Delete", "[", RowBox[{"list2", ",", "myind"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myind", "=", RowBox[{"myind", "-", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{"flag", "=", RowBox[{"flag", "+", "1"}]}], ";"}]}], "\[IndentingNewLine]", "]"}], ";", "\[IndentingNewLine]", RowBox[{"myind", "=", RowBox[{"myind", "+", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"Length", "@", "list2"}], ">", "0"}], "&&", RowBox[{"myind", "\[LessEqual]", RowBox[{"Length", "@", "list2"}]}]}], ",", RowBox[{"mypos", "=", RowBox[{"list2", "\[LeftDoubleBracket]", RowBox[{"myind", ",", "1"}], "\[RightDoubleBracket]"}]}], ",", RowBox[{"m", "=", RowBox[{"Length", "@", "list1"}]}]}], "]"}], ";"}]}], "\[IndentingNewLine]", "]"}], ";"}], "\[IndentingNewLine]", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"m", ",", "1", ",", RowBox[{"Length", "@", "list1"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"out2", "=", RowBox[{"DeleteCases", "[", RowBox[{ RowBox[{ RowBox[{"out", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "//", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"#", ",", "2"}], "]"}], "&"}]}], ",", "Null"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "@", "list2"}], ">", "0"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"finalticker", "=", RowBox[{"newticker", "+", RowBox[{"Length", "[", "list2", "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"newTracks", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Range", "[", RowBox[{ RowBox[{"newticker", "+", "1"}], ",", "finalticker"}], "]"}], ",", "list2"}], "}"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"out3", "=", RowBox[{"Join", "[", RowBox[{"out2", ",", "newTracks"}], "]"}]}], ";"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"finalticker", "=", "newticker"}], ";", "\[IndentingNewLine]", RowBox[{"out3", "=", "out2"}], ";"}]}], "\[IndentingNewLine]", "]"}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"finalticker", ",", "out3"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.578278483426984*^9, 3.578278527017045*^9}, { 3.578278617567171*^9, 3.578278812177444*^9}, {3.578278860177511*^9, 3.578278958617649*^9}, {3.5782790527777805`*^9, 3.5782791306678896`*^9}, { 3.578279228338026*^9, 3.5782792824481025`*^9}, {3.578279331708171*^9, 3.57827937375923*^9}, {3.5782797231797194`*^9, 3.5782797524497604`*^9}, { 3.5782798062098355`*^9, 3.578279820769856*^9}, {3.578279860929912*^9, 3.578279877759936*^9}, {3.5782800389101615`*^9, 3.5782800426101665`*^9}, { 3.5782801504503174`*^9, 3.5782802956605206`*^9}, {3.5782803604306116`*^9, 3.5782803672306213`*^9}, {3.5782804440807285`*^9, 3.578280470540766*^9}, { 3.5782805111508226`*^9, 3.5782805168008304`*^9}, {3.5782805968509426`*^9, 3.5782805970109425`*^9}, {3.5782806657110386`*^9, 3.5782806854210663`*^9}, {3.5782807162611094`*^9, 3.5782807175111113`*^9}, {3.5782807897512126`*^9, 3.578280792511216*^9}, { 3.5782808529913015`*^9, 3.5782808624313145`*^9}, 3.578280908081378*^9, { 3.5782809467514324`*^9, 3.5782810046925135`*^9}, {3.5782810446625695`*^9, 3.5782810505625772`*^9}, {3.5782811481127143`*^9, 3.5782811696327443`*^9}, {3.578281283622904*^9, 3.5782812974929237`*^9}, { 3.578281465663159*^9, 3.578281465853159*^9}, {3.578281551223279*^9, 3.578281564433297*^9}, {3.5782816376533995`*^9, 3.578281646533412*^9}, { 3.578282025693943*^9, 3.5782820302239494`*^9}, {3.5782822587442694`*^9, 3.578282264654278*^9}, {3.5782823233143597`*^9, 3.57828232345436*^9}, { 3.5782825197346344`*^9, 3.578282525154642*^9}, {3.578282604784754*^9, 3.5782826048347535`*^9}, {3.5782826819758615`*^9, 3.5782826900358734`*^9}, {3.5782827276359253`*^9, 3.578282894096159*^9}, { 3.578282962536255*^9, 3.5782829667562604`*^9}, {3.5782831375564995`*^9, 3.5782831679665422`*^9}, {3.578283206996597*^9, 3.5782832870267086`*^9}, { 3.578283348096794*^9, 3.578283367776822*^9}, {3.578283470656966*^9, 3.578283492016996*^9}, {3.5782839458876314`*^9, 3.5782839944376993`*^9}, { 3.5782841031378517`*^9, 3.578284113677866*^9}, {3.5782842223180184`*^9, 3.5782842223880186`*^9}, {3.5782843294291687`*^9, 3.5782843302791696`*^9}, {3.5782844209192963`*^9, 3.578284457309347*^9}, { 3.578284550769478*^9, 3.5782845508994784`*^9}, {3.578284822663619*^9, 3.57828484069565*^9}, {3.5782853893969555`*^9, 3.578285423857003*^9}, { 3.578285545237173*^9, 3.578285545617174*^9}, {3.5782858759376364`*^9, 3.578285897557667*^9}, {3.578286003598815*^9, 3.5782860371688623`*^9}, { 3.5782861572790303`*^9, 3.57828615737903*^9}, {3.5782862077491007`*^9, 3.5782862166091137`*^9}, {3.5782862581791716`*^9, 3.5782862847992086`*^9}, 3.578286325379266*^9, {3.578286401229372*^9, 3.5782864672294645`*^9}, { 3.578286510369525*^9, 3.578286511389526*^9}, {3.5782870152702312`*^9, 3.578287016370233*^9}, {3.5782872721305914`*^9, 3.5782873117806463`*^9}, { 3.5782874462608347`*^9, 3.5782874467208357`*^9}, {3.5782874911708975`*^9, 3.5782874941909018`*^9}, {3.5782876928021803`*^9, 3.578287701252192*^9}, { 3.5782877771222982`*^9, 3.578287777862299*^9}, {3.578288352623104*^9, 3.578288353153105*^9}, {3.578288429383211*^9, 3.578288430623213*^9}, { 3.5782885667834034`*^9, 3.5782885799034224`*^9}, {3.578288708243602*^9, 3.5782887524836636`*^9}, {3.578288898613868*^9, 3.578288905053877*^9}, { 3.5782893486954985`*^9, 3.5782893521655035`*^9}, {3.578291437249422*^9, 3.5782914925594997`*^9}, 3.578291604639657*^9, {3.6425306412239523`*^9, 3.642530683860013*^9}, {3.642530742362096*^9, 3.6425308047651834`*^9}, { 3.642531019962491*^9, 3.642531020132491*^9}, {3.6425311360136547`*^9, 3.642531166125697*^9}, {3.64253121132876*^9, 3.6425312242587786`*^9}, { 3.642531293833877*^9, 3.642531297573882*^9}, {3.6425314082820387`*^9, 3.64253150795218*^9}, {3.6425315514062414`*^9, 3.6425315622862563`*^9}, { 3.6425315928842998`*^9, 3.6425316444823723`*^9}, {3.642531691449439*^9, 3.6425317249694867`*^9}, {3.6425319206627626`*^9, 3.6425319318037777`*^9}, {3.642532056447954*^9, 3.6425320886969995`*^9}, { 3.642532138244069*^9, 3.6425321476280828`*^9}, 3.642532244681219*^9, { 3.6425323095393105`*^9, 3.6425323484653654`*^9}, {3.6425323843774157`*^9, 3.642532444282503*^9}, {3.642532501847584*^9, 3.6425325024575853`*^9}, { 3.6425325615806684`*^9, 3.642532601869725*^9}, {3.642532707053873*^9, 3.6425327454539275`*^9}, {3.6425327819739795`*^9, 3.6425327821139793`*^9}, {3.642532815416026*^9, 3.6425328677931004`*^9}, { 3.6425329233521786`*^9, 3.642532926542183*^9}, {3.642533062098374*^9, 3.642533259736653*^9}, {3.642533571219092*^9, 3.642533595639126*^9}, { 3.642533784734393*^9, 3.64253385364149*^9}, {3.6425339204625874`*^9, 3.642533928552599*^9}, {3.642533971415659*^9, 3.642533983913677*^9}, { 3.642534058391782*^9, 3.642534134649889*^9}, 3.6425342296930227`*^9, { 3.642534352895197*^9, 3.6425345223634353`*^9}, {3.642534700581686*^9, 3.6425347028516893`*^9}, {3.642534759857769*^9, 3.6425347601777697`*^9}, { 3.6425348824019413`*^9, 3.6425348994869657`*^9}, {3.642535074718212*^9, 3.6425352725904903`*^9}, {3.6425353223105607`*^9, 3.6425353314005733`*^9}, {3.6425353699746275`*^9, 3.6425353984366674`*^9}, {3.64253546901377*^9, 3.642535556605893*^9}, { 3.642535660427039*^9, 3.6425356605370398`*^9}, {3.642535706873105*^9, 3.6425357137931147`*^9}, {3.6425384922410283`*^9, 3.642538496281034*^9}, 3.6785566714495325`*^9, {3.6785587960190516`*^9, 3.6785588947867002`*^9}, { 3.6785593039071007`*^9, 3.678559305379185*^9}},ExpressionUUID->"5cc40a11-7ca6-4f8d-a229-\ 21e29d8f4c89"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ PairConnect3 (Connect a dot in frame(n) to the nearest dot in frame(n-1) \ which is less than the determined jumping distance > there is no conversion, \ but diversion) \ \>", "Subsection", CellChangeTimes->{{3.678559583698104*^9, 3.678559593562668*^9}, { 3.6785687791460533`*^9, 3.6785688974738216`*^9}, {3.6785689412813272`*^9, 3.678568949921821*^9}, {3.715376123237059*^9, 3.71537612749139*^9}},ExpressionUUID->"32ca569e-5f25-434c-94b5-\ cc9959dc3368"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ RowBox[{ RowBox[{ "This", " ", "function", " ", "is", " ", "used", " ", "with", " ", "LinkTracks", " ", "or", " ", "LinkTracks2", "\[IndentingNewLine]", "\[IndentingNewLine]", "\t", "A", " ", "cordinate", " ", "of", " ", "each", " ", "dots", " ", "at", " ", "frame", "#", " ", "N"}], "+", RowBox[{ "1", " ", "is", " ", "compared", " ", "with", " ", "dots", " ", "at", " ", "frame", "#", " ", "N", " ", "by", " ", "Table", " ", "function", "\[IndentingNewLine]", "\t", "Those", " ", "dots", " ", "located"}], " ", "+", RowBox[{ RowBox[{"/", RowBox[{"-", " ", "\"\\""}]}], " ", "are", " ", "listed", " ", "as", " ", "\"\\"", "\[IndentingNewLine]", "\t", "If", " ", "the", " ", "nearest", " ", "dots", " ", "in", " ", "\"\\"", " ", "is", " ", "actually", " ", "less", " ", "than", " ", "\"\\"", "\[IndentingNewLine]", "\t", "the", " ", "track", " ", "number", " ", "of", " ", "the", " ", "dot", " ", "is", " ", "given", " ", "to", " ", "the", " ", "current", " ", "dot", " ", "at", " ", "frame", "#", " ", "N"}], "+", RowBox[{ "1", "\[IndentingNewLine]", "\t", "This", " ", "will", " ", "ensure", " ", "there", " ", "is", " ", "no", " ", "conversion", " ", "in", " ", "tracks", "\[IndentingNewLine]", "\t", "If", " ", "there", " ", "is", " ", "no", " ", "dots", " ", "closeby", " ", "in", " ", "frame", " ", "#N"}]}], ",", " ", RowBox[{ RowBox[{ "the", " ", "current", " ", "dot", " ", "gets", " ", "the", " ", "new", " ", "track", " ", "number", "\[IndentingNewLine]", "\[IndentingNewLine]", "\t\t", RowBox[{ "list1", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ":", " ", RowBox[{"the", " ", "latest", " ", RowBox[{"(", "biggest", ")"}], " ", "track", " ", "number", " ", "being", " ", "used", " ", RowBox[{"(", "newticker", ")"}], "\[IndentingNewLine]", "\t\t", RowBox[{ "list1", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], ":", " ", RowBox[{ "the", " ", "list", " ", "of", " ", "cordinate", " ", "of", " ", "points", " ", "with", " ", "a", " ", "track", " ", "number", " ", "at", " ", "frame", "#", " ", "N", " ", "\[IndentingNewLine]", "\t\t", RowBox[{"list2", ":", " ", RowBox[{ RowBox[{ "the", " ", "list", " ", "of", " ", "cordinate", " ", "of", " ", "points", " ", "at", " ", "frame", "#", " ", "N"}], "+", RowBox[{ "1", "\[IndentingNewLine]", "\[IndentingNewLine]", "\t ", "out"}]}], ":", " ", RowBox[{ RowBox[{ "the", " ", "list", " ", "of", " ", "cordinate", " ", "of", " ", "points", " ", "with", " ", "a", " ", "track", " ", "number", " ", "at", " ", "frame", "#", " ", "N"}], "+", "1"}]}]}]}]}], "\[IndentingNewLine]", " ", "*)"}]], "Input", CellChangeTimes->{{3.6786311463602543`*^9, 3.6786316118118763`*^9}, { 3.6786336143174133`*^9, 3.6786336993652773`*^9}, {3.6786337329091964`*^9, 3.6786338276456146`*^9}, {3.6786442408382154`*^9, 3.67864462992647*^9}, { 3.678644735598514*^9, 3.678644831406994*^9}},ExpressionUUID->"b533695d-0de6-4ca1-9c45-\ f9f5f1ad47aa"], Cell[BoxData[ RowBox[{ RowBox[{"PairConnect3", "[", RowBox[{ RowBox[{"{", RowBox[{"ticker_", ",", "anolist1t_"}], "}"}], ",", "list2t_", ",", "dist_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "newticker", ",", "list1", ",", "list2", ",", "out", ",", "mypos"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newticker", "=", "ticker"}], ";", "\[IndentingNewLine]", RowBox[{"list1", "=", RowBox[{"Sort", "[", RowBox[{"anolist1t", ",", RowBox[{ RowBox[{ RowBox[{"#1", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}], "<", RowBox[{"#2", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]}], "&"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"list2", "=", RowBox[{"Sort", "@", "list2t"}]}], ";", "\[IndentingNewLine]", RowBox[{"out", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"mypos", "=", RowBox[{ "list2", "\[LeftDoubleBracket]", "myi", "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"potentialDots", "=", RowBox[{"Cases", "[", RowBox[{"list1", ",", RowBox[{"x_", "/;", RowBox[{ RowBox[{ RowBox[{ RowBox[{ "mypos", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "-", "dist"}], "<", RowBox[{"x", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}], "<", RowBox[{ RowBox[{ "mypos", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+", "dist"}]}], "&&", RowBox[{ RowBox[{ RowBox[{ "mypos", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "-", "dist"}], "<", RowBox[{"x", "\[LeftDoubleBracket]", RowBox[{"2", ",", "2"}], "\[RightDoubleBracket]"}], "<", RowBox[{ RowBox[{ "mypos", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "+", "dist"}]}]}]}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"potentialDots", "\[Equal]", RowBox[{"{", "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newticker", "+=", "1"}], ";", RowBox[{"out", "=", RowBox[{"{", RowBox[{"newticker", ",", "mypos"}], "}"}]}], ";"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"potentialDot", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"Cases", "[", RowBox[{"potentialDots", ",", RowBox[{"x_", "/;", RowBox[{ RowBox[{ "x", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "\[Equal]", RowBox[{"Flatten", "@", RowBox[{"Nearest", "[", RowBox[{ RowBox[{"potentialDots", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], ",", "mypos"}], "]"}]}]}]}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", "\t", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"EuclideanDistance", "[", RowBox[{"mypos", ",", RowBox[{ "potentialDot", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], "]"}], ">", "dist"}], ",", "\[IndentingNewLine]", "\t", RowBox[{ RowBox[{"newticker", "+=", "1"}], ";", RowBox[{"out", "=", RowBox[{"{", RowBox[{"newticker", ",", "mypos"}], "}"}]}], ";"}], ",", RowBox[{ RowBox[{"out", "=", RowBox[{"{", RowBox[{ RowBox[{ "potentialDot", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "mypos"}], "}"}]}], ";"}]}], "]"}]}]}], "]"}], ";", "out"}], ",", RowBox[{"{", RowBox[{"myi", ",", "1", ",", RowBox[{"Length", "@", "list2"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"newticker", ",", "out"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.678559612091728*^9, 3.678559616794997*^9}, { 3.6785597764591293`*^9, 3.678559889284582*^9}, {3.6785600026430664`*^9, 3.6785600028040757`*^9}, {3.6785645606417685`*^9, 3.6785646495908566`*^9}, 3.6785661846406565`*^9, 3.6785662164474754`*^9},ExpressionUUID->"51e26c19-2df1-43a1-ab55-\ ce61195d8b05"] }, Closed]], Cell[CellGroupData[{ Cell["PairConnect4 (PairConnect3 + removing diversion)", "Subsection", CellChangeTimes->{{3.678559583698104*^9, 3.678559593562668*^9}, { 3.67856877593787*^9, 3.678568776041876*^9}, {3.678568958833331*^9, 3.6785689735461726`*^9}},ExpressionUUID->"41d94b3b-5566-4eab-8904-\ b753151413b2"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ RowBox[{ RowBox[{ "This", " ", "function", " ", "is", " ", "used", " ", "with", " ", "LinkTracks", " ", "or", " ", "LinkTracks2", "\[IndentingNewLine]", "\[IndentingNewLine]", "\t", "After", " ", "connecting", " ", "all", " ", "dots", " ", "at", " ", "frame", "#", " ", "N"}], "+", RowBox[{ "1", " ", "to", " ", "dots", " ", "at", " ", "frame", "#", " ", "N", "\[IndentingNewLine]", "\t", "finding", " ", "redundant", " ", "track", " ", "numbers", " ", "by", " ", "using", " ", "RedundantTrack", " ", "function", "\[IndentingNewLine]", "\[IndentingNewLine]", "\t", RowBox[{"RedundantTrack", "[", RowBox[{"{", RowBox[{ "1", ",", "2", ",", "5", ",", "1", ",", "6", ",", "7", ",", "2", ",", "2", ",", "5"}], "}"}], "]"}], "\[IndentingNewLine]", "\t", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2", ",", "5", ",", "6", ",", "7"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "5"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", "1", "}"}], ",", RowBox[{"{", "4", "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", "2", "}"}], ",", RowBox[{"{", "7", "}"}], ",", RowBox[{"{", "8", "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", "3", "}"}], ",", RowBox[{"{", "9", "}"}]}], "}"}]}], "}"}]}], "}"}], "\[IndentingNewLine]", "\[IndentingNewLine]", "\t", "redundant", " ", "track", " ", "numbers", " ", "means", " ", "track", " ", "gets", " ", "split", " ", "at", " ", "frame", "#", " ", "N"}], "+", RowBox[{ "1", "\[IndentingNewLine]", "\t", "in", " ", "order", " ", "to", " ", "avoid", " ", "this"}]}], ",", " ", RowBox[{ "choosing", " ", "the", " ", "nearest", " ", "point", " ", "and", " ", "assign", " ", "a", " ", "new", " ", "track", " ", "number", " ", "to", " ", "the", " ", "other", " ", "points"}]}], "\[IndentingNewLine]", "*)"}]], "Input", CellChangeTimes->{{3.678644657461045*^9, 3.6786447316622887`*^9}, { 3.678644841734585*^9, 3.678644919664042*^9}, {3.678644955945117*^9, 3.678645062191194*^9}},ExpressionUUID->"19be1e33-f967-45a9-96bd-\ 32b17f5b9317"], Cell[BoxData[ RowBox[{ RowBox[{"RedundantTrack", "[", RowBox[{"list_", ",", RowBox[{"test_:", " ", "Identity"}]}], "]"}], ":=", RowBox[{ RowBox[{"Composition", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"#", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"#", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", RowBox[{ RowBox[{ RowBox[{"Position", "[", RowBox[{"list", ",", "#"}], "]"}], "&"}], "/@", RowBox[{ "#", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}]}], "}"}], "&"}], ",", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"#", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{ RowBox[{"DeleteCases", "[", RowBox[{"#", ",", RowBox[{"{", "_", "}"}]}], "]"}], "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}]}], "}"}], "&"}], ",", RowBox[{ RowBox[{"GatherBy", "[", RowBox[{"#", ",", "test"}], "]"}], "&"}]}], "]"}], "[", "list", "]"}]}]], "Input",ExpressionUUID->"c59283da-a82f-46c5-a01a-69be9cda319e"], Cell[BoxData[ RowBox[{ RowBox[{"PairConnect4", "[", RowBox[{ RowBox[{"{", RowBox[{"ticker_", ",", "anolist1t_"}], "}"}], ",", "list2t_", ",", "dist_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "newticker", ",", "list1", ",", "list2", ",", "out", ",", "mypos", ",", "myRedundant", ",", "null", ",", "tempOriginalPoint", ",", "tempNewPoints", ",", "tempTruePoint", ",", "tempOutlierPointPosi"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newticker", "=", "ticker"}], ";", "\[IndentingNewLine]", RowBox[{"list1", "=", RowBox[{"Sort", "[", RowBox[{"anolist1t", ",", RowBox[{ RowBox[{ RowBox[{"#1", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}], "<", RowBox[{"#2", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]}], "&"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"list2", "=", RowBox[{"Sort", "@", "list2t"}]}], ";", "\[IndentingNewLine]", RowBox[{"out", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"mypos", "=", RowBox[{ "list2", "\[LeftDoubleBracket]", "myi", "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"potentialDots", "=", RowBox[{"Cases", "[", RowBox[{"list1", ",", RowBox[{"x_", "/;", RowBox[{ RowBox[{ RowBox[{ RowBox[{ "mypos", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "-", "dist"}], "<", RowBox[{"x", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}], "<", RowBox[{ RowBox[{ "mypos", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+", "dist"}]}], "&&", RowBox[{ RowBox[{ RowBox[{ "mypos", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "-", "dist"}], "<", RowBox[{"x", "\[LeftDoubleBracket]", RowBox[{"2", ",", "2"}], "\[RightDoubleBracket]"}], "<", RowBox[{ RowBox[{ "mypos", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "+", "dist"}]}]}]}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"potentialDots", "\[Equal]", RowBox[{"{", "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newticker", "+=", "1"}], ";", RowBox[{"out", "=", RowBox[{"{", RowBox[{"newticker", ",", "mypos"}], "}"}]}], ";"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"potentialDot", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"Cases", "[", RowBox[{"potentialDots", ",", RowBox[{"x_", "/;", RowBox[{ RowBox[{ "x", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "\[Equal]", RowBox[{"Flatten", "@", RowBox[{"Nearest", "[", RowBox[{ RowBox[{"potentialDots", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], ",", "mypos"}], "]"}]}]}]}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", "\t", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"EuclideanDistance", "[", RowBox[{"mypos", ",", RowBox[{ "potentialDot", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], "]"}], ">", "dist"}], ",", "\[IndentingNewLine]", "\t", RowBox[{ RowBox[{"newticker", "+=", "1"}], ";", RowBox[{"out", "=", RowBox[{"{", RowBox[{"newticker", ",", "mypos"}], "}"}]}], ";"}], ",", RowBox[{ RowBox[{"out", "=", RowBox[{"{", RowBox[{ RowBox[{ "potentialDot", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "mypos"}], "}"}]}], ";"}]}], "]"}]}]}], "]"}], ";", "out"}], ",", RowBox[{"{", RowBox[{"myi", ",", "1", ",", RowBox[{"Length", "@", "list2"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myRedundant", "=", RowBox[{"RedundantTrack", "[", RowBox[{"out", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"null", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempOriginalPoint", "=", RowBox[{"Extract", "[", RowBox[{"list1", ",", RowBox[{"Position", "[", RowBox[{ RowBox[{"list1", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"myRedundant", "\[LeftDoubleBracket]", RowBox[{"2", ",", "myj"}], "\[RightDoubleBracket]"}]}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempNewPoints", "=", RowBox[{"out", "\[LeftDoubleBracket]", RowBox[{"Flatten", "@", RowBox[{"myRedundant", "\[LeftDoubleBracket]", RowBox[{"3", ",", "myj"}], "\[RightDoubleBracket]"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempTruePoint", "=", RowBox[{ RowBox[{"Position", "[", RowBox[{"tempNewPoints", ",", RowBox[{"Flatten", "@", RowBox[{"Nearest", "[", RowBox[{ RowBox[{"tempNewPoints", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], ",", RowBox[{"tempOriginalPoint", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}]}], "]"}]}]}], "]"}], "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempOutlierPointPosi", "=", RowBox[{ RowBox[{"Delete", "[", RowBox[{ RowBox[{"myRedundant", "\[LeftDoubleBracket]", RowBox[{"3", ",", "myj"}], "\[RightDoubleBracket]"}], ",", "tempTruePoint"}], "]"}], "//", "Flatten"}]}], ";", "\[IndentingNewLine]", RowBox[{"Range", "[", RowBox[{ RowBox[{"newticker", "+", "1"}], ",", RowBox[{"newticker", "+", RowBox[{"Length", "@", "tempOutlierPointPosi"}]}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"out", "\[LeftDoubleBracket]", RowBox[{"tempOutlierPointPosi", ",", "1"}], "\[RightDoubleBracket]"}], "=", RowBox[{"Range", "[", RowBox[{ RowBox[{"newticker", "+", "1"}], ",", RowBox[{"newticker", "+", RowBox[{"Length", "@", "tempOutlierPointPosi"}]}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"newticker", "=", RowBox[{"newticker", "+", RowBox[{"Length", "@", "tempOutlierPointPosi"}]}]}], ";"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"myj", ",", "1", ",", RowBox[{"Length", "@", RowBox[{ "myRedundant", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"newticker", ",", "out"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.678559612091728*^9, 3.678559616794997*^9}, { 3.6785597764591293`*^9, 3.678559889284582*^9}, {3.6785600026430664`*^9, 3.6785600028040757`*^9}, {3.6785645606417685`*^9, 3.6785646495908566`*^9}, 3.6785661846406565`*^9, 3.6785662164474754`*^9, {3.6785691452029905`*^9, 3.6785691752347083`*^9}, {3.6786294864193106`*^9, 3.6786294970029163`*^9}, {3.6786295295627785`*^9, 3.6786295693700557`*^9}, {3.6786296000998135`*^9, 3.678629674828087*^9}},ExpressionUUID->"5c06b222-4070-43a7-9ac7-\ 0747b5c7492d"] }, Closed]], Cell[CellGroupData[{ Cell["LinkTracks", "Subsection", CellChangeTimes->{{3.6425406972561293`*^9, 3.642540699196132*^9}, { 3.6425407307771764`*^9, 3.642540734629182*^9}, {3.6483824467792892`*^9, 3.648382447886891*^9}},ExpressionUUID->"5217dda3-4c80-46d7-bddf-\ 7c49bbaa5232"], Cell[BoxData[ RowBox[{ RowBox[{"LinkTracks", "[", RowBox[{"testgreenP_", ",", "dist_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "list1", ",", "list2", ",", "listResult", ",", "listResultFrame", ",", "listResultTrack"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"list1", "=", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"Range", "@", RowBox[{"Length", "@", RowBox[{ "testgreenP", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}], ",", RowBox[{"Sort", "@", RowBox[{ "testgreenP", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"list1", "=", RowBox[{"{", RowBox[{ RowBox[{"Length", "@", "list1"}], ",", "list1"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"list2", "=", RowBox[{"testgreenP", "\[LeftDoubleBracket]", RowBox[{"2", ";;"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"listResult", "=", RowBox[{"FoldList", "[", RowBox[{ RowBox[{ RowBox[{"PairConnect4", "[", RowBox[{"#1", ",", "#2", ",", "dist"}], "]"}], "&"}], ",", "list1", ",", "list2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"listResultFrame", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Insert", "[", RowBox[{ RowBox[{ "listResult", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", "i", ",", RowBox[{"Table", "[", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "j", ",", "2", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "@", RowBox[{"listResult", "\[LeftDoubleBracket]", RowBox[{"i", ",", "2"}], "\[RightDoubleBracket]"}]}], ",", "1"}], "}"}]}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "@", "listResult"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"listResultTrack", "=", RowBox[{"SplitBy", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"listResultFrame", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "//", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"#", ",", "1"}], "]"}], "&"}]}], "//", "Sort"}], ",", "First"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"listResultFrame", ",", "listResultTrack"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.642537218408235*^9, 3.642537264040299*^9}, { 3.642537296025344*^9, 3.6425373967124853`*^9}, {3.6425375490676994`*^9, 3.6425375491776996`*^9}, {3.6428863768161287`*^9, 3.6428863815353985`*^9}, {3.642886462952055*^9, 3.642886463968113*^9}, { 3.642939120294883*^9, 3.642939135121731*^9}, {3.64293926676126*^9, 3.6429392677223153`*^9}, {3.6429393414655333`*^9, 3.6429393421455717`*^9}, {3.6430564615444183`*^9, 3.6430564648156056`*^9}, {3.678556682570169*^9, 3.678556741576544*^9}, { 3.6785567816588364`*^9, 3.6785567968567057`*^9}, {3.6785568671847286`*^9, 3.6785568723050213`*^9}, 3.678556966680419*^9, {3.6785646596314306`*^9, 3.6785646597424374`*^9}, {3.678564878566953*^9, 3.6785648786709595`*^9}, { 3.6785659857122784`*^9, 3.678565985832285*^9}, {3.6785672838895297`*^9, 3.678567283976535*^9}, {3.678567339273698*^9, 3.678567339384704*^9}, { 3.6786298277868357`*^9, 3.6786298278828416`*^9}, {3.6786455094707775`*^9, 3.6786455421916485`*^9}, {3.6786456047912292`*^9, 3.678645677591393*^9}, { 3.6786458595918026`*^9, 3.6786458778638477`*^9}, {3.6786459520160894`*^9, 3.67864598315987*^9}, {3.6786460706318736`*^9, 3.6786460973284006`*^9}, { 3.67864615028743*^9, 3.6786461816002207`*^9}},ExpressionUUID->"1d6cee32-051b-49b0-adc1-\ c3f1d3f1fd86"] }, Closed]], Cell[CellGroupData[{ Cell["LinkTracks2", "Subsection", CellChangeTimes->{{3.6786311154964886`*^9, 3.678631122754904*^9}},ExpressionUUID->"e1230ac7-d8b1-4329-ba80-\ 84db1deaa8b1"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ RowBox[{ "get", " ", "rid", " ", "of", " ", "tracks", " ", "which", " ", "last", " ", "only", " ", "1", " ", "or", " ", "2", " ", "frame", RowBox[{"(", "s", ")"}], " ", "and", " ", "re"}], "-", RowBox[{"assign", " ", "consecutive", " ", "track", " ", "numbers"}]}], " ", "*)"}]], "Input", CellChangeTimes->{{3.6786451804919605`*^9, 3.6786452852309513`*^9}},ExpressionUUID->"31f1c856-2125-4345-85d8-\ 387b2d65e8b3"], Cell[BoxData[ RowBox[{ RowBox[{"LinkTracks2", "[", RowBox[{"testgreenP_", ",", "dist_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "list1", ",", "list2", ",", "listResult", ",", "listResultFrame", ",", "listResultTrack", ",", "listResultTrackL"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"list1", "=", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"Range", "@", RowBox[{"Length", "@", RowBox[{ "testgreenP", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}], ",", RowBox[{"Sort", "@", RowBox[{ "testgreenP", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"list1", "=", RowBox[{"{", RowBox[{ RowBox[{"Length", "@", "list1"}], ",", "list1"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"list2", "=", RowBox[{"testgreenP", "\[LeftDoubleBracket]", RowBox[{"2", ";;"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"listResult", "=", RowBox[{"FoldList", "[", RowBox[{ RowBox[{ RowBox[{"PairConnect4", "[", RowBox[{"#1", ",", "#2", ",", "dist"}], "]"}], "&"}], ",", "list1", ",", "list2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"listResultFrame", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Insert", "[", RowBox[{ RowBox[{ "listResult", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", "i", ",", RowBox[{"Table", "[", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "j", ",", "2", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "@", RowBox[{"listResult", "\[LeftDoubleBracket]", RowBox[{"i", ",", "2"}], "\[RightDoubleBracket]"}]}], ",", "1"}], "}"}]}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "@", "listResult"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"listResultTrack", "=", RowBox[{"SplitBy", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"listResultFrame", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "//", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"#", ",", "1"}], "]"}], "&"}]}], "//", "Sort"}], ",", "First"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"listResultTrackL", "=", RowBox[{"Extract", "[", RowBox[{"listResultTrack", ",", RowBox[{"Position", "[", RowBox[{ RowBox[{"Length", "/@", "listResultTrack"}], ",", RowBox[{"x_", "/;", RowBox[{"x", ">", "2"}]}]}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"listResultTrackL", "\[LeftDoubleBracket]", RowBox[{"All", ",", "All", ",", "1"}], "\[RightDoubleBracket]"}], "=", RowBox[{"Range", "@", RowBox[{"Length", "@", "listResultTrackL"}]}]}], ";", "\[IndentingNewLine]", "listResultTrackL"}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{ 3.678645143510845*^9, {3.6786462319861026`*^9, 3.6786462430877376`*^9}, { 3.678646706939268*^9, 3.678646782449587*^9}, {3.67864688984873*^9, 3.678646931857133*^9}, 3.6786469851691823`*^9, {3.6786471294484344`*^9, 3.6786471353687735`*^9}, {3.678648850050847*^9, 3.6786488527139997`*^9}},ExpressionUUID->"d08ffe8b-bc8b-4dd9-abea-\ 176c23e8d521"] }, Closed]], Cell[CellGroupData[{ Cell["ParticleFitting", "Subsection", CellChangeTimes->{{3.6515211610224323`*^9, 3.651521163990602*^9}},ExpressionUUID->"355fbae3-0f3a-4987-af16-\ b3adf1b0e7ec"], Cell["\<\ When raw images are used for fitting, avgFrameN_ is used to shift frames such \ that the middle frame of running average is used for fitting. For example when avgFrameN is 3, the centroid at the first time point in \ mylongtrack is determined from the average image of frame 1, 2 and 3. So \ frame 2 should be fitted with this initial guess. When running averaged images are used for fitting, enter \ \[OpenCurlyDoubleQuote]1\[CloseCurlyDoubleQuote] at the last input instead of \ avgFrameN.\ \>", "Text", CellChangeTimes->{{3.6557286003930864`*^9, 3.655728889600628*^9}},ExpressionUUID->"3aaff210-8bcb-424c-a27e-\ 0729a74abb56"], Cell[BoxData[ RowBox[{ RowBox[{"ParticleFittingSee", "[", RowBox[{ "myColMovie_", ",", "channel_", ",", "mylongtrack_", ",", "pad_", ",", "myTrimSize_", ",", "avgFrameN_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"tempTime", ",", "tempCenter", ",", "frameShift"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempTime", "=", RowBox[{"mylongtrack", "\[LeftDoubleBracket]", RowBox[{"t", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempCenter", "=", RowBox[{"Ceiling", "[", RowBox[{"mylongtrack", "\[LeftDoubleBracket]", RowBox[{"t", ",", "2", ",", RowBox[{"2", ";;"}]}], "\[RightDoubleBracket]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"frameShift", "=", RowBox[{"Ceiling", "[", RowBox[{"avgFrameN", "/", "2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"myColMovie", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"tempTime", "+", "frameShift", "-", "1"}]}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"tempCenter", "-", "pad"}], ",", RowBox[{"tempCenter", "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"t", ",", "1", ",", RowBox[{"Length", "[", "mylongtrack", "]"}], ",", "1"}], "}"}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.6515211934142847`*^9, 3.651521280519267*^9}, { 3.6515213469590673`*^9, 3.6515214200482473`*^9}, {3.651521518984906*^9, 3.6515218293366575`*^9}, {3.6515218704650097`*^9, 3.651521919528816*^9}, { 3.655581282500985*^9, 3.6555813891080823`*^9}, {3.6555814330835977`*^9, 3.65558148994785*^9}, {3.655581570579462*^9, 3.655581605779475*^9}, { 3.655581714731707*^9, 3.6555817416352463`*^9}, {3.6556456138785295`*^9, 3.6556456600301685`*^9}, {3.655645691237954*^9, 3.6556457099260225`*^9}, { 3.655646442718936*^9, 3.6556464690944448`*^9}, {3.6556603618410645`*^9, 3.655660361961071*^9}, {3.6557217222026763`*^9, 3.6557218284757547`*^9}, { 3.6557218930834503`*^9, 3.6557219581311707`*^9}},ExpressionUUID->"03540fd5-9ffb-4da7-84b6-\ a5c2e396ba76"], Cell[BoxData[ RowBox[{ RowBox[{"ParticleFitting", "[", RowBox[{ "myColMovie_", ",", "channel_", ",", "mylongtracks_", ",", "pad_", ",", "myTrimSize_", ",", "avgFrameN_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myAllParametersEach", ",", "myTrimImgs", ",", "myOrigins", ",", "tempTime", ",", "tempCenter", ",", "frameShift", ",", "myImgs", ",", "myData", ",", "myFits", ",", "tempData3D", ",", "myFit", ",", "myPos", ",", "myPosImgCoordn", ",", "myAbsPos", ",", "myIntBGSigma", ",", "myPos90Conf", ",", "myPos90ConfImgCoordn", ",", "myAbsPos90Conf", ",", "myIntBGSigma90Conf", ",", "myFitData", ",", "CC", ",", "A", ",", "x0", ",", "a", ",", "y0", ",", "b", ",", "x", ",", "y"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"myAllParametersEach", ",", "myPos", ",", "myFitData"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"myTrimImgs", ",", "myOrigins"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempTime", "=", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "t", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempCenter", "=", RowBox[{"Ceiling", "[", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "t", ",", "2", ",", RowBox[{"2", ";;"}]}], "\[RightDoubleBracket]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"frameShift", "=", RowBox[{"Ceiling", "[", RowBox[{"avgFrameN", "/", "2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myImgs", "=", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"myColMovie", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"tempTime", "+", "frameShift", "-", "1"}]}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"tempCenter", "-", "pad"}], ",", RowBox[{"tempCenter", "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"myOrigins", "=", RowBox[{"tempCenter", "-", "pad", "-", "1"}]}]}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"t", ",", "1", ",", RowBox[{"Length", "[", RowBox[{ "mylongtracks", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"myData", "=", RowBox[{"ImageData", "/@", "myTrimImgs"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFits", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempData3D", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"MapIndexed", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ "#2", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{ "#2", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", "#1"}], "}"}], "&"}], ",", RowBox[{ "myData", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{"{", "2", "}"}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Clear", "[", RowBox[{ "CC", ",", "A", ",", "x0", ",", "a", ",", "y0", ",", "b", ",", "x", ",", "y"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "=", RowBox[{"NonlinearModelFit", "[", RowBox[{"tempData3D", ",", RowBox[{"CC", "+", RowBox[{"A", " ", RowBox[{"E", "^", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"(", RowBox[{"x", "-", "x0"}], ")"}], "^", "2"}]}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"a", "^", "2"}]}], ")"}]}], "-", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"y", "-", "y0"}], ")"}], "^", "2"}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"b", "^", "2"}]}], ")"}]}]}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"CC", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{"A", ",", RowBox[{"tempData3D", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", "*", "pad", "*", RowBox[{"(", RowBox[{"pad", "+", "1"}], ")"}]}], "+", "1"}], ")"}], ",", "3"}], "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"a", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"y0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"b", ",", "1"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "[", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], "]"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "[", "myData", "]"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Rearrange", " ", "the", " ", "parameters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"myPos", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"4", ",", "6"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPosImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos", "=", RowBox[{"myPosImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBGSigma", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"3", ",", "2", ",", "5", ",", "7"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"3", ",", "5"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90ConfImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}], "=", RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos90Conf", "=", RowBox[{"myPos90ConfImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBGSigma90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"2", ",", "1", ",", "4", ",", "6"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Output", " ", "the", " ", "paramters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myAllParametersEach", "=", RowBox[{"Flatten", "/@", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], ",", "myAbsPos", ",", "myIntBGSigma", ",", "myAbsPos90Conf", ",", "myIntBGSigma90Conf", ",", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "3"}], "\[RightDoubleBracket]"}]}], "}"}]}]}]}], ",", "myPos", ",", "myData"}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "[", "mylongtracks", "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myAllParametersEach", "//", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"#", ",", "1"}], "]"}], "&"}]}], ",", "myPos", ",", "myFitData"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.6515211934142847`*^9, 3.651521280519267*^9}, { 3.6515213469590673`*^9, 3.6515214200482473`*^9}, {3.651521518984906*^9, 3.6515218293366575`*^9}, {3.6515218704650097`*^9, 3.651521919528816*^9}, { 3.655581282500985*^9, 3.6555813891080823`*^9}, {3.65565276167636*^9, 3.655652802204678*^9}, {3.655660380715144*^9, 3.6556603808751535`*^9}, { 3.655721972211976*^9, 3.655721995987336*^9}, {3.655834242142449*^9, 3.655834341613138*^9}, {3.6561793737004633`*^9, 3.656179378164719*^9}, 3.6838989198137875`*^9},ExpressionUUID->"a06942e6-8b9d-4cbc-a1b7-\ c82ab83d3785"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "input", " ", "does", " ", "not", " ", "have", " ", "color", " ", "code", " ", "such", " ", "as", " ", RowBox[{"{", RowBox[{"1", ",", "0", ",", "0"}], "}"}], " ", "for", " ", "red"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"ParticleFitting2", "[", RowBox[{ "myColMovie_", ",", "channel_", ",", "mylongtracks_", ",", "pad_", ",", "avgFrameN_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myTrimSize", ",", "myAllParametersEach", ",", "myTrimImgs", ",", "myOrigins", ",", "tempTime", ",", "tempCenter", ",", "frameShift", ",", "myImgs", ",", "myData", ",", "myFits", ",", "tempData3D", ",", "myFit", ",", "myPos", ",", "myPosImgCoordn", ",", "myAbsPos", ",", "myIntBGSigma", ",", "myPos90Conf", ",", "myPos90ConfImgCoordn", ",", "myAbsPos90Conf", ",", "myIntBGSigma90Conf", ",", "myFitData", ",", "CC", ",", "A", ",", "x0", ",", "a", ",", "y0", ",", "b", ",", "x", ",", "y"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"myTrimSize", "=", RowBox[{ RowBox[{"2", "*", "pad"}], "+", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"myTrimImgs", ",", "myOrigins"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempTime", "=", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "t", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempCenter", "=", RowBox[{"Ceiling", "[", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "t", ",", "2", ",", RowBox[{"2", ";;"}]}], "\[RightDoubleBracket]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"frameShift", "=", RowBox[{"Ceiling", "[", RowBox[{"avgFrameN", "/", "2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myImgs", "=", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"myColMovie", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"tempTime", "+", "frameShift", "-", "1"}]}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"tempCenter", "-", "pad"}], ",", RowBox[{"tempCenter", "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"myOrigins", "=", RowBox[{"tempCenter", "-", "pad", "-", "1"}]}]}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"t", ",", "1", ",", RowBox[{"Length", "[", RowBox[{ "mylongtracks", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"myData", "=", RowBox[{"ImageData", "/@", "myTrimImgs"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFits", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempData3D", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"MapIndexed", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ "#2", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{ "#2", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", "#1"}], "}"}], "&"}], ",", RowBox[{ "myData", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{"{", "2", "}"}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Clear", "[", RowBox[{ "CC", ",", "A", ",", "x0", ",", "a", ",", "y0", ",", "b", ",", "x", ",", "y"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "=", RowBox[{"NonlinearModelFit", "[", RowBox[{"tempData3D", ",", RowBox[{"CC", "+", RowBox[{"A", " ", RowBox[{"E", "^", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"(", RowBox[{"x", "-", "x0"}], ")"}], "^", "2"}]}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"a", "^", "2"}]}], ")"}]}], "-", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"y", "-", "y0"}], ")"}], "^", "2"}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"b", "^", "2"}]}], ")"}]}]}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"CC", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{"A", ",", RowBox[{"tempData3D", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", "*", "pad", "*", RowBox[{"(", RowBox[{"pad", "+", "1"}], ")"}]}], "+", "1"}], ")"}], ",", "3"}], "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"a", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"y0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"b", ",", "1"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "[", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], "]"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "[", "myData", "]"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Rearrange", " ", "the", " ", "parameters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"myPos", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"4", ",", "6"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPosImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos", "=", RowBox[{"myPosImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBGSigma", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"3", ",", "2", ",", "5", ",", "7"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"3", ",", "5"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90ConfImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}], "=", RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos90Conf", "=", RowBox[{"myPos90ConfImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBGSigma90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"2", ",", "1", ",", "4", ",", "6"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Output", " ", "the", " ", "paramters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myAllParametersEach", "=", RowBox[{"Flatten", "/@", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], ",", "myAbsPos", ",", "myIntBGSigma", ",", "myAbsPos90Conf", ",", "myIntBGSigma90Conf"}], "}"}]}]}]}], ",", "myPos", ",", "myData"}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "[", "mylongtracks", "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myAllParametersEach", "//", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"#", ",", "1"}], "]"}], "&"}]}], ",", "myPos", ",", "myFitData"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]}]], "Input", CellChangeTimes->{{3.6515211934142847`*^9, 3.651521280519267*^9}, { 3.6515213469590673`*^9, 3.6515214200482473`*^9}, {3.651521518984906*^9, 3.6515218293366575`*^9}, {3.6515218704650097`*^9, 3.651521919528816*^9}, { 3.655581282500985*^9, 3.6555813891080823`*^9}, {3.65565276167636*^9, 3.655652802204678*^9}, {3.655660380715144*^9, 3.6556603808751535`*^9}, { 3.655721972211976*^9, 3.655721995987336*^9}, {3.655834242142449*^9, 3.655834341613138*^9}, {3.6561793737004633`*^9, 3.656179378164719*^9}, 3.6838989198137875`*^9, {3.7136623625257072`*^9, 3.713662365581882*^9}, { 3.7137020685437613`*^9, 3.7137020960063324`*^9}, {3.7137258651152134`*^9, 3.713725887763509*^9}, 3.7137281635906787`*^9},ExpressionUUID->"9668094b-3ef7-4f0f-b4d3-\ f54baa853625"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"input", " ", "not", " ", "tracked"}], ",", " ", RowBox[{ RowBox[{ "contains", " ", "multiple", " ", "information", " ", "from", " ", "component", " ", RowBox[{"measurments", ".", " ", "intensity"}], " ", "centroid", " ", "is", " ", "the", " ", "first", " ", "component", "\[IndentingNewLine]", " ", "fitted", " ", "result", " ", "is", " ", "appended", " ", "after", " ", "the", " ", "component", " ", "measurments", " ", "\[IndentingNewLine]", " ", "output", " ", "list", " ", "has", " ", "3", " ", "components", "\[IndentingNewLine]", " ", "1.", " ", "component", " ", "measurements"}], " ", "+", " ", RowBox[{ "fit", " ", "results", "\[IndentingNewLine]", " ", "2.", " ", "fit", " ", "centroid", " ", "in", " ", "the", " ", "cropped", " ", "data", "\[IndentingNewLine]", " ", "3.", " ", "cropped", " ", "data"}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"MyParticleFitter", "[", RowBox[{ "myColMovie_", ",", "channel_", ",", "mySpots_", ",", "pad_", ",", "avgFrameN_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myTrimSize", ",", "myAllParametersEach", ",", "myTrimImgs", ",", "myOrigins", ",", "tempTime", ",", "tempCenter", ",", "frameShift", ",", "myImgs", ",", "myData", ",", "myFits", ",", "tempData3D", ",", "myFit", ",", "myPos", ",", "myPosImgCoordn", ",", "myAbsPos", ",", "myIntBG", ",", "mySigma", ",", "myPos90Conf", ",", "myPos90ConfImgCoordn", ",", "myAbsPos90Conf", ",", "myIntBG90Conf", ",", "mySigma90Conf", ",", "myParametersAll", ",", "my90ConfAll", ",", "myFitData", ",", "CC", ",", "A", ",", "x0", ",", "a", ",", "y0", ",", "b", ",", "x", ",", "y"}], "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"myTrimSize", "=", RowBox[{ RowBox[{"2", "*", "pad"}], "+", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{"frameShift", "=", RowBox[{"Ceiling", "[", RowBox[{"avgFrameN", "/", "2"}], "]"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"myTrimImgs", ",", "myOrigins"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempTime", "=", RowBox[{"mySpots", "\[LeftDoubleBracket]", RowBox[{"frame", ",", "spot", ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempCenter", "=", RowBox[{"Ceiling", "[", RowBox[{"mySpots", "\[LeftDoubleBracket]", RowBox[{"frame", ",", "spot", ",", "3", ",", "1"}], "\[RightDoubleBracket]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myImgs", "=", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"myColMovie", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"tempTime", "+", "frameShift", "-", "1"}]}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"tempCenter", "-", "pad"}], ",", RowBox[{"tempCenter", "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"myOrigins", "=", RowBox[{"tempCenter", "-", "pad", "-", "1"}]}]}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"spot", ",", "1", ",", RowBox[{"Length", "[", RowBox[{ "mySpots", "\[LeftDoubleBracket]", "frame", "\[RightDoubleBracket]"}], "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"myData", "=", RowBox[{"ImageData", "/@", "myTrimImgs"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFits", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempData3D", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"MapIndexed", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ "#2", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", RowBox[{ "#2", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "#1"}], "}"}], "&"}], ",", RowBox[{ "myData", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{"{", "2", "}"}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Clear", "[", RowBox[{ "CC", ",", "A", ",", "x0", ",", "a", ",", "y0", ",", "b", ",", "x", ",", "y"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "=", RowBox[{"NonlinearModelFit", "[", RowBox[{"tempData3D", ",", RowBox[{"CC", "+", RowBox[{"A", " ", RowBox[{"E", "^", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"(", RowBox[{"x", "-", "x0"}], ")"}], "^", "2"}]}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"a", "^", "2"}]}], ")"}]}], "-", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"y", "-", "y0"}], ")"}], "^", "2"}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"b", "^", "2"}]}], ")"}]}]}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"CC", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{"A", ",", RowBox[{"tempData3D", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", "*", "pad", "*", RowBox[{"(", RowBox[{"pad", "+", "1"}], ")"}]}], "+", "1"}], ")"}], ",", "3"}], "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"a", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"y0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"b", ",", "1"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "[", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], "]"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "@", "myData"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Rearrange", " ", "the", " ", "parameters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"myPos", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"4", ",", "6"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPosImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos", "=", RowBox[{"myPosImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBG", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"mySigma", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"5", ",", "7"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"3", ",", "5"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90ConfImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}], "=", RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos90Conf", "=", RowBox[{"myPos90ConfImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBG90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"mySigma90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"4", ",", "6"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myParametersAll", "=", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{"myAbsPos", ",", "myIntBG", ",", "mySigma"}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"my90ConfAll", "=", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ "myAbsPos90Conf", ",", "myIntBG90Conf", ",", "mySigma90Conf"}], "}"}]}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Output", " ", "the", " ", "paramters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"myAllParametersEach", "=", RowBox[{"{", RowBox[{ RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{ "mySpots", "\[LeftDoubleBracket]", "frame", "\[RightDoubleBracket]"}], ",", "myParametersAll", ",", "my90ConfAll"}], "}"}]}], ",", "myPos", ",", "myData"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myAllParametersEach", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{"Append", "[", RowBox[{ RowBox[{"Append", "[", RowBox[{ RowBox[{ "#", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{ "#", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], "]"}], ",", RowBox[{ "#", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}]}], "]"}], "&"}], "/@", RowBox[{ "myAllParametersEach", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", "myAllParametersEach"}], "\[IndentingNewLine]", "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"frame", ",", "1", ",", RowBox[{"Length", "@", "mySpots"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}]}], "\[IndentingNewLine]", "]"}]}]}]], "Input", CellChangeTimes->{{3.6515211934142847`*^9, 3.651521280519267*^9}, { 3.6515213469590673`*^9, 3.6515214200482473`*^9}, {3.651521518984906*^9, 3.6515218293366575`*^9}, {3.6515218704650097`*^9, 3.651521919528816*^9}, { 3.655581282500985*^9, 3.6555813891080823`*^9}, {3.65565276167636*^9, 3.655652802204678*^9}, {3.655660380715144*^9, 3.6556603808751535`*^9}, { 3.655721972211976*^9, 3.655721995987336*^9}, {3.655834242142449*^9, 3.655834341613138*^9}, {3.6561793737004633`*^9, 3.656179378164719*^9}, 3.6838989198137875`*^9, {3.7136623625257072`*^9, 3.713662365581882*^9}, { 3.7137020685437613`*^9, 3.7137020960063324`*^9}, {3.7137258651152134`*^9, 3.713725887763509*^9}, 3.7137281635906787`*^9, {3.716218610152887*^9, 3.7162186290729694`*^9}, {3.7162188409140854`*^9, 3.7162188503136234`*^9}, {3.716226078608058*^9, 3.7162261469599676`*^9}, { 3.7162262473677106`*^9, 3.7162263090952415`*^9}, {3.716226339167961*^9, 3.716226369095673*^9}, {3.716230669451639*^9, 3.716230700595421*^9}, { 3.7162308037553215`*^9, 3.7162308187311773`*^9}, {3.7162308814597654`*^9, 3.7162309845396614`*^9}, {3.7162310295472355`*^9, 3.71623108085117*^9}, { 3.7162311195873857`*^9, 3.7162311493070855`*^9}, {3.716231257540276*^9, 3.716231299355668*^9}, {3.7162313301954317`*^9, 3.716231346324354*^9}, { 3.716231384443535*^9, 3.7162314202995853`*^9}, {3.71623151356392*^9, 3.7162315421245537`*^9}, {3.7162392090030737`*^9, 3.7162392113062057`*^9}, {3.7162393595866866`*^9, 3.716239360106716*^9}, 3.7162394725941505`*^9, {3.7162408270356197`*^9, 3.716240911547454*^9}, { 3.717510224470724*^9, 3.7175102282229395`*^9}, {3.7175103518710117`*^9, 3.717510486663721*^9}, {3.7175212119451723`*^9, 3.71752121784851*^9}, { 3.718634324209139*^9, 3.718634335056759*^9}},ExpressionUUID->"1e2af938-8e33-41aa-a59b-\ e59095d74bbb"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"input", " ", "not", " ", "tracked"}], ",", " ", RowBox[{ RowBox[{ "contains", " ", "multiple", " ", "information", " ", "from", " ", "component", " ", RowBox[{"measurments", ".", " ", "intensity"}], " ", "centroid", " ", "is", " ", "the", " ", "first", " ", "component", "\[IndentingNewLine]", " ", "fitted", " ", "result", " ", "is", " ", "appended", " ", "after", " ", "the", " ", "component", " ", "measurments", " ", "\[IndentingNewLine]", " ", "output", " ", "list", " ", "has", " ", "3", " ", "components", "\[IndentingNewLine]", " ", "1.", " ", "component", " ", "measurements"}], " ", "+", " ", RowBox[{ "fit", " ", "results", "\[IndentingNewLine]", " ", "2.", " ", "fit", " ", "centroid", " ", "in", " ", "the", " ", "cropped", " ", "data", "\[IndentingNewLine]", " ", "3.", " ", "cropped", " ", "data"}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"ParticleFitting3", "[", RowBox[{ "myColMovie_", ",", "channel_", ",", "mySpots_", ",", "pad_", ",", "avgFrameN_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myTrimSize", ",", "myAllParametersEach", ",", "myTrimImgs", ",", "myOrigins", ",", "tempCenter", ",", "frameShift", ",", "myImgs", ",", "myData", ",", "myFits", ",", "tempData3D", ",", "myFit", ",", "myPos", ",", "myPosImgCoordn", ",", "myAbsPos", ",", "myIntBG", ",", "mySigma", ",", "myPos90Conf", ",", "myPos90ConfImgCoordn", ",", "myAbsPos90Conf", ",", "myIntBG90Conf", ",", "mySigma90Conf", ",", "myParametersAll", ",", "my90ConfAll", ",", "myFitData", ",", "CC", ",", "A", ",", "x0", ",", "a", ",", "y0", ",", "b", ",", "x", ",", "y"}], "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"myTrimSize", "=", RowBox[{ RowBox[{"2", "*", "pad"}], "+", "1"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"myTrimImgs", ",", "myOrigins"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempCenter", "=", RowBox[{"Ceiling", "[", RowBox[{"mySpots", "\[LeftDoubleBracket]", RowBox[{"frame", ",", "spot", ",", "2"}], "\[RightDoubleBracket]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"frameShift", "=", RowBox[{"Ceiling", "[", RowBox[{"avgFrameN", "/", "2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myImgs", "=", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"myColMovie", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"frame", "+", "frameShift", "-", "1"}]}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"tempCenter", "-", "pad"}], ",", RowBox[{"tempCenter", "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"myOrigins", "=", RowBox[{"tempCenter", "-", "pad", "-", "1"}]}]}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"spot", ",", "1", ",", RowBox[{"Length", "[", RowBox[{ "mySpots", "\[LeftDoubleBracket]", "frame", "\[RightDoubleBracket]"}], "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"myData", "=", RowBox[{"ImageData", "/@", "myTrimImgs"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFits", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempData3D", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"MapIndexed", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ "#2", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{ "#2", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", "#1"}], "}"}], "&"}], ",", RowBox[{ "myData", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{"{", "2", "}"}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Clear", "[", RowBox[{ "CC", ",", "A", ",", "x0", ",", "a", ",", "y0", ",", "b", ",", "x", ",", "y"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "=", RowBox[{"NonlinearModelFit", "[", RowBox[{"tempData3D", ",", RowBox[{"CC", "+", RowBox[{"A", " ", RowBox[{"E", "^", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"(", RowBox[{"x", "-", "x0"}], ")"}], "^", "2"}]}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"a", "^", "2"}]}], ")"}]}], "-", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"y", "-", "y0"}], ")"}], "^", "2"}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"b", "^", "2"}]}], ")"}]}]}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"CC", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{"A", ",", RowBox[{"tempData3D", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", "*", "pad", "*", RowBox[{"(", RowBox[{"pad", "+", "1"}], ")"}]}], "+", "1"}], ")"}], ",", "3"}], "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"a", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"y0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"b", ",", "1"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "[", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], "]"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "@", "myData"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Rearrange", " ", "the", " ", "parameters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"myPos", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"4", ",", "6"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPosImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos", "=", RowBox[{"myPosImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBG", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"mySigma", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"5", ",", "7"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"3", ",", "5"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90ConfImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}], "=", RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos90Conf", "=", RowBox[{"myPos90ConfImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBG90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"mySigma90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"4", ",", "6"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myParametersAll", "=", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{"myAbsPos", ",", "myIntBG", ",", "mySigma"}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"my90ConfAll", "=", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ "myAbsPos90Conf", ",", "myIntBG90Conf", ",", "mySigma90Conf"}], "}"}]}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Output", " ", "the", " ", "paramters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"myAllParametersEach", "=", RowBox[{"{", RowBox[{ RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{ "mySpots", "\[LeftDoubleBracket]", "frame", "\[RightDoubleBracket]"}], ",", "myParametersAll", ",", "my90ConfAll"}], "}"}]}], ",", "myPos", ",", "myData"}], "}"}]}], ";"}], "\[IndentingNewLine]", "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"frame", ",", "1", ",", RowBox[{"Length", "@", "mySpots"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}]}], "\[IndentingNewLine]", "]"}]}]}]], "Input", CellChangeTimes->{{3.6515211934142847`*^9, 3.651521280519267*^9}, { 3.6515213469590673`*^9, 3.6515214200482473`*^9}, {3.651521518984906*^9, 3.6515218293366575`*^9}, {3.6515218704650097`*^9, 3.651521919528816*^9}, { 3.655581282500985*^9, 3.6555813891080823`*^9}, {3.65565276167636*^9, 3.655652802204678*^9}, {3.655660380715144*^9, 3.6556603808751535`*^9}, { 3.655721972211976*^9, 3.655721995987336*^9}, {3.655834242142449*^9, 3.655834341613138*^9}, {3.6561793737004633`*^9, 3.656179378164719*^9}, 3.6838989198137875`*^9, {3.7136623625257072`*^9, 3.713662365581882*^9}, { 3.7137020685437613`*^9, 3.7137020960063324`*^9}, {3.7137258651152134`*^9, 3.713725887763509*^9}, 3.7137281635906787`*^9, {3.716218610152887*^9, 3.7162186290729694`*^9}, {3.7162188409140854`*^9, 3.7162188503136234`*^9}, {3.716226078608058*^9, 3.7162261469599676`*^9}, { 3.7162262473677106`*^9, 3.7162263090952415`*^9}, {3.716226339167961*^9, 3.716226369095673*^9}, {3.716230669451639*^9, 3.716230700595421*^9}, { 3.7162308037553215`*^9, 3.7162308187311773`*^9}, {3.7162308814597654`*^9, 3.7162309845396614`*^9}, {3.7162310295472355`*^9, 3.71623108085117*^9}, { 3.7162311195873857`*^9, 3.7162311493070855`*^9}, {3.716231257540276*^9, 3.716231299355668*^9}, {3.7162313301954317`*^9, 3.716231346324354*^9}, { 3.716231384443535*^9, 3.7162314202995853`*^9}, {3.71623151356392*^9, 3.7162315421245537`*^9}, {3.7162392090030737`*^9, 3.7162392113062057`*^9}, {3.7162393595866866`*^9, 3.716239360106716*^9}, 3.7162394725941505`*^9, {3.7162408270356197`*^9, 3.716240911547454*^9}, { 3.717520921320549*^9, 3.7175209600797663`*^9}, {3.717521047439763*^9, 3.717521100032771*^9}, {3.7175212011425543`*^9, 3.7175212022166157`*^9}},ExpressionUUID->"ab8a0a96-843e-4ec2-b170-\ 7688230cc806"], Cell[BoxData[ RowBox[{ RowBox[{"ParticleFittingFixedSigma", "[", RowBox[{ "myColMovie_", ",", "channel_", ",", "mylongtracks_", ",", "pad_", ",", "myTrimSize_", ",", "sigma_", ",", "avgFrameN_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myAllParametersEach", ",", "myTrimImgs", ",", "myOrigins", ",", "tempTime", ",", "tempCenter", ",", "frameShift", ",", "myImgs", ",", "myData", ",", "myFits", ",", "tempData3D", ",", "myFit", ",", "myPos", ",", "myPosImgCoordn", ",", "myAbsPos", ",", "myIntBG", ",", "myPos90Conf", ",", "myPos90ConfImgCoordn", ",", "myAbsPos90Conf", ",", "myIntBG90Conf", ",", "myFitData", ",", "CC", ",", "A", ",", "x0", ",", "y0", ",", "x", ",", "y"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"myAllParametersEach", ",", "myPos", ",", "myFitData"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"myTrimImgs", ",", "myOrigins"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempTime", "=", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "t", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempCenter", "=", RowBox[{"Ceiling", "[", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "t", ",", "2", ",", RowBox[{"2", ";;"}]}], "\[RightDoubleBracket]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"frameShift", "=", RowBox[{"Ceiling", "[", RowBox[{"avgFrameN", "/", "2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myImgs", "=", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"myColMovie", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"tempTime", "+", "frameShift", "-", "1"}]}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"tempCenter", "-", "pad"}], ",", RowBox[{"tempCenter", "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"myOrigins", "=", RowBox[{"tempCenter", "-", "pad", "-", "1"}]}]}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"t", ",", "1", ",", RowBox[{"Length", "[", RowBox[{ "mylongtracks", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"myData", "=", RowBox[{"ImageData", "/@", "myTrimImgs"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFits", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempData3D", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"MapIndexed", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ "#2", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{ "#2", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", "#1"}], "}"}], "&"}], ",", RowBox[{ "myData", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{"{", "2", "}"}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Clear", "[", RowBox[{ "CC", ",", "A", ",", "x0", ",", "y0", ",", "x", ",", "y"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "=", RowBox[{"NonlinearModelFit", "[", RowBox[{"tempData3D", ",", RowBox[{"CC", "+", RowBox[{"A", " ", RowBox[{"E", "^", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"(", RowBox[{"x", "-", "x0"}], ")"}], "^", "2"}]}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"sigma", "^", "2"}]}], ")"}]}], "-", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"y", "-", "y0"}], ")"}], "^", "2"}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"sigma", "^", "2"}]}], ")"}]}]}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"CC", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{"A", ",", RowBox[{"tempData3D", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", "*", "pad", "*", RowBox[{"(", RowBox[{"pad", "+", "1"}], ")"}]}], "+", "1"}], ")"}], ",", "3"}], "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"y0", ",", RowBox[{"pad", "+", "1"}]}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "[", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], "]"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "[", "myData", "]"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Rearrange", " ", "the", " ", "parameters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"myPos", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"4", ",", "5"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPosImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos", "=", RowBox[{"myPosImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBG", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90ConfImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}], "=", RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos90Conf", "=", RowBox[{"myPos90ConfImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBG90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Output", " ", "the", " ", "paramters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myAllParametersEach", "=", RowBox[{"Flatten", "/@", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], ",", "myAbsPos", ",", "myIntBG", ",", RowBox[{"ConstantArray", "[", RowBox[{"sigma", ",", RowBox[{"{", RowBox[{ RowBox[{"Length", "[", "myFits", "]"}], ",", "2"}], "}"}]}], "]"}], ",", "myAbsPos90Conf", ",", "myIntBG90Conf", ",", RowBox[{"ConstantArray", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{ RowBox[{"Length", "[", "myFits", "]"}], ",", "4"}], "}"}]}], "]"}], ",", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "3"}], "\[RightDoubleBracket]"}]}], "}"}]}]}]}], ",", "myPos", ",", "myData"}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "[", "mylongtracks", "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myAllParametersEach", "//", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"#", ",", "1"}], "]"}], "&"}]}], ",", "myPos", ",", "myFitData"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.6515211934142847`*^9, 3.651521280519267*^9}, { 3.6515213469590673`*^9, 3.6515214200482473`*^9}, {3.651521518984906*^9, 3.6515218293366575`*^9}, {3.6515218704650097`*^9, 3.651521919528816*^9}, { 3.655581282500985*^9, 3.6555813891080823`*^9}, {3.65565276167636*^9, 3.655652802204678*^9}, {3.655660380715144*^9, 3.6556603808751535`*^9}, { 3.655721972211976*^9, 3.655721995987336*^9}, {3.6558217347800684`*^9, 3.655821738523283*^9}, {3.655821772268213*^9, 3.6558218199079375`*^9}, { 3.6558220477879715`*^9, 3.655822098179854*^9}, {3.655822176491333*^9, 3.6558222037238903`*^9}, {3.6558251922148223`*^9, 3.6558251961030445`*^9}, {3.6558252647589717`*^9, 3.6558252785097585`*^9}, {3.655825327463558*^9, 3.65582555844777*^9}, { 3.6558273393006287`*^9, 3.6558273978079753`*^9}, {3.655834316381695*^9, 3.655834318069792*^9}, {3.6558443721728535`*^9, 3.6558444445739946`*^9}, { 3.655844977494476*^9, 3.6558449788855553`*^9}, {3.6558453738731475`*^9, 3.655845391423151*^9}, {3.663965324194535*^9, 3.663965335002153*^9}, 3.663965615067172*^9, {3.6838988788284435`*^9, 3.68389888575784*^9}},ExpressionUUID->"5d229933-ef6b-4dda-ac22-\ 8fd6ca5214b6"], Cell[BoxData[ RowBox[{ RowBox[{"ParticleFittingFixedSigmaInclinedBG", "[", RowBox[{ "myColMovie_", ",", "channel_", ",", "mylongtracks_", ",", "pad_", ",", "myTrimSize_", ",", "sigma_", ",", "avgFrameN_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myAllParametersEach", ",", "myTrimImgs", ",", "myOrigins", ",", "tempTime", ",", "tempCenter", ",", "frameShift", ",", "myImgs", ",", "myData", ",", "myFits", ",", "tempData3D", ",", "myFit", ",", "myPos", ",", "myPosImgCoordn", ",", "myAbsPos", ",", "myIntBG", ",", "myInclinedBG", ",", "myPos90Conf", ",", "myPos90ConfImgCoordn", ",", "myAbsPos90Conf", ",", "myIntBG90Conf", ",", "myInclinedBG90conf", ",", "myFitData", ",", "CC", ",", "BGa", ",", "BGb", ",", "A", ",", "x0", ",", "y0", ",", "x", ",", "y"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"myAllParametersEach", ",", "myPos", ",", "myFitData"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"myTrimImgs", ",", "myOrigins"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempTime", "=", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "t", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempCenter", "=", RowBox[{"Ceiling", "[", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "t", ",", "2", ",", RowBox[{"2", ";;"}]}], "\[RightDoubleBracket]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"frameShift", "=", RowBox[{"Ceiling", "[", RowBox[{"avgFrameN", "/", "2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myImgs", "=", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"myColMovie", "\[LeftDoubleBracket]", RowBox[{"channel", ",", RowBox[{"tempTime", "+", "frameShift", "-", "1"}]}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"tempCenter", "-", "pad"}], ",", RowBox[{"tempCenter", "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"myOrigins", "=", RowBox[{"tempCenter", "-", "pad", "-", "1"}]}]}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"t", ",", "1", ",", RowBox[{"Length", "[", RowBox[{ "mylongtracks", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"myData", "=", RowBox[{"ImageData", "/@", "myTrimImgs"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFits", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempData3D", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"MapIndexed", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ "#2", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{ "#2", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", "#1"}], "}"}], "&"}], ",", RowBox[{ "myData", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{"{", "2", "}"}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Clear", "[", RowBox[{ "CC", ",", "BGa", ",", "BGb", ",", "A", ",", "x0", ",", "y0", ",", "x", ",", "y"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "=", RowBox[{"NonlinearModelFit", "[", RowBox[{"tempData3D", ",", RowBox[{"CC", " ", "+", " ", RowBox[{"BGa", " ", "x"}], " ", "+", " ", RowBox[{"BGb", " ", "y"}], "+", RowBox[{"A", " ", RowBox[{"E", "^", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"(", RowBox[{"x", "-", "x0"}], ")"}], "^", "2"}]}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"sigma", "^", "2"}]}], ")"}]}], "-", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"y", "-", "y0"}], ")"}], "^", "2"}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"sigma", "^", "2"}]}], ")"}]}]}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"CC", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{"A", ",", RowBox[{"tempData3D", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", "*", "pad", "*", RowBox[{"(", RowBox[{"pad", "+", "1"}], ")"}]}], "+", "1"}], ")"}], ",", "3"}], "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"y0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"BGa", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{"BGb", ",", "0.01"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "[", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], "]"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "[", "myData", "]"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Rearrange", " ", "the", " ", "parameters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"myPos", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"4", ",", "5"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPosImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos", "=", RowBox[{"myPosImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBG", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myInclinedBG", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"6", ",", "7"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos90ConfImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos90Conf", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}], "=", RowBox[{"myPos90ConfImgCoordn", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos90Conf", "=", RowBox[{"myPos90ConfImgCoordn", "+", "myOrigins"}]}], ";", "\[IndentingNewLine]", RowBox[{"myIntBG90Conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myInclinedBG90conf", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "3", ",", RowBox[{"{", RowBox[{"5", ",", "6"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Output", " ", "the", " ", "paramters"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myAllParametersEach", "=", RowBox[{"Flatten", "/@", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], ",", "myAbsPos", ",", "myIntBG", ",", RowBox[{"ConstantArray", "[", RowBox[{"sigma", ",", RowBox[{"{", RowBox[{ RowBox[{"Length", "[", "myFits", "]"}], ",", "2"}], "}"}]}], "]"}], ",", "myAbsPos90Conf", ",", "myIntBG90Conf", ",", RowBox[{"ConstantArray", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{ RowBox[{"Length", "[", "myFits", "]"}], ",", "4"}], "}"}]}], "]"}], ",", RowBox[{"mylongtracks", "\[LeftDoubleBracket]", RowBox[{"j", ",", "All", ",", "3"}], "\[RightDoubleBracket]"}], ",", "myInclinedBG", ",", "myInclinedBG90conf"}], "}"}]}]}]}], ",", "myPos", ",", "myData"}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "[", "mylongtracks", "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myAllParametersEach", "//", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"#", ",", "1"}], "]"}], "&"}]}], ",", "myPos", ",", "myFitData"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.6515211934142847`*^9, 3.651521280519267*^9}, { 3.6515213469590673`*^9, 3.6515214200482473`*^9}, {3.651521518984906*^9, 3.6515218293366575`*^9}, {3.6515218704650097`*^9, 3.651521919528816*^9}, { 3.655581282500985*^9, 3.6555813891080823`*^9}, {3.65565276167636*^9, 3.655652802204678*^9}, {3.655660380715144*^9, 3.6556603808751535`*^9}, { 3.655721972211976*^9, 3.655721995987336*^9}, {3.6558217347800684`*^9, 3.655821738523283*^9}, {3.655821772268213*^9, 3.6558218199079375`*^9}, { 3.6558220477879715`*^9, 3.655822098179854*^9}, {3.655822176491333*^9, 3.6558222037238903`*^9}, {3.6558251922148223`*^9, 3.6558251961030445`*^9}, {3.6558252647589717`*^9, 3.6558252785097585`*^9}, {3.655825327463558*^9, 3.65582555844777*^9}, { 3.6558273393006287`*^9, 3.6558273978079753`*^9}, {3.655834316381695*^9, 3.655834318069792*^9}, {3.6558443721728535`*^9, 3.6558444445739946`*^9}, { 3.655844977494476*^9, 3.6558449788855553`*^9}, {3.6558453738731475`*^9, 3.655845391423151*^9}, {3.663965485538763*^9, 3.6639655359626474`*^9}, 3.6639656173703036`*^9, {3.6639657258505087`*^9, 3.663965767234875*^9}, { 3.6639658125564675`*^9, 3.6639658154426327`*^9}, {3.6639660619637327`*^9, 3.6639661631625214`*^9}, {3.663966219218727*^9, 3.6639662361706967`*^9}, { 3.6639663351493583`*^9, 3.663966338347541*^9}, 3.68389895482279*^9},ExpressionUUID->"8625576e-b9e6-4cd3-9b6c-\ e7c2045601c7"] }, Closed]], Cell[CellGroupData[{ Cell["BeadsFitting", "Subsection", CellChangeTimes->{{3.651523106216691*^9, 3.6515231119520187`*^9}},ExpressionUUID->"15131a78-008e-479d-841f-\ 7f3296219bb9"], Cell[BoxData[ RowBox[{ RowBox[{"BeadsFitting", "[", RowBox[{"myRefBeadsImg_", ",", "myPosGuess_", ",", "pad_"}], "]"}], ":=", "\[IndentingNewLine]", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myTrimSize", ",", "myTrimImgs", ",", "myOrigins", ",", "tempCenter", ",", "myImgs", ",", "myData", ",", "myFits", ",", "tempData3D", ",", "myFit", ",", "CC", ",", "A", ",", "x", ",", "x0", ",", "a", ",", "y", ",", "y0", ",", "b", ",", "myPos", ",", "myPosImgCoordn", ",", "myAbsPos"}], "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"myTrimSize", "=", RowBox[{ RowBox[{"2", "*", "pad"}], "+", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"myTrimImgs", ",", "myOrigins"}], "}"}], "=", RowBox[{ RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempCenter", "=", RowBox[{"Ceiling", "[", RowBox[{ "myPosGuess", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"myImgs", "=", RowBox[{"ImageTrim", "[", RowBox[{"myRefBeadsImg", ",", RowBox[{"{", RowBox[{ RowBox[{"tempCenter", "-", "pad"}], ",", RowBox[{"tempCenter", "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"myOrigins", "=", RowBox[{"tempCenter", "-", "pad", "-", "1"}]}]}], "}"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "[", "myPosGuess", "]"}], ",", "1"}], "}"}]}], "]"}], "//", "Transpose"}]}], ";", "\[IndentingNewLine]", RowBox[{"myData", "=", RowBox[{"ImageData", "/@", "myTrimImgs"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFits", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"tempData3D", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"MapIndexed", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ "#2", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{ "#2", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", "#1"}], "}"}], "&"}], ",", RowBox[{ "myData", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{"{", "2", "}"}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Clear", "[", RowBox[{ "CC", ",", "A", ",", "x0", ",", "a", ",", "y0", ",", "b", ",", "x", ",", "y"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "=", RowBox[{"NonlinearModelFit", "[", RowBox[{"tempData3D", ",", RowBox[{"CC", "+", RowBox[{"A", " ", RowBox[{"E", "^", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"(", RowBox[{"x", "-", "x0"}], ")"}], "^", "2"}]}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"a", "^", "2"}]}], ")"}]}], "-", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"y", "-", "y0"}], ")"}], "^", "2"}], "/", RowBox[{"(", RowBox[{"2", " ", RowBox[{"b", "^", "2"}]}], ")"}]}]}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"CC", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"A", ",", RowBox[{"tempData3D", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", "*", "pad", "*", RowBox[{"(", RowBox[{"pad", "+", "1"}], ")"}]}], "+", "1"}], ")"}], ",", "3"}], "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"a", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"y0", ",", RowBox[{"pad", "+", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"b", ",", "1"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "[", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], "]"}]}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "[", "myData", "]"}], ",", "1"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPos", "=", RowBox[{"myFits", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1", ",", "1", ",", RowBox[{"{", RowBox[{"4", ",", "6"}], "}"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myPosImgCoordn", "=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "-", "0.5"}], ",", RowBox[{"myTrimSize", "-", RowBox[{"myPos", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], "+", "0.5"}]}], "}"}], "//", "Thread"}]}], ";", "\[IndentingNewLine]", RowBox[{"myAbsPos", "=", RowBox[{"myPosImgCoordn", "+", "myOrigins"}]}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.6483906843449163`*^9, 3.6483906948281345`*^9}, { 3.6483907313009987`*^9, 3.64839074897783*^9}, {3.648390922446535*^9, 3.648391064072584*^9}, {3.6483911220930867`*^9, 3.648391274564155*^9}, { 3.6483913389338684`*^9, 3.648391349604287*^9}, {3.648391401635379*^9, 3.6483914032577815`*^9}},ExpressionUUID->"0d886700-64fc-48f6-a70b-\ 8aa6016806b9"], Cell[BoxData[ RowBox[{ RowBox[{"BeadsSorting", "[", RowBox[{"myRedAbsPos_", ",", "myGreenAbsPos_", ",", "dist_"}], "]"}], ":=", "\[IndentingNewLine]", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myRedAbsPosSort", ",", "distanceOriginal", ",", "idx", ",", "myRedAbsPos4Calc", ",", "myGreenAbsPos4Calc", ",", "distanceRaw"}], "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"myRedAbsPosSort", "=", RowBox[{ RowBox[{"Nearest", "[", RowBox[{"myRedAbsPos", ",", "myGreenAbsPos"}], "]"}], "//", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"#", ",", "1"}], "]"}], "&"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"distanceOriginal", "=", RowBox[{"EuclideanDistance", "@@@", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{"myGreenAbsPos", ",", "myRedAbsPosSort"}], "}"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"idx", "=", RowBox[{"Position", "[", RowBox[{"distanceOriginal", ",", RowBox[{"x_", "/;", RowBox[{"x", ">", "dist"}]}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{ "myRedAbsPos4Calc", ",", "myGreenAbsPos4Calc", ",", "distanceRaw"}], "}"}], "=", RowBox[{ RowBox[{ RowBox[{"Delete", "[", RowBox[{"#", ",", "idx"}], "]"}], "&"}], "/@", RowBox[{"{", RowBox[{ "myRedAbsPosSort", ",", "myGreenAbsPos", ",", "distanceOriginal"}], "}"}]}]}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.6483909446005745`*^9, 3.648390951901387*^9}, { 3.6483915027763567`*^9, 3.648391714274162*^9}, {3.6515238560495787`*^9, 3.6515239184811497`*^9}},ExpressionUUID->"dfb43ade-3e50-4814-84ca-\ 48da3860dba6"], Cell[BoxData[ RowBox[{ RowBox[{"BeadsTransform", "[", RowBox[{"myRedAbsPos_", ",", "myGreenAbsPos_", ",", "dist_"}], "]"}], ":=", "\[IndentingNewLine]", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myRedAbsPos4Calc", ",", "myGreenAbsPos4Calc", ",", "distanceRaw", ",", "myTfFuncError", ",", "myTfFunc", ",", "myRedCorrPos", ",", "distanceCorrected"}], "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "myRedAbsPos4Calc", ",", "myGreenAbsPos4Calc", ",", "distanceRaw"}], "}"}], "=", RowBox[{"BeadsSorting", "[", RowBox[{"myRedAbsPos", ",", "myGreenAbsPos", ",", "dist"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"myTfFuncError", ",", "myTfFunc"}], "}"}], "=", RowBox[{"FindGeometricTransform", "[", RowBox[{"myGreenAbsPos4Calc", ",", "myRedAbsPos4Calc"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myRedCorrPos", "=", RowBox[{"myTfFunc", "[", "myRedAbsPos4Calc", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"distanceCorrected", "=", RowBox[{"EuclideanDistance", "@@@", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{"myGreenAbsPos4Calc", ",", "myRedCorrPos"}], "}"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ "myTfFuncError", ",", "myTfFunc", ",", "distanceRaw", ",", "distanceCorrected"}], "}"}]}]}], "\[IndentingNewLine]", "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.648392120969268*^9, 3.648392151951922*^9}, { 3.6483921960239997`*^9, 3.6483921962424*^9}, {3.6484004568741035`*^9, 3.648400590161727*^9}, {3.648400991802699*^9, 3.6484010666779823`*^9}, { 3.651523934337057*^9, 3.6515240057701426`*^9}},ExpressionUUID->"1538a00d-0144-4058-996a-\ 9650e2a77268"], Cell[BoxData[ RowBox[{ RowBox[{"BeadsCheck", "[", RowBox[{"myRedAbsPos_", ",", "myGreenAbsPos_", ",", "dist_"}], "]"}], ":=", "\[IndentingNewLine]", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "myRedAbsPos4Calc", ",", "myGreenAbsPos4Calc", ",", "distanceRaw", ",", "myRedCorrPos", ",", "distanceCorrected"}], "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "myRedAbsPos4Calc", ",", "myGreenAbsPos4Calc", ",", "distanceRaw"}], "}"}], "=", RowBox[{"BeadsSorting", "[", RowBox[{"myRedAbsPos", ",", "myGreenAbsPos", ",", "dist"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myRedCorrPos", "=", RowBox[{"myTfFunc", "[", "myRedAbsPos4Calc", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"distanceCorrected", "=", RowBox[{"EuclideanDistance", "@@@", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{"myGreenAbsPos4Calc", ",", "myRedCorrPos"}], "}"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"Insert", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"distanceRaw", ",", "distanceCorrected"}], "}"}], "//", "Transpose"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\""}], "}"}], ",", "1"}], "]"}], "//", "TableForm"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.6484012753809195`*^9, 3.648401405682372*^9}, 3.6515236689298763`*^9, 3.6515237173296447`*^9, {3.651524011241455*^9, 3.6515240637694597`*^9}},ExpressionUUID->"ecb7259e-9c8d-425b-87eb-\ ee384ab6cc34"] }, Closed]], Cell[CellGroupData[{ Cell["TrackFiller", "Subsection", CellChangeTimes->{{3.681819224690225*^9, 3.68181922983352*^9}},ExpressionUUID->"59e27c1d-b9e5-49f5-987d-\ 26c585741570"], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ "This", " ", "module", " ", "fills", " ", "any", " ", "gaps", " ", "in", " ", "tracks", " ", "by", " ", "interpolating", " ", "the", " ", "position", " ", "from", " ", "the", " ", "last", " ", "postion", " ", "before", " ", "the", " ", "gap", " ", "and", " ", "the", " ", "first", " ", "position", " ", "after", " ", "the", " ", "gap"}], " ", "*)"}]], "Input", CellChangeTimes->{{3.681839614018428*^9, 3.681839638313818*^9}, { 3.681839694090008*^9, 3.681839739850625*^9}},ExpressionUUID->"20950c22-f0cb-4905-8fbc-\ 3618e0a24b7e"], Cell[BoxData[ RowBox[{ RowBox[{"TrackFiller", "[", "tracksList_", "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "filledTracksList", ",", "myIdx", ",", "missingStart", ",", "missingNum", ",", "missingStartShifted", ",", "spotEnd", ",", "spotStart", ",", "fillingNum", ",", "fillingPos", ",", "fillingSpots", ","}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"filledTracksList", "=", "tracksList"}], ";", "\[IndentingNewLine]", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"myIdx", "=", RowBox[{ RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{"2", ";;"}], ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], "-", RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{";;", RowBox[{ RowBox[{"Length", "@", RowBox[{ "filledTracksList", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], "-", "1"}]}], ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"missingStart", "=", RowBox[{ RowBox[{ RowBox[{"Position", "[", RowBox[{"myIdx", ",", RowBox[{"x_", "/;", RowBox[{"x", ">", "1"}]}]}], "]"}], "+", "1"}], "//", "Flatten"}]}], ";", "\[IndentingNewLine]", RowBox[{"missingNum", "=", RowBox[{ RowBox[{"Cases", "[", RowBox[{"myIdx", ",", RowBox[{"x_", "/;", RowBox[{"x", ">", "1"}]}]}], "]"}], "-", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"missingStart", "\[NotEqual]", RowBox[{"{", "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"missingStartShifted", "=", "missingStart"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"missingStartShifted", "\[LeftDoubleBracket]", RowBox[{"2", ";;"}], "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{"missingStart", "\[LeftDoubleBracket]", RowBox[{"2", ";;"}], "\[RightDoubleBracket]"}], "+", RowBox[{ RowBox[{"(", RowBox[{"FoldList", "[", RowBox[{"Plus", ",", "missingNum"}], "]"}], ")"}], "\[LeftDoubleBracket]", RowBox[{";;", RowBox[{ RowBox[{"Length", "@", "missingNum"}], "-", "1"}]}], "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"spotEnd", "=", RowBox[{ RowBox[{"(", RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{ RowBox[{ "missingStartShifted", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "-", "1"}]}], "\[RightDoubleBracket]"}], ")"}], "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"spotStart", "=", RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{ "missingStartShifted", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"fillingNum", "=", RowBox[{"Range", "[", RowBox[{ RowBox[{ RowBox[{ "spotEnd", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+", "1"}], ",", RowBox[{ RowBox[{ "spotStart", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "-", "1"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"fillingPos", "=", RowBox[{ RowBox[{ RowBox[{"Plus", "[", RowBox[{"#", ",", RowBox[{"spotEnd", "\[LeftDoubleBracket]", RowBox[{"{", RowBox[{"2", ",", "3"}], "}"}], "\[RightDoubleBracket]"}]}], "]"}], "&"}], "/@", RowBox[{"Outer", "[", RowBox[{"Times", ",", RowBox[{ RowBox[{"Range", "@", RowBox[{ "missingNum", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}]}], "/", RowBox[{"(", RowBox[{ RowBox[{ "missingNum", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "+", "1"}], ")"}]}], ",", RowBox[{ RowBox[{"spotStart", "\[LeftDoubleBracket]", RowBox[{"{", RowBox[{"2", ",", "3"}], "}"}], "\[RightDoubleBracket]"}], "-", RowBox[{"spotEnd", "\[LeftDoubleBracket]", RowBox[{"{", RowBox[{"2", ",", "3"}], "}"}], "\[RightDoubleBracket]"}]}]}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"fillingSpots", "=", RowBox[{"ConstantArray", "[", RowBox[{ RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{ RowBox[{ "missingStartShifted", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "-", "1"}]}], "\[RightDoubleBracket]"}], ",", RowBox[{ "missingNum", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"fillingSpots", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2"}], "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{"Thread", "@", RowBox[{"{", RowBox[{"fillingNum", ",", "fillingPos"}], "}"}]}], "//", "Flatten"}], "//", RowBox[{ RowBox[{"Partition", "[", RowBox[{"#", ",", "3"}], "]"}], "&"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ "filledTracksList", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], "=", RowBox[{"Insert", "[", RowBox[{ RowBox[{ "filledTracksList", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{ "fillingSpots", "\[LeftDoubleBracket]", "k", "\[RightDoubleBracket]"}], ",", RowBox[{ RowBox[{ "missingStartShifted", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "+", "k", "-", "1"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", RowBox[{ "missingNum", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], ",", "1"}], "}"}]}], "]"}], ";"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "@", "missingStart"}], ",", "1"}], "}"}]}], "]"}], ";"}]}], "]"}], ";"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "@", "filledTracksList"}], ",", "1"}], "}"}]}], "]"}], ";", "\[IndentingNewLine]", "filledTracksList"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.681819232566676*^9, 3.681819281457472*^9}, { 3.681836758312091*^9, 3.681836906328557*^9}, {3.681836938336388*^9, 3.681836980535802*^9}, {3.681837014016717*^9, 3.681837143512123*^9}, { 3.6818371739048615`*^9, 3.6818373862010045`*^9}, {3.6818390382424955`*^9, 3.68183903989859*^9}, {3.681839128498658*^9, 3.6818391529510565`*^9}},ExpressionUUID->"f0b98312-cc00-410a-ab23-\ b3618ec2f9d2"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"{", RowBox[{"rna1", ",", "rna2", ",", RowBox[{"rna3", "..."}]}], "}"}], " ", "each", " ", "rna", " ", "should", " ", "have", " ", RowBox[{"{", RowBox[{ RowBox[{"frame", "#"}], ",", " ", "x", ",", " ", "y", ",", " ", "z"}], "}"}], " ", "this", " ", "should", " ", "work", " ", "any", " ", "dimensions"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"TrackFillerSimple", "[", "tracksList_", "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "filledTracksList", ",", "myIdx", ",", "missingStart", ",", "missingNum", ",", "missingStartShifted", ",", "spotEnd", ",", "spotStart", ",", "fillingNum", ",", "fillingPos", ",", "fillingSpots", ","}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"filledTracksList", "=", "tracksList"}], ";", "\[IndentingNewLine]", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"myIdx", "=", RowBox[{"IntegerPart", "/@", RowBox[{"(", RowBox[{ RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{"2", ";;"}], ",", "1"}], "\[RightDoubleBracket]"}], "-", RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{";;", RowBox[{ RowBox[{"Length", "@", RowBox[{ "filledTracksList", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], "-", "1"}]}], ",", "1"}], "\[RightDoubleBracket]"}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"missingStart", "=", RowBox[{ RowBox[{ RowBox[{"Position", "[", RowBox[{"myIdx", ",", RowBox[{"x_", "/;", RowBox[{"x", ">", "1"}]}]}], "]"}], "+", "1"}], "//", "Flatten"}]}], ";", "\[IndentingNewLine]", RowBox[{"missingNum", "=", RowBox[{ RowBox[{"Cases", "[", RowBox[{"myIdx", ",", RowBox[{"x_", "/;", RowBox[{"x", ">", "1"}]}]}], "]"}], "-", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"missingStart", "\[NotEqual]", RowBox[{"{", "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"missingStartShifted", "=", "missingStart"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"missingStartShifted", "\[LeftDoubleBracket]", RowBox[{"2", ";;"}], "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{"missingStart", "\[LeftDoubleBracket]", RowBox[{"2", ";;"}], "\[RightDoubleBracket]"}], "+", RowBox[{ RowBox[{"(", RowBox[{"FoldList", "[", RowBox[{"Plus", ",", "missingNum"}], "]"}], ")"}], "\[LeftDoubleBracket]", RowBox[{";;", RowBox[{ RowBox[{"Length", "@", "missingNum"}], "-", "1"}]}], "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"spotEnd", "=", RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{ RowBox[{ "missingStartShifted", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "-", "1"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"spotStart", "=", RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{ "missingStartShifted", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"fillingNum", "=", RowBox[{"Range", "[", RowBox[{ RowBox[{ RowBox[{ "spotEnd", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+", "1"}], ",", RowBox[{ RowBox[{ "spotStart", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "-", "1"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"fillingPos", "=", RowBox[{ RowBox[{ RowBox[{"Plus", "[", RowBox[{"#", ",", RowBox[{"spotEnd", "\[LeftDoubleBracket]", RowBox[{"2", ";;"}], "\[RightDoubleBracket]"}]}], "]"}], "&"}], "/@", RowBox[{"Outer", "[", RowBox[{"Times", ",", RowBox[{ RowBox[{"Range", "@", RowBox[{ "missingNum", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}]}], "/", RowBox[{"(", RowBox[{ RowBox[{ "missingNum", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "+", "1"}], ")"}]}], ",", RowBox[{ RowBox[{"spotStart", "\[LeftDoubleBracket]", RowBox[{"2", ";;"}], "\[RightDoubleBracket]"}], "-", RowBox[{"spotEnd", "\[LeftDoubleBracket]", RowBox[{"2", ";;"}], "\[RightDoubleBracket]"}]}]}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"fillingSpots", "=", RowBox[{"ConstantArray", "[", RowBox[{ RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", RowBox[{ RowBox[{ "missingStartShifted", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "-", "1"}]}], "\[RightDoubleBracket]"}], ",", RowBox[{ "missingNum", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "fillingSpots", "\[LeftDoubleBracket]", "All", "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{"Thread", "@", RowBox[{"{", RowBox[{"fillingNum", ",", "fillingPos"}], "}"}]}], "//", "Flatten"}], "//", RowBox[{ RowBox[{"Partition", "[", RowBox[{"#", ",", RowBox[{"Length", "@", RowBox[{"filledTracksList", "\[LeftDoubleBracket]", RowBox[{"i", ",", "1"}], "\[RightDoubleBracket]"}]}]}], "]"}], "&"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ "filledTracksList", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], "=", RowBox[{"Insert", "[", RowBox[{ RowBox[{ "filledTracksList", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{ "fillingSpots", "\[LeftDoubleBracket]", "k", "\[RightDoubleBracket]"}], ",", RowBox[{ RowBox[{ "missingStartShifted", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], "+", "k", "-", "1"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", RowBox[{ "missingNum", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], ",", "1"}], "}"}]}], "]"}], ";"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "@", "missingStart"}], ",", "1"}], "}"}]}], "]"}], ";"}]}], "]"}], ";"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "@", "filledTracksList"}], ",", "1"}], "}"}]}], "]"}], ";", "\[IndentingNewLine]", "filledTracksList"}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.746894618889022*^9, 3.746894629155491*^9}, { 3.7468946650927134`*^9, 3.746894677499584*^9}, {3.7468947427218475`*^9, 3.746894756557542*^9}, {3.7468991773078504`*^9, 3.746899234227825*^9}, { 3.7468992810567284`*^9, 3.7468992876923656`*^9}, {3.7469001266188517`*^9, 3.7469001740415173`*^9}, {3.7469002628981924`*^9, 3.746900344411059*^9}},ExpressionUUID->"542e1e3c-1177-4b96-8ecf-\ b20cebcd9a36"] }, Closed]], Cell[CellGroupData[{ Cell["FindConnectableTracks", "Subsection", CellChangeTimes->{{3.679313898838685*^9, 3.6793139041269875`*^9}},ExpressionUUID->"ee12a3e5-e31e-4014-bc5b-\ b36230288753"], Cell[BoxData[ RowBox[{ RowBox[{"FindConnectableTracks2", "[", RowBox[{ "tracksList_", ",", "myMaxN_", ",", "dist_", ",", "time_", ",", "trackNumber_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "allTracksStart", ",", "timeEnd", ",", "posiEnd", ",", "afterTracks", ",", "listConnectTracks", ",", "tempConnectTracks", ",", "tempConnectTracks2", ",", "tempConnectTracks3", ",", "posiConnectTracks", ",", "tempTrack", ",", "tempFrame"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"allTracksStart", "=", RowBox[{"tracksList", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"trackNumber", "+", "1"}], ")"}], ";;"}], ",", "1"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"timeEnd", "=", RowBox[{ RowBox[{"(", RowBox[{"Last", "@", RowBox[{ "tracksList", "\[LeftDoubleBracket]", "trackNumber", "\[RightDoubleBracket]"}]}], ")"}], "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"posiEnd", "=", RowBox[{ RowBox[{"(", RowBox[{"Last", "@", RowBox[{ "tracksList", "\[LeftDoubleBracket]", "trackNumber", "\[RightDoubleBracket]"}]}], ")"}], "\[LeftDoubleBracket]", RowBox[{"2", ",", RowBox[{"{", RowBox[{"2", ",", "3"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"afterTracks", "=", RowBox[{"Cases", "[", RowBox[{"allTracksStart", ",", RowBox[{"x_", "/;", RowBox[{ RowBox[{"timeEnd", "<", RowBox[{"x", "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}], "\[LessEqual]", RowBox[{"timeEnd", "+", "time"}]}], "&&", RowBox[{ RowBox[{ RowBox[{ "posiEnd", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "-", "dist"}], "<", RowBox[{"x", "\[LeftDoubleBracket]", RowBox[{"2", ",", "2"}], "\[RightDoubleBracket]"}], "<", RowBox[{ RowBox[{ "posiEnd", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+", "dist"}]}], "&&", RowBox[{ RowBox[{ RowBox[{ "posiEnd", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "-", "dist"}], "<", RowBox[{"x", "\[LeftDoubleBracket]", RowBox[{"2", ",", "3"}], "\[RightDoubleBracket]"}], "<", RowBox[{ RowBox[{ "posiEnd", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "+", "dist"}]}]}]}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"listConnectTracks", "=", RowBox[{"Flatten", "@", RowBox[{"{", RowBox[{"trackNumber", ",", RowBox[{"If", "[", RowBox[{ RowBox[{"afterTracks", "\[NotEqual]", RowBox[{"{", "}"}]}], ",", RowBox[{"afterTracks", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", "}"}]}], "]"}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"tempConnectTracks", "=", RowBox[{ RowBox[{ RowBox[{ "tracksList", "\[LeftDoubleBracket]", "listConnectTracks", "\[RightDoubleBracket]"}], "//", "Flatten"}], "//", RowBox[{ RowBox[{"Partition", "[", RowBox[{"#", ",", RowBox[{"Length", "@", RowBox[{"Flatten", "@", RowBox[{"tracksList", "\[LeftDoubleBracket]", RowBox[{"1", ",", "1"}], "\[RightDoubleBracket]"}]}]}]}], "]"}], "&"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"tempConnectTracks", "\[LeftDoubleBracket]", RowBox[{"All", ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}], "=", RowBox[{"tempConnectTracks", "\[LeftDoubleBracket]", RowBox[{"All", ",", RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempConnectTracks2", "=", RowBox[{ RowBox[{"tempConnectTracks", "//", "Sort"}], "//", RowBox[{ RowBox[{"SplitBy", "[", RowBox[{"#", ",", "First"}], "]"}], "&"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"tempConnectTracks3", "=", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"tempConnectTracks2", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"tempConnectTracks2", "\[LeftDoubleBracket]", RowBox[{"All", ",", "All", ",", RowBox[{"2", ";;"}]}], "\[RightDoubleBracket]"}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"posiConnectTracks", "=", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"Range", "@", "myMaxN"}], ",", RowBox[{"ConstantArray", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", "myMaxN"}], "]"}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"tempFrame", "=", RowBox[{"tempConnectTracks3", "\[LeftDoubleBracket]", RowBox[{"i", ",", "1"}], "\[RightDoubleBracket]"}]}], ";", RowBox[{ RowBox[{"posiConnectTracks", "\[LeftDoubleBracket]", RowBox[{"tempFrame", ",", "2"}], "\[RightDoubleBracket]"}], "=", RowBox[{"tempConnectTracks3", "\[LeftDoubleBracket]", RowBox[{"i", ",", "2"}], "\[RightDoubleBracket]"}]}], ";"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "@", "tempConnectTracks3"}], ",", "1"}], "}"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"listConnectTracks", ",", "posiConnectTracks"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.6787314149002867`*^9, 3.678731473628646*^9}, { 3.678731527835746*^9, 3.678731651943845*^9}, {3.67873192075622*^9, 3.678731925884513*^9}, {3.6787323688368483`*^9, 3.678732492620929*^9}, { 3.6787335929338627`*^9, 3.678733599774254*^9}, {3.6787336336611924`*^9, 3.6787336361663356`*^9}, 3.6790900466130695`*^9, {3.679090105420433*^9, 3.6790901372212524`*^9}, {3.67909033683667*^9, 3.6790904911094933`*^9}, { 3.6791367729136615`*^9, 3.67913678355427*^9}, {3.6791370766180325`*^9, 3.6791371439218817`*^9}, {3.6791371846022086`*^9, 3.6791372102186737`*^9}, {3.6791372727062483`*^9, 3.679137333898748*^9}, { 3.679137417098507*^9, 3.6791374283151484`*^9}, {3.6791501942853203`*^9, 3.6791502799182177`*^9}, {3.679152732282485*^9, 3.6791527339295793`*^9}, { 3.6792419937019463`*^9, 3.679242050430191*^9}, {3.679250900469384*^9, 3.679250901061418*^9}, {3.679258064987171*^9, 3.6792580677713304`*^9}, { 3.6792585280766582`*^9, 3.6792585508039584`*^9}, {3.6792616162782936`*^9, 3.6792616315821686`*^9}, {3.6792620662780323`*^9, 3.679262089254346*^9}},ExpressionUUID->"8bcfef6e-bc30-4652-babb-\ 1e729a432240"] }, Closed]], Cell[CellGroupData[{ Cell["NearestNeighborLinking", "Subsection", CellChangeTimes->{{3.713636244958868*^9, 3.713636252095276*^9}},ExpressionUUID->"9754fe7b-84a8-4270-84ee-\ d77ba576ce7c"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Using", " ", "a", " ", "globally", " ", "determined", " ", RowBox[{"(", "automatic", ")"}], " ", "threshod", " ", "for", " ", "binarization"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"NearestNeighborLinking1", "[", RowBox[{ "img_", ",", "channel_", ",", "startFrame_", ",", "startPosition_", ",", "pad_", ",", "bandpass_", ",", "dotsize_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "newPos", ",", "myTrack", ",", "myTrimImg", ",", "tempOrigin", ",", "myNewTempCenterList", ",", "tempCenter", ",", "flagFin", ",", "euList"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newPos", "=", "startPosition"}], ";", "\[IndentingNewLine]", RowBox[{"myTrack", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"myTrimImg", "=", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"img", "\[LeftDoubleBracket]", RowBox[{"channel", ",", "i"}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"Ceiling", "@", "newPos"}], "-", "pad"}], ",", RowBox[{ RowBox[{"Ceiling", "@", "newPos"}], "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempOrigin", "=", RowBox[{ RowBox[{"Ceiling", "@", "newPos"}], "-", "pad", "-", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{"myNewTempCenterList", "=", RowBox[{"ComponentMeasurements", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{"myTrimImg", ",", RowBox[{"SelectComponents", "[", RowBox[{ RowBox[{"Binarize", "[", RowBox[{"BandPass", "[", RowBox[{ RowBox[{"ImageAdjust", "@", "myTrimImg"}], ",", "bandpass"}], "]"}], "]"}], ",", "\"\\"", ",", RowBox[{ RowBox[{ RowBox[{ "dotsize", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "<", "#", "<", RowBox[{ "dotsize", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], "&"}]}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "@", "myNewTempCenterList"}], "\[Equal]", "1"}], ",", RowBox[{ RowBox[{"myNewTempCenterList", "=", RowBox[{"myNewTempCenterList", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}]}], ";", RowBox[{"tempCenter", "=", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "@", "myNewTempCenterList"}], "\[Equal]", "0"}], ",", RowBox[{"myNewTempCenterList", "=", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "tempOrigin"}], "*", "1.0"}], ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"myNewTempCenterList", "=", RowBox[{"myNewTempCenterList", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"Flatten", "@", RowBox[{"Position", "[", RowBox[{ RowBox[{"euList", "=", RowBox[{ RowBox[{"N", "@", "Total"}], "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"{", RowBox[{"pad", ",", "pad"}], "}"}], "+", "0.5", "-", "#"}], ")"}], "^", "2"}], "&"}], "/@", RowBox[{"myNewTempCenterList", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], ")"}]}]}], ",", RowBox[{"Min", "@", "euList"}]}], "]"}]}], ")"}], "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", RowBox[{"tempCenter", "=", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}]}], "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"newPos", "=", RowBox[{"tempOrigin", "+", "tempCenter"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+=", "tempOrigin"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{"#", "+", "tempOrigin"}], "&"}], "/@", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{"#", "+", "tempOrigin"}], "&"}], "/@", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", "myNewTempCenterList"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "startFrame", ",", RowBox[{"Length", "@", RowBox[{ "img", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ",", "1"}], "}"}]}], "]"}]}]}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.7136232245561433`*^9, 3.7136232269002776`*^9}, { 3.7136232829164815`*^9, 3.7136233141482677`*^9}, {3.71362348569308*^9, 3.7136235304126377`*^9}, {3.7136235713409786`*^9, 3.7136236995503116`*^9}, {3.713623731533141*^9, 3.71362378763735*^9}, { 3.7136238545101748`*^9, 3.713623869126011*^9}, {3.713626004392141*^9, 3.713626012959631*^9}, {3.7136331241973705`*^9, 3.7136331300937076`*^9}, 3.7168389349994345`*^9, {3.7168389704584627`*^9, 3.7168389918586864`*^9}, { 3.7168391921041403`*^9, 3.7168392837123795`*^9}, {3.7168969767182307`*^9, 3.716896976846238*^9}},ExpressionUUID->"e16671b6-720b-47dc-98e9-\ b3650b9d21ff"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Using", " ", "user", " ", "defined", " ", "threshod", " ", "for", " ", "binarization"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"NearestNeighborLinking2", "[", RowBox[{ "img_", ",", "channel_", ",", "startFrame_", ",", "startPosition_", ",", "pad_", ",", "threshold1_", ",", "bandpass_", ",", "max_", ",", "threshold2_", ",", "dotsize_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "newPos", ",", "myTrack", ",", "myTrimImg", ",", "tempOrigin", ",", "myNewTempCenterList", ",", "tempCenter", ",", "flagFin", ",", "euList"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newPos", "=", "startPosition"}], ";", "\[IndentingNewLine]", RowBox[{"myTrack", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"myTrimImg", "=", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"img", "\[LeftDoubleBracket]", RowBox[{"channel", ",", "i"}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"Ceiling", "@", "newPos"}], "-", "pad"}], ",", RowBox[{ RowBox[{"Ceiling", "@", "newPos"}], "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempOrigin", "=", RowBox[{ RowBox[{"Ceiling", "@", "newPos"}], "-", "pad", "-", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{"myNewTempCenterList", "=", RowBox[{"ComponentMeasurements", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{"myTrimImg", ",", RowBox[{"SelectComponents", "[", RowBox[{ RowBox[{"Binarize", "[", RowBox[{ RowBox[{"BandPass", "[", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{"myTrimImg", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1"}], "}"}], ",", "threshold1"}], "]"}], ",", "bandpass"}], "]"}], ",", RowBox[{"max", "*", "threshold2"}]}], "]"}], ",", "\"\\"", ",", RowBox[{ RowBox[{ RowBox[{ "dotsize", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "<", "#", "<", RowBox[{ "dotsize", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], "&"}]}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "@", "myNewTempCenterList"}], "\[Equal]", "1"}], ",", RowBox[{ RowBox[{"myNewTempCenterList", "=", RowBox[{"myNewTempCenterList", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}]}], ";", RowBox[{"tempCenter", "=", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "@", "myNewTempCenterList"}], "\[Equal]", "0"}], ",", RowBox[{"myNewTempCenterList", "=", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "tempOrigin"}], "*", "1.0"}], ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"myNewTempCenterList", "=", RowBox[{"myNewTempCenterList", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"Flatten", "@", RowBox[{"Position", "[", RowBox[{ RowBox[{"euList", "=", RowBox[{ RowBox[{"N", "@", "Total"}], "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"{", RowBox[{"pad", ",", "pad"}], "}"}], "+", "0.5", "-", "#"}], ")"}], "^", "2"}], "&"}], "/@", RowBox[{"myNewTempCenterList", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], ")"}]}]}], ",", RowBox[{"Min", "@", "euList"}]}], "]"}]}], ")"}], "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", RowBox[{"tempCenter", "=", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}]}], "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"newPos", "=", RowBox[{"tempOrigin", "+", "tempCenter"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+=", "tempOrigin"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{"#", "+", "tempOrigin"}], "&"}], "/@", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{"#", "+", "tempOrigin"}], "&"}], "/@", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", "myNewTempCenterList"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "startFrame", ",", RowBox[{"Length", "@", RowBox[{ "img", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ",", "1"}], "}"}]}], "]"}]}]}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.7136232245561433`*^9, 3.7136232269002776`*^9}, { 3.7136232829164815`*^9, 3.7136233141482677`*^9}, {3.71362348569308*^9, 3.7136235304126377`*^9}, {3.7136235713409786`*^9, 3.7136236995503116`*^9}, {3.713623731533141*^9, 3.71362378763735*^9}, { 3.7136238545101748`*^9, 3.713623869126011*^9}, {3.713626004392141*^9, 3.713626012959631*^9}, {3.7136331241973705`*^9, 3.7136331300937076`*^9}, 3.7152803087122173`*^9, {3.7152803820724134`*^9, 3.715280394208107*^9}, { 3.715280439327688*^9, 3.715280447024128*^9}, {3.715283100618905*^9, 3.7152831529468985`*^9}, 3.7153683920062933`*^9, {3.715368447870489*^9, 3.715368465935522*^9}, 3.715368830591379*^9, {3.715368926510865*^9, 3.715368926989893*^9}, {3.7153689807669687`*^9, 3.7153689824550653`*^9}, { 3.715369125431243*^9, 3.7153691860067077`*^9}, {3.715369559759085*^9, 3.715369565031387*^9}, {3.7153745206118298`*^9, 3.715374526583171*^9}, { 3.715734175657922*^9, 3.715734182007285*^9}, {3.7157351145786247`*^9, 3.7157351553949594`*^9}, {3.7157353126509542`*^9, 3.7157353399945183`*^9}, {3.7157353767066174`*^9, 3.7157353768666267`*^9}, {3.7157360009653234`*^9, 3.71573600615562*^9}, { 3.715950921504075*^9, 3.7159509387910633`*^9}, {3.7159515373592997`*^9, 3.7159515669839945`*^9}, {3.7168049211329527`*^9, 3.716804930300477*^9}, { 3.716808616344307*^9, 3.7168087186411576`*^9}, {3.7168087925193834`*^9, 3.716808881312462*^9}, {3.7168089824322453`*^9, 3.7168090069846497`*^9}, { 3.716809281840371*^9, 3.7168092844645205`*^9}, {3.716809665465313*^9, 3.7168097154961743`*^9}, {3.716809806893402*^9, 3.7168098210342107`*^9}, { 3.7168098925092993`*^9, 3.7168099200168724`*^9}, {3.7168294690890155`*^9, 3.716829476072415*^9}, {3.7168318680432277`*^9, 3.716831870338359*^9}, { 3.7168366670147133`*^9, 3.716836667678751*^9}, {3.716839289000682*^9, 3.7168393122970147`*^9}, {3.716896979182372*^9, 3.7168969793343806`*^9}},ExpressionUUID->"4cbc68d1-02fe-4409-b63b-\ 06c10092b21c"], Cell[BoxData[ RowBox[{ RowBox[{"NearestNeighborLinking3D2", "[", RowBox[{ "img_", ",", "channel_", ",", "startFrame_", ",", "startPosition_", ",", "pad_", ",", "threshold1_", ",", "bandpass_", ",", "max_", ",", "threshold2_", ",", "dotsize_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "newPos", ",", "myTrack", ",", "myTrimImg", ",", "tempOrigin", ",", "myNewTempCenterList", ",", "tempCenter", ",", "flagFin", ",", "euList"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newPos", "=", "startPosition"}], ";", "\[IndentingNewLine]", RowBox[{"myTrack", "=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"myTrimImg", "=", RowBox[{"ImageTrim", "[", RowBox[{ RowBox[{"img", "\[LeftDoubleBracket]", RowBox[{"channel", ",", "i"}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"Ceiling", "@", "newPos"}], "-", "pad"}], ",", RowBox[{ RowBox[{"Ceiling", "@", "newPos"}], "+", "pad", "-", "0.1"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"tempOrigin", "=", RowBox[{ RowBox[{"Ceiling", "@", "newPos"}], "-", "pad", "-", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{"myNewTempCenterList", "=", RowBox[{"ComponentMeasurements", "[", RowBox[{ RowBox[{"ImageMultiply", "[", RowBox[{"myTrimImg", ",", RowBox[{"SelectComponents", "[", RowBox[{ RowBox[{"Binarize", "[", RowBox[{ RowBox[{"BandPass", "[", RowBox[{ RowBox[{"ImageAdjust", "[", RowBox[{"myTrimImg", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1"}], "}"}], ",", "threshold1"}], "]"}], ",", "bandpass"}], "]"}], ",", RowBox[{"max", "*", "threshold2"}]}], "]"}], ",", "\"\\"", ",", RowBox[{ RowBox[{ RowBox[{ "dotsize", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "<", "#", "<", RowBox[{ "dotsize", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], "&"}]}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "@", "myNewTempCenterList"}], "\[Equal]", "1"}], ",", RowBox[{ RowBox[{"myNewTempCenterList", "=", RowBox[{"myNewTempCenterList", "\[LeftDoubleBracket]", RowBox[{"1", ",", "2"}], "\[RightDoubleBracket]"}]}], ";", RowBox[{"tempCenter", "=", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "@", "myNewTempCenterList"}], "\[Equal]", "0"}], ",", RowBox[{"myNewTempCenterList", "=", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "tempOrigin"}], "*", "1.0"}], ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"myNewTempCenterList", "=", RowBox[{"myNewTempCenterList", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"Flatten", "@", RowBox[{"Position", "[", RowBox[{ RowBox[{"euList", "=", RowBox[{ RowBox[{"N", "@", "Total"}], "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"{", RowBox[{"pad", ",", "pad"}], "}"}], "+", "0.5", "-", "#"}], ")"}], "^", "2"}], "&"}], "/@", RowBox[{"myNewTempCenterList", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], ")"}]}]}], ",", RowBox[{"Min", "@", "euList"}]}], "]"}]}], ")"}], "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";", RowBox[{"tempCenter", "=", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}]}], "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"newPos", "=", RowBox[{"tempOrigin", "+", "tempCenter"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "+=", "tempOrigin"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{"#", "+", "tempOrigin"}], "&"}], "/@", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{"#", "+", "tempOrigin"}], "&"}], "/@", RowBox[{ "myNewTempCenterList", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}]}]}], ";", "\[IndentingNewLine]", "myNewTempCenterList"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"i", ",", "startFrame", ",", RowBox[{"Length", "@", RowBox[{ "img", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ",", "1"}], "}"}]}], "]"}]}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.7186461866496315`*^9, 3.718646187089657*^9}},ExpressionUUID->"3ba341dd-13fd-4684-bbe1-\ 469374c8dbd4"] }, Closed]], Cell[CellGroupData[{ Cell["ClickAndTrack", "Subsection", CellChangeTimes->{{3.713636223270627*^9, 3.7136362302310257`*^9}},ExpressionUUID->"e0280108-fbbb-4a40-a19c-\ c04c2b1951f8"], Cell[BoxData[ RowBox[{ RowBox[{"ClickAndTrack", "[", RowBox[{"imgRaw_", ",", "img_", ",", "analysisFolder_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"myImgRaw", "=", "imgRaw"}], ",", RowBox[{"myImg", "=", "img"}], ",", "mask", ",", "avgFrameN", ",", "threshold1", ",", "threshold2"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"mask", "=", RowBox[{"Import", "@", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_mask.tif\>\""}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"avgFrameN", "=", RowBox[{"<<", RowBox[{"(", RowBox[{"analysisFolder", "<>", "\"\<_avgFrameN.dat\>\""}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"threshold1", "=", RowBox[{"Get", "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"analysisFolder", "<>", "#"}], "&"}], "/@", RowBox[{"{", RowBox[{ "\"\<_thred.dat\>\"", ",", "\"\<_thgreen.dat\>\"", ",", "\"\<_thblue.dat\>\""}], "}"}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"threshold2", "=", RowBox[{"Get", "/@", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"analysisFolder", "<>", "#"}], "&"}], "/@", RowBox[{"{", RowBox[{ "\"\<_thred2.dat\>\"", ",", "\"\<_thgreen2.dat\>\"", ",", "\"\<_thblue2.dat\>\""}], "}"}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"DynamicModule", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Nimg", "=", RowBox[{"Length", "@", RowBox[{ "myImg", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}]}], ",", RowBox[{"spotType", "=", RowBox[{"{", "1", "}"}]}], ",", RowBox[{"binarizeMethod", "=", RowBox[{"{", "1", "}"}]}], ",", RowBox[{"trackChannel", "=", RowBox[{"{", "1", "}"}]}], ",", RowBox[{"dispChannel", "=", RowBox[{"{", "1", "}"}]}], ",", RowBox[{"trimPad", "=", "15"}], ",", "zoom", ",", RowBox[{"myt", "=", "1"}], ",", "mycurpoints", ",", "newPos", ",", "bandpass", ",", "dotsize", ",", "max", ",", "th2", ",", "myTrimImg", ",", "tempOrigin", ",", "myNewTempCenterList", ",", "tempCenter", ",", "flagFin", ",", "euList", ",", "myTrack", ",", "myIdx", ",", "myFitAllParameters", ",", "myFitPos", ",", "myFitData", ",", "myFit", ",", "myColor", ",", "flagFileName", ",", "myFilename", ",", "myTrackNum"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ "flagFileName", "=", "\"\\""}], ";", "\[IndentingNewLine]", RowBox[{"myFit", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0"}], "}"}], "}"}], ",", "0", ",", "0"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"Panel", "@", RowBox[{"Column", "[", RowBox[{"{", "\[IndentingNewLine]", RowBox[{"Row", "@", RowBox[{"{", RowBox[{ RowBox[{"Column", "@", RowBox[{"{", RowBox[{ RowBox[{"Row", "@", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"CheckboxBar", "[", RowBox[{ RowBox[{"Dynamic", "[", RowBox[{"spotType", ",", RowBox[{ RowBox[{"(", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "[", "#", "]"}], ">", "1"}], ",", RowBox[{"spotType", "=", RowBox[{"#", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"-", "1"}], ";;"}], "\[RightDoubleBracket]"}]}], ",", RowBox[{"spotType", "=", "#"}]}], "]"}], ")"}], "&"}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{ "1", "\[Rule]", "\"\\""}], ",", RowBox[{"2", "\[Rule]", "\"\\""}]}], "}"}]}], "]"}]}], "}"}]}], ",", RowBox[{"Row", "@", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"CheckboxBar", "[", RowBox[{ RowBox[{"Dynamic", "[", RowBox[{"binarizeMethod", ",", RowBox[{ RowBox[{"(", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "[", "#", "]"}], ">", "1"}], ",", RowBox[{"binarizeMethod", "=", RowBox[{"#", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"-", "1"}], ";;"}], "\[RightDoubleBracket]"}]}], ",", RowBox[{"binarizeMethod", "=", "#"}]}], "]"}], ")"}], "&"}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"1", "\[Rule]", "\"\\""}], ",", RowBox[{"2", "\[Rule]", "\"\\""}]}], "}"}]}], "]"}]}], "}"}]}], ",", RowBox[{"Row", "@", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"CheckboxBar", "[", RowBox[{ RowBox[{"Dynamic", "[", RowBox[{"trackChannel", ",", RowBox[{ RowBox[{"(", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "[", "#", "]"}], ">", "1"}], ",", RowBox[{"trackChannel", "=", RowBox[{"#", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"-", "1"}], ";;"}], "\[RightDoubleBracket]"}]}], ",", RowBox[{"trackChannel", "=", "#"}]}], "]"}], ")"}], "&"}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"1", "\[Rule]", "\"\\""}], ",", RowBox[{"2", "\[Rule]", "\"\\""}], ",", RowBox[{"3", "\[Rule]", "\"\\""}]}], "}"}]}], "]"}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"Row", "@", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"CheckboxBar", "[", RowBox[{ RowBox[{"Dynamic", "[", RowBox[{"dispChannel", ",", RowBox[{ RowBox[{"(", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "[", "#", "]"}], ">", "1"}], ",", RowBox[{"dispChannel", "=", RowBox[{"#", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"-", "1"}], ";;"}], "\[RightDoubleBracket]"}]}], ",", RowBox[{"dispChannel", "=", "#"}]}], "]"}], ")"}], "&"}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"1", "\[Rule]", "\"\\""}], ",", RowBox[{"2", "\[Rule]", "\"\\""}], ",", RowBox[{"3", "\[Rule]", "\"\\""}]}], "}"}]}], "]"}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"Row", "@", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Spacer", "[", "45", "]"}], ",", RowBox[{"InputField", "[", RowBox[{ RowBox[{"Dynamic", "[", "trimPad", "]"}], ",", RowBox[{"FieldSize", "\[Rule]", "3"}]}], "]"}]}], "}"}]}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "[", "20", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Column", "@", RowBox[{"{", RowBox[{ RowBox[{"Row", "@", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Button", "[", RowBox[{ "\"\\"", ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"myTrack", "=", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"Range", "@", "Nimg"}], ",", RowBox[{"ConstantArray", "[", RowBox[{ RowBox[{"{", RowBox[{"{", RowBox[{"0.", ",", "0."}], "}"}], "}"}], ",", "Nimg"}], "]"}]}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"binarizeMethod", "\[Equal]", RowBox[{"{", "1", "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"bandpass", ",", "dotsize"}], "}"}], "=", RowBox[{"If", "[", RowBox[{ RowBox[{"spotType", "\[Equal]", RowBox[{"{", "1", "}"}]}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "7"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "100"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "10"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "1000"}], "}"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"myt", ";;"}], ",", "2"}], "\[RightDoubleBracket]"}], "=", RowBox[{"NearestNeighborLinking1", "[", RowBox[{"myImg", ",", RowBox[{ "trackChannel", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "myt", ",", "mycurpoints", ",", "trimPad", ",", "bandpass", ",", "dotsize"}], "]"}]}], ";"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"bandpass", ",", "dotsize"}], "}"}], "=", RowBox[{"threshold2", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ "trackChannel", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"max", ",", "th2"}], "}"}], "=", RowBox[{"threshold2", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ "trackChannel", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}]}], "\[RightDoubleBracket]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"myt", ";;"}], ",", "2"}], "\[RightDoubleBracket]"}], "=", RowBox[{"NearestNeighborLinking2", "[", RowBox[{"myImg", ",", RowBox[{ "trackChannel", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "myt", ",", "mycurpoints", ",", "trimPad", ",", RowBox[{"threshold1", "\[LeftDoubleBracket]", RowBox[{ "trackChannel", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "\[RightDoubleBracket]"}], ",", "bandpass", ",", "max", ",", "th2", ",", "dotsize"}], "]"}]}], ";"}]}], "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "[", "5", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"binarizeMethod", "\[Equal]", RowBox[{"{", "1", "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"myt", ";;"}], ",", "2"}], "\[RightDoubleBracket]"}], "=", RowBox[{"NearestNeighborLinking1", "[", RowBox[{"myImg", ",", RowBox[{ "trackChannel", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "myt", ",", "mycurpoints", ",", "trimPad", ",", "bandpass", ",", "dotsize"}], "]"}]}], ";"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"myt", ";;"}], ",", "2"}], "\[RightDoubleBracket]"}], "=", RowBox[{"NearestNeighborLinking2", "[", RowBox[{"myImg", ",", RowBox[{ "trackChannel", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", "myt", ",", "mycurpoints", ",", "trimPad", ",", RowBox[{"threshold1", "\[LeftDoubleBracket]", RowBox[{ "trackChannel", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "\[RightDoubleBracket]"}], ",", "bandpass", ",", "max", ",", "th2", ",", "dotsize"}], "]"}]}], ";"}]}], "]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "[", "5", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"myIdx", "=", RowBox[{"DeleteCases", "[", RowBox[{ RowBox[{"Split", "[", RowBox[{ RowBox[{"Flatten", "@", RowBox[{"Position", "[", RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{"0.", ",", "0."}], "}"}]}], "]"}]}], ",", RowBox[{ RowBox[{ RowBox[{"#2", "-", "#1"}], "\[Equal]", "1"}], "&"}]}], "]"}], ",", RowBox[{"x_", "/;", RowBox[{ RowBox[{"MemberQ", "[", RowBox[{"x", ",", "1"}], "]"}], "||", RowBox[{"MemberQ", "[", RowBox[{"x", ",", "Nimg"}], "]"}]}]}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ "myIdx", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], "=", RowBox[{ RowBox[{ RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ RowBox[{"myIdx", "\[LeftDoubleBracket]", RowBox[{"i", ",", "1"}], "\[RightDoubleBracket]"}], "-", "1"}], ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], "+", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ RowBox[{"Last", "@", RowBox[{ "myIdx", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], "+", "1"}], ",", "2", ",", "1"}], "\[RightDoubleBracket]"}], "-", RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{ RowBox[{"myIdx", "\[LeftDoubleBracket]", RowBox[{"i", ",", "1"}], "\[RightDoubleBracket]"}], "-", "1"}], ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], ")"}], "/", RowBox[{"(", RowBox[{ RowBox[{"Length", "@", RowBox[{ "myIdx", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], "+", "1"}], ")"}]}], "*", "#"}]}], "&"}], "/@", RowBox[{"Range", "@", RowBox[{"Length", "@", RowBox[{ "myIdx", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}]}]}]}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "@", "myIdx"}], ",", "1"}], "}"}]}], "]"}], ";"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "[", "5", "]"}], ",", "\[IndentingNewLine]", RowBox[{"PopupWindow", "[", RowBox[{ RowBox[{"Button", "[", "\"\\"", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Dynamic", "@", RowBox[{"If", "[", RowBox[{ RowBox[{"ValueQ", "@", "myTrack"}], ",", RowBox[{"Show", "[", RowBox[{ RowBox[{"ListPointPlot3D", "[", RowBox[{ RowBox[{"Flatten", "/@", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], "}"}]}]}], ",", RowBox[{"PlotStyle", "\[Rule]", "Red"}], ",", RowBox[{"PlotRange", "\[Rule]", "All"}]}], "]"}], ",", RowBox[{"Graphics3D", "[", RowBox[{"{", RowBox[{"Red", ",", RowBox[{"Line", "[", RowBox[{"Flatten", "/@", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{"All", ",", "1"}], "\[RightDoubleBracket]"}], ",", RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{"All", ",", "2", ",", "1"}], "\[RightDoubleBracket]"}]}], "}"}]}]}], "]"}]}], "}"}], "]"}], ",", RowBox[{"BoxRatios", "\[Rule]", RowBox[{"{", RowBox[{"5", ",", "1", ",", "1"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "600"}]}], "]"}], ",", "\"\\""}], "]"}]}], ",", RowBox[{"WindowFloating", " ", "\[Rule]", " ", "True"}], ",", "\n", "\t\t\t\t\t\t\t\t\t\t", RowBox[{"WindowMargins", " ", "\[Rule]", " ", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"50", ",", "50"}], "}"}], ",", RowBox[{"{", RowBox[{"50", ",", "50"}], "}"}]}], "}"}]}], ",", "\n", "\t\t\t\t\t\t\t\t\t\t", RowBox[{"WindowSize", " ", "\[Rule]", " ", RowBox[{"{", RowBox[{"650", ",", " ", "400"}], "}"}]}], ",", "\n", "\t\t\t\t\t\t\t\t\t\t", RowBox[{ "WindowTitle", " ", "\[Rule]", " ", "\"\<3D track\>\""}]}], "]"}]}], "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"Spacer", "[", "5", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Dynamic", "@", RowBox[{"PopupWindow", "[", RowBox[{ RowBox[{"Button", "[", "\"\\"", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Show", "[", RowBox[{ RowBox[{"ListPointPlot3D", "[", RowBox[{ RowBox[{"Partition", "[", RowBox[{ RowBox[{"Flatten", "@", RowBox[{"myFit", "\[LeftDoubleBracket]", RowBox[{"1", ",", "All", ",", RowBox[{"2", ";;", "4"}]}], "\[RightDoubleBracket]"}]}], ",", "3"}], "]"}], ",", RowBox[{"PlotStyle", "\[Rule]", "Red"}], ",", RowBox[{"PlotRange", "\[Rule]", "All"}]}], "]"}], ",", RowBox[{"Graphics3D", "[", RowBox[{"{", RowBox[{"Red", ",", RowBox[{"Line", "@", RowBox[{"Partition", "[", RowBox[{ RowBox[{"Flatten", "@", RowBox[{"myFit", "\[LeftDoubleBracket]", RowBox[{"1", ",", "All", ",", RowBox[{"2", ";;", "4"}]}], "\[RightDoubleBracket]"}]}], ",", "3"}], "]"}]}]}], "}"}], "]"}], ",", RowBox[{"BoxRatios", "\[Rule]", RowBox[{"{", RowBox[{"5", ",", "1", ",", "1"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "600"}]}], "]"}], ",", RowBox[{"WindowFloating", " ", "\[Rule]", " ", "True"}], ",", "\n", "\t\t\t\t\t\t\t\t\t\t", RowBox[{"WindowMargins", " ", "\[Rule]", " ", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"50", ",", "50"}], "}"}], ",", RowBox[{"{", RowBox[{"50", ",", "50"}], "}"}]}], "}"}]}], ",", "\n", "\t\t\t\t\t\t\t\t\t\t", RowBox[{"WindowSize", " ", "\[Rule]", " ", RowBox[{"{", RowBox[{"650", ",", " ", "400"}], "}"}]}], ",", "\n", "\t\t\t\t\t\t\t\t\t\t", RowBox[{ "WindowTitle", " ", "\[Rule]", " ", "\"\<3D track\>\""}]}], "]"}]}]}], "*)"}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"Row", "@", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"Button", "[", RowBox[{"\"\\"", ",", RowBox[{ RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{"myt", ",", "2"}], "\[RightDoubleBracket]"}], "-=", RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{"myt", ",", "2"}], "\[RightDoubleBracket]"}]}], ";"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "[", "5", "]"}], ",", "\[IndentingNewLine]", RowBox[{"Button", "[", RowBox[{"\"\\"", ",", RowBox[{ RowBox[{ RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"myt", ";;"}], ",", "2"}], "\[RightDoubleBracket]"}], "-=", RowBox[{"myTrack", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"myt", ";;"}], ",", "2"}], "\[RightDoubleBracket]"}]}], ";"}]}], "]"}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"Row", "@", RowBox[{"{", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"Button", "[", RowBox[{ "\"\\"", ",", "\[IndentingNewLine]", RowBox[{"myFit", "=", RowBox[{"ParticleFitting2", "[", RowBox[{"myImgRaw", ",", RowBox[{ "trackChannel", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"{", RowBox[{"Thread", "@", RowBox[{"{", RowBox[{"1", ",", RowBox[{"Partition", "[", RowBox[{ RowBox[{"Flatten", "@", "myTrack"}], ",", "3"}], "]"}]}], "}"}]}], "}"}], ",", "trimPad", ",", "avgFrameN"}], "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "[", "5", "]"}], ","}], "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Button", "[", RowBox[{"\"\\"", ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"myColor", "=", RowBox[{"If", "[", RowBox[{ RowBox[{"trackChannel", "\[Equal]", RowBox[{"{", "1", "}"}]}], ",", "\"\\"", ",", RowBox[{"If", "[", RowBox[{ RowBox[{"trackChannel", "\[Equal]", RowBox[{"{", "2", "}"}]}], ",", "\"\\"", ",", "\"\\""}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"myTrackNum", "=", RowBox[{ RowBox[{ RowBox[{"1", "+", RowBox[{"Length", "@", RowBox[{"FileNames", "[", RowBox[{ RowBox[{ RowBox[{"StringDelete", "[", RowBox[{"#", ",", RowBox[{"DirectoryName", "@", "#"}]}], "]"}], "<>", "\"\<_myTrack_\>\"", "<>", "myColor", "<>", "\"\<*\>\""}], ",", RowBox[{"DirectoryName", "@", "#"}]}], "]"}]}]}], "&"}], "@", "analysisFolder"}]}], ";", "\[IndentingNewLine]", RowBox[{"myFilename", "=", RowBox[{ "\"\<_myTrack_\>\"", "<>", "myColor", "<>", "\"\<_\>\"", "<>", RowBox[{"ToString", "@", "myTrackNum"}], "<>", "\"\<.dat\>\""}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"Prepend", "[", RowBox[{"#", ",", "myTrackNum"}], "]"}], "&"}], "/@", "myTrack"}], ")"}], ">>", RowBox[{"analysisFolder", "<>", "myFilename"}]}], ";", "\[IndentingNewLine]", RowBox[{"flagFileName", "=", RowBox[{ "\"\\"", "<>", "myFilename"}]}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Spacer", "@", "10"}], ",", "\[IndentingNewLine]", RowBox[{"Dynamic", "@", "flagFileName"}]}], "}"}]}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"Row", "@", RowBox[{"{", RowBox[{"\"\