diff --git a/CellCycleML.ipynb b/CellCycleML.ipynb index 26a33fa..d153383 100644 --- a/CellCycleML.ipynb +++ b/CellCycleML.ipynb @@ -76,13 +76,13 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "55ba60a23d5945b1a083897fd3b24e1f", + "model_id": "c53a4c69997247369d1f71fb6ea86e65", "version_major": 2, "version_minor": 0 }, @@ -202,12 +202,12 @@ "We can see that the model has 6 parameters - 3 for each Gaussian. Question is, if we have the data, can we recover those parameters? \n", "We will \"store\" our parameters into one vector, **$\\theta$**, and consider the case of one point (one cell, one event).\n", "\n", - "$m(x_{i} | \\theta)=w_{G1} \\mathcal{N}(x_{i}|\\mu_{1},\\,\\sigma^{2}_{1}) + w_{G2} \\mathcal{N}(x_{i}|\\mu_{2},\\,\\sigma^{2}_{2}|x_{i}) + (1-w_{G2}-w_{G1})\\ U(x_{i}|\\mu_{1},\\mu_{2})$ \n", + "$m(x_{i} | \\theta)=w_{G1} \\mathcal{N}(x_{i}|\\mu_{1},\\,\\sigma^{2}_{1}) + w_{G2} \\mathcal{N}(x_{i}|\\mu_{2},\\,\\sigma^{2}_{2}) + (1-w_{G2}-w_{G1})\\ U(x_{i}|\\mu_{1},\\mu_{2})$ \n", "\n", "Every event is independent from each other, and since the above mentioned model represents a kind of a *probability* distribution, for many measurements $N$ stored in a vector $X$, we can write\n", "\n", "$m(X | \\theta)=\\prod_n m(x_{i} | \\theta)$\n", - "$=\\prod_n\\ [w_{G1} \\mathcal{N}(x_{i}|\\mu_{1},\\,\\sigma^{2}_{1}) + w_{G2} \\mathcal{N}(x_{i}|\\mu_{2},\\,\\sigma^{2}_{2}|x_{i}) + (1-w_{G2}-w_{G1})\\ U(x_{i}|\\mu_{1},\\mu_{2})]$ \n", + "$=\\prod_n\\ [w_{G1} \\mathcal{N}(x_{i}|\\mu_{1},\\,\\sigma^{2}_{1}) + w_{G2} \\mathcal{N}(x_{i}|\\mu_{2},\\,\\sigma^{2}_{2}) + (1-w_{G2}-w_{G1})\\ U(x_{i}|\\mu_{1},\\mu_{2})]$ \n", "\n", "The above expression is rather unwieldy, as probabilities are very small, and their product will likewise be very small. To ease the calculations, we apply log transform. Log transform will also transform multiplication to summation. We will take the **negative** log transform, because the problem will then be one of minimization, rather than maximization.\n", "\n", @@ -220,7 +220,7 @@ "$A=\\begin{bmatrix} \n", "1 & 1 & 0 & 0 & 0 & 0 \\\\\n", "1 & 0 & 0 & 0 & 0 & 0 \\\\\n", - "0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 1 & 0 & 0 & 0 & 0 \\\\\n", "0 & 0 & 1 & 0 & 0 & 0 \\\\\n", "0 & 0 & 0 & 1 & 0 & 0 \\\\\n", "0 & 0 & 0 & 0 & 1 & 0 \\\\\n", @@ -249,13 +249,13 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "97dc6efed57147bbad078df3ab2c4367", + "model_id": "9b934f6876c54f6aba2134ff6ce3b0a0", "version_major": 2, "version_minor": 0 }, @@ -370,13 +370,13 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "22a2fe9328074dcca26df311fae8c052", + "model_id": "f9b1308138ca4f2f8f5e246c4070973e", "version_major": 2, "version_minor": 0 }, @@ -519,13 +519,13 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "703bb70da303407e830e13169056727e", + "model_id": "a7dbe7e87a0142089eaec9060729a6ec", "version_major": 2, "version_minor": 0 }, @@ -662,7 +662,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.8.10" }, "toc-autonumbering": true, "toc-showmarkdowntxt": false