diff --git a/BINF2025_TP3.ipynb b/BINF2025_TP3.ipynb index 61e87c2..8837da1 100644 --- a/BINF2025_TP3.ipynb +++ b/BINF2025_TP3.ipynb @@ -3,8 +3,7 @@ "nbformat_minor": 0, "metadata": { "colab": { - "provenance": [], - "authorship_tag": "ABX9TyNSXnqaXAUgZK9rmJ1TWbGo" + "provenance": [] }, "kernelspec": { "name": "python3", @@ -75,7 +74,15 @@ "source": [ "```markdown\n", "Votre réponse ici\n", - "```" + "```\n", + "\n", + "ATGTCATGA---TAC\n", + "AT--CTAAATGTTAC\n", + "\n", + "score = 1 + 1 - (0.5 * 2 + 0.5) + 1 - 1 - 1 - 1 + 1 - (0.5 * 3 + 0.5) + 1 + 1 + 1\n", + " = 7 - 3 - 1.5 - 2\n", + " = 4 - 3.5\n", + " = 0.5" ], "metadata": { "id": "kCJGGGYQ2GNi" @@ -101,6 +108,34 @@ "id": "b9iovhyZ2bXw" } }, + { + "cell_type": "markdown", + "source": [ + "S =\n", + "\n", + "| | 0̸ | A | C | T | G |\n", + "| :---: | :---: | :---: | :---: | :---: | :---: |\n", + "| **0̸**| 0 | 1 | 2 | 3 | 4 |\n", + "| **A** | 1 | 0 | 1 | 2 | 3 |\n", + "| **T** | 2 | 1 | 0 | 1 | 2 |\n", + "| **G** | 3 | 2 | 1 | 0 | 1 |\n", + "\n", + "B =\n", + "\n", + "| | 0̸ | A | C | T | G |\n", + "| :---: | :---: | :---: | :---: | :---: | :---: |\n", + "| **0̸**| ***0̸*** | ← | ← | ← | ← |\n", + "| **A** | ⇑ | ***diag*** | ← | ← | ← |\n", + "| **T** | ⇑ | ⇑ | ***diag*** | ← | ← |\n", + "| **G** | ⇑ | ⇑ | ⇑ | ***diag*** | **←** |\n", + "\n", + "\n", + "x : ATG_ et y : ACTG" + ], + "metadata": { + "id": "SVjfrY_2DWGr" + } + }, { "cell_type": "markdown", "source": [ @@ -132,6 +167,34 @@ "id": "g_MrecVs3Nrw" } }, + { + "cell_type": "markdown", + "source": [ + "S =\n", + "\n", + "| | 0̸ | A | T | G | A | C |\n", + "| :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n", + "| **0̸**| 0 | 0.5 | 1 | 1.5 | 2 | 2.5 |\n", + "| **T** | 0.5 | 1 | 1.5 | 2 | 2.5 | 3 |\n", + "| **A** | 1 | 1.5 | 2 | 2.5 | 3 | 3.5 |\n", + "| **T** | 1.5 | 2 | 2.5 | 3 | 3.5 | 4 |\n", + "\n", + "B =\n", + "\n", + "| | 0̸ | A | T | G | A | C |\n", + "| :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n", + "| **0̸**| ***0̸*** | ← | ← | ← | ← | ← |\n", + "| **T** | ***⇑*** | ← | diag | ← | ← | ← |\n", + "| **A** | ⇑ | ***diag*** | ← | ← | diag | ← |\n", + "| **T** | ⇑ | ← | ***diag*** | ***←*** | ***←*** | ***←*** |\n", + "\n", + "\n", + "x : TAT_ _ _ et y : _ATGAC" + ], + "metadata": { + "id": "Obf_5k7kT0S_" + } + }, { "cell_type": "markdown", "source": [ @@ -177,7 +240,18 @@ { "cell_type": "code", "source": [ - "#Votre code ici" + "def levenshtein(x, y):\n", + " if x == '':\n", + " return len(y)\n", + " elif y == '':\n", + " return len(x)\n", + " elif x[0] is y[0]:\n", + " return levenshtein(x[1:], y[1:])\n", + " else:\n", + " a = levenshtein(x[1:], y[1:])\n", + " b = levenshtein(x[1:], y)\n", + " c = levenshtein(x, y[1:])\n", + " return 1 + min(a, b, c)" ], "metadata": { "id": "FJR69IEQ4aHv" @@ -201,6 +275,31 @@ "id": "arFVwA6E5NWn" } }, + { + "cell_type": "code", + "source": [ + "print(\"L(′CCAG′,′CA′) expected 2 got \", levenshtein('CCAG', 'CA'))\n", + "print(\"L(′CCGT′,′CGTCA′) expected 3 got \", levenshtein('CCGT', 'CGTCA'))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "4NN674KgF4Aq", + "outputId": "93324850-de18-424a-c98e-1e08c3250829" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "L(′CCAG′,′CA′) expected 2 got 2\n", + "L(′CCGT′,′CGTCA′) expected 3 got 3\n" + ] + } + ] + }, { "cell_type": "markdown", "source": [