diff --git a/BINF2025_TP3.ipynb b/BINF2025_TP3.ipynb deleted file mode 100644 index 61e87c2..0000000 --- a/BINF2025_TP3.ipynb +++ /dev/null @@ -1,481 +0,0 @@ -{ - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [], - "authorship_tag": "ABX9TyNSXnqaXAUgZK9rmJ1TWbGo" - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } - }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# BINF TP3 - Algorithmes d'alignement par paire" - ], - "metadata": { - "id": "V09wQ1WIOmgn" - } - }, - { - "cell_type": "markdown", - "source": [ - "Dans ce TP nous allons manipuler les algorithmes d'alignement par paire." - ], - "metadata": { - "id": "er6CtAyOxC6F" - } - }, - { - "cell_type": "markdown", - "source": [ - "# Exercice 0 - Echauffement" - ], - "metadata": { - "id": "BqEa3BJ1xICM" - } - }, - { - "cell_type": "markdown", - "source": [ - "Q1. Donnez le score de la superposition :\n", - "\n", - "| | |\n", - "| :---: | :---: |\n", - "x | ATGTCATGA---TAC |\n", - "y | AT--CTAAATGTTAC |\n", - "\n", - "\n", - "étant donne le schéma d'évaluation :\n", - "\n", - "| | A | T | G | C |\n", - "| :---: | :---: | :---: | :---: | :---: |\n", - "| **A** | 1 | -1 | -1 | -1 |\n", - "| **T** | -1 | 1 | -1 | -1 |\n", - "| **G** | -1 | -1 | 1 | -1 |\n", - "| **C** | -1 | -1 | -1 | 1 |\n", - "\n", - "et\n", - "\n", - "$\\gamma(g) = 0.5 |g| + 0.5$" - ], - "metadata": { - "id": "qqiiq5bcxYvM" - } - }, - { - "cell_type": "markdown", - "source": [ - "```markdown\n", - "Votre réponse ici\n", - "```" - ], - "metadata": { - "id": "kCJGGGYQ2GNi" - } - }, - { - "cell_type": "markdown", - "source": [ - "Q2. Alignez les séquences suivantes avec l'algorithme de Levenshtein : x = ATG et y = ACTG." - ], - "metadata": { - "id": "XyhXAhK-2NKJ" - } - }, - { - "cell_type": "markdown", - "source": [ - "```markdown\n", - "Votre réponse ici\n", - "```" - ], - "metadata": { - "id": "b9iovhyZ2bXw" - } - }, - { - "cell_type": "markdown", - "source": [ - "Q3.\tAlignez les séquences suivantes avec l'algorithme de Needleman-Wunsch global x = TAT et y = ATGAC en considérant le schéma d'évaluation suivant\n", - "\n", - "| | A | T | G | C |\n", - "| :---: | :---: | :---: | :---: | :---: |\n", - "| **A** | 1 | -0.5 | -0.5 | -0.5 |\n", - "| **T** | -0.5 | 1 | -0.5 | -0.5 |\n", - "| **G** | -0.5 | -0.5 | 1 | -0.5 |\n", - "| **C** | -0.5 | -0.5 | -0.5 | 1 |\n", - "\n", - "et\n", - "\n", - "$\\gamma(g) = 0.5 |g|$\n" - ], - "metadata": { - "id": "OV_YaQHr2elB" - } - }, - { - "cell_type": "markdown", - "source": [ - "```markdown\n", - "Votre réponse ici\n", - "```" - ], - "metadata": { - "id": "g_MrecVs3Nrw" - } - }, - { - "cell_type": "markdown", - "source": [ - "Q4. Alignez les séquences suivantes avec l'algorithme de Smith-Waterman x = TTGG y = ATGAC en utilisant le schéma d'évaluation de la question précédente.\n" - ], - "metadata": { - "id": "y1YF-G6E3Qoo" - } - }, - { - "cell_type": "markdown", - "source": [ - "```markdown\n", - "Votre réponse ici\n", - "```" - ], - "metadata": { - "id": "LLMECocb3pgI" - } - }, - { - "cell_type": "markdown", - "source": [ - "# Exercice 1 : Algorithme de Levenshtein - version récursive" - ], - "metadata": { - "id": "46gw0avh3wGw" - } - }, - { - "cell_type": "markdown", - "source": [ - "Q1. Ecrivez une fonction\n", - "\n", - "levenshtein(x: str, y: str) -> int\n", - "\n", - "qui retourne la distance de Levenshtein entre les séquences x et y en utilisant la version récursive de l'algorithme." - ], - "metadata": { - "id": "ZKc09Kyg4a6v" - } - }, - { - "cell_type": "code", - "source": [ - "#Votre code ici" - ], - "metadata": { - "id": "FJR69IEQ4aHv" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "Q2. Vous pouvez tester votre code sur les exemples suivants:\n", - "\n", - "\n", - "* $L('CCAG', 'CA') = 2$\n", - "* $L('CCGT', 'CGTCA') = 3$\n", - "* $L(AY678264^*, OQ870305^*) = 310$\n", - "\n", - "$^*$ ids genbank de deux sequences." - ], - "metadata": { - "id": "arFVwA6E5NWn" - } - }, - { - "cell_type": "markdown", - "source": [ - "# Exercice 2 : Algorithme de Smith-Waterman - version itérative" - ], - "metadata": { - "id": "erCpfG7O7BV-" - } - }, - { - "cell_type": "markdown", - "source": [ - "Q1. Ecrivez la fonction\n", - "\n", - "sw_fwd(x: str, y: str, cmap: dict, sigma: array, (go, ge): list) -> (array, array)\n", - "\n", - "qui construit les matrices $S$ et $B$ en utilisant l'algorithme de Smith-Waterman pour aligner les séquences x et y suivant le schéma d'évaluation donné par la matrice de substitution $\\Sigma$ et la fonction d'évaluation des trous $\\gamma(n)= g_o + g_e \\times n$. Le dictionnaire cmap donne la position des différents nucléotides dans la matrice $\\Sigma$. La fonction retourne la paire de matrices de score $S$ et de retour $B$." - ], - "metadata": { - "id": "rv2Y78y37IOd" - } - }, - { - "cell_type": "code", - "source": [ - "#Votre code ici" - ], - "metadata": { - "id": "njn3JB0b-WHj" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "Q2. Ecrivez la fonction\n", - "\n", - "sw_bwd(x: str, y: str, S: array, B: array) -> (str, str, float)\n", - "\n", - "qui effectue l'etape de retour de l'algorithme de Smith-Waterman etant donné les séquences $x$ et $y$ et les matrices de score $S$ et de retour $B$. La fonction retourne un tuple contenant les alignements des séquences x et y et le score de l'alignement." - ], - "metadata": { - "id": "55n8mt9U-Wai" - } - }, - { - "cell_type": "code", - "source": [ - "#Votre code ici" - ], - "metadata": { - "id": "ij9JDpBm_UZ7" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "Q3. Vous pouvez tester votre code en utilisant le schéma d'évaluation suivant :" - ], - "metadata": { - "id": "kwmxg2dxAiwS" - } - }, - { - "cell_type": "code", - "source": [ - "cmap = {\"A\": 0, \"T\": 1, \"G\": 2, \"C\": 3}\n", - "m = np.array([[1, -0.5, -0.5, -0.5],\n", - " [-0.5, 1, -0.5, -0.5],\n", - " [-0.5, -0.5, 1, -0.5],\n", - " [-0.5, -0.5, -0.5, 1]])\n", - "go = 0\n", - "ge = 0.5" - ], - "metadata": { - "id": "JUtYRFTBAwwZ" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "* $SW('TCGC', 'CTTAG')$ retourne un score de $1.5$ à la position $(3,5)$ et l'alignement" - ], - "metadata": { - "id": "eMGh4K5aIFxE" - } - }, - { - "cell_type": "code", - "source": [ - "HTML(\"
x:TCG
y:TAG
\")" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 60 - }, - "id": "joHNwJ9AIf6F", - "outputId": "a9206810-a083-4d86-8b14-38183f1dd80c" - }, - "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "
x:TCG
y:TAG
" - ] - }, - "metadata": {}, - "execution_count": 18 - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "* $SW(AY678264^*, OQ870305^*)$ retourne un score de $342.1$ à la position $(708,717)$ et l'alignement" - ], - "metadata": { - "id": "JJlU5yvZI43D" - } - }, - { - "cell_type": "code", - "source": [ - "from IPython.display import HTML\n", - "HTML(\"
x:ATGGTGAGCAAGGGCGAGGAGGATAACATGGCCATCATCAAGGAGTTCATGCGCTTCAAGGTGC-A-CATGGAGGGCTCCGTGAACGGCCACGAGTTCGAGATCGAG---GGCGAGGGCGAGGGC--CGCC-CCTACGAGGGCACCCAGACCGC-CAAGCTGAAGGTG-ACCA-AGG---G-TGGCC---CCCT-GCCCTTCGCCT-GGGA-CATCCTGTCC--C--C-T-CAGTTCATGT-A-CGGCT-CCAAGGCCTACGTG-A--AGCAC--C--C--C--G-CCGACATCCCCG-A--CTAC-T--TGAAGCTG-TCCTTC--C--C-----CGA-GG--GCTTCAAGTGGGAGCG-CGTGATGAACTTCGAGGACGGCGGCGTGGTG-ACCG--T-GA-C-CCAGGAC-TC--CTCCCTGCAGGACGGCGAGTTCATCTACAAGGTG---AAGCTGCGCGGCACCAACTTCCCCT-CCGACGGCCCCGTA-ATGCA-GAAGAAGACCATGGGCTG--GGA-GGCCTCCTCCGAGCGGATGTACCCCGAGGA-CGGCGCC-CTGAAGGGCGAGATCAAGCAGA-GGCTGAAGC-TGAAGGACGGCGGCCACTACGACGCTGAGGTCAAGACCACCTACA-AGGCCAAGAAG-CCCGTGCAGCTGCCCGGC-GCCTACAACGTCAACATCAAGT-TG----GA-CATCACCTCCCACAACGAGGA-CTAC-A-C-CA---T-C-G-TGGAACAGTACG-AACGCGCCGAGGGCCGCCACTCCAC-CGGCGGCATGGACGAGCTGTACAAG
y:ATGGTGAGCAAGGGCGAGGA-G----C-T-G--TTCA-C-CGG-GGTGGTGCCCATCCTGGT-CGAGC-TGGACGGCGACGTAAACGGCCACAAGTTC-AG--CGTGTCCGGCGAGGGCGAGGGCGATGCCACCTAC---GGCAAGCTGACC-CTGAAG-TTCATTTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCC-AC-CCTCGTGACCACCCTGACCTACGGCGTGCAGTGC-T-TCAGCCGCTACCCCGACC-ACATGAAGCAGCACGACTTCTTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGC-GCACCATCTTCTTCAAGGACGACGGCAACTACAAGA-CCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTGAAGGGCATCGACTTCAAGGAGGACGGC-A--ACATC--C-TGGGGCACAAGCTG-G-AGTA-CAACTACAACAGCC-ACAACGTC-TATAT-CATG--GCCGA-CAA--GCAGAAGAACGG-CA--T-C-A-AGG-TGAACTTC-AAGATC--CGCCAC--AA---C---ATCGAG--GACGGC---AGCGTGCAGCTCGCCGACCACTACCA-GC--A-G--AACACC-CC--CATCGGCGACG--GCCCCGTGCTGCTGCCCGACAACC-ACTACCTGAGCACCCAGTCCGCCCTGAGCAA-A-GACCC-CAACGAGAAGC-GCGATCACATGGTCCTGCTGG---AGTTCGTGAC-CGCC----GCCGGGA-T-CACTC-TCGGCATGGACGAGCTGTACAAG
\")" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 80 - }, - "id": "HUELvWKMFtIO", - "outputId": "976bab6f-f1fc-4c5a-c69c-8de02fc838d0" - }, - "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "
x:ATGGTGAGCAAGGGCGAGGAGGATAACATGGCCATCATCAAGGAGTTCATGCGCTTCAAGGTGC-A-CATGGAGGGCTCCGTGAACGGCCACGAGTTCGAGATCGAG---GGCGAGGGCGAGGGC--CGCC-CCTACGAGGGCACCCAGACCGC-CAAGCTGAAGGTG-ACCA-AGG---G-TGGCC---CCCT-GCCCTTCGCCT-GGGA-CATCCTGTCC--C--C-T-CAGTTCATGT-A-CGGCT-CCAAGGCCTACGTG-A--AGCAC--C--C--C--G-CCGACATCCCCG-A--CTAC-T--TGAAGCTG-TCCTTC--C--C-----CGA-GG--GCTTCAAGTGGGAGCG-CGTGATGAACTTCGAGGACGGCGGCGTGGTG-ACCG--T-GA-C-CCAGGAC-TC--CTCCCTGCAGGACGGCGAGTTCATCTACAAGGTG---AAGCTGCGCGGCACCAACTTCCCCT-CCGACGGCCCCGTA-ATGCA-GAAGAAGACCATGGGCTG--GGA-GGCCTCCTCCGAGCGGATGTACCCCGAGGA-CGGCGCC-CTGAAGGGCGAGATCAAGCAGA-GGCTGAAGC-TGAAGGACGGCGGCCACTACGACGCTGAGGTCAAGACCACCTACA-AGGCCAAGAAG-CCCGTGCAGCTGCCCGGC-GCCTACAACGTCAACATCAAGT-TG----GA-CATCACCTCCCACAACGAGGA-CTAC-A-C-CA---T-C-G-TGGAACAGTACG-AACGCGCCGAGGGCCGCCACTCCAC-CGGCGGCATGGACGAGCTGTACAAG
y:ATGGTGAGCAAGGGCGAGGA-G----C-T-G--TTCA-C-CGG-GGTGGTGCCCATCCTGGT-CGAGC-TGGACGGCGACGTAAACGGCCACAAGTTC-AG--CGTGTCCGGCGAGGGCGAGGGCGATGCCACCTAC---GGCAAGCTGACC-CTGAAG-TTCATTTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCC-AC-CCTCGTGACCACCCTGACCTACGGCGTGCAGTGC-T-TCAGCCGCTACCCCGACC-ACATGAAGCAGCACGACTTCTTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGC-GCACCATCTTCTTCAAGGACGACGGCAACTACAAGA-CCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTGAAGGGCATCGACTTCAAGGAGGACGGC-A--ACATC--C-TGGGGCACAAGCTG-G-AGTA-CAACTACAACAGCC-ACAACGTC-TATAT-CATG--GCCGA-CAA--GCAGAAGAACGG-CA--T-C-A-AGG-TGAACTTC-AAGATC--CGCCAC--AA---C---ATCGAG--GACGGC---AGCGTGCAGCTCGCCGACCACTACCA-GC--A-G--AACACC-CC--CATCGGCGACG--GCCCCGTGCTGCTGCCCGACAACC-ACTACCTGAGCACCCAGTCCGCCCTGAGCAA-A-GACCC-CAACGAGAAGC-GCGATCACATGGTCCTGCTGG---AGTTCGTGAC-CGCC----GCCGGGA-T-CACTC-TCGGCATGGACGAGCTGTACAAG
" - ] - }, - "metadata": {}, - "execution_count": 15 - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "# Exercice 3 : Distribution des scores d’alignement pour des séquences aléatoires\n", - "\n", - "Pour tester si un alignement reflète une réelle similarité biologique, on va évaluer la distribution des scores d’alignement pour des paires de séquences aléatoires." - ], - "metadata": { - "id": "Q5jVeLfgMMtA" - } - }, - { - "cell_type": "markdown", - "source": [ - "Q1. En considérant deux séquences aléatoires de même taille N, où chaque nucléotide apparaît avec une probabilité uniforme de ¼, calculer le score moyen attendu pour une superposition sans trou dans le cas où une identité vaut +1 et une différence vaut 0." - ], - "metadata": { - "id": "6xyXw0HsMQGf" - } - }, - { - "cell_type": "markdown", - "source": [ - "```markdown\n", - "Votre réponse ici\n", - "```" - ], - "metadata": { - "id": "meF18gt-Mhcn" - } - }, - { - "cell_type": "markdown", - "source": [ - "Q2. La question précédente peut se resoudre analytiquement car on ne considère pas de trou. Pour étendre le résultat precedent à un alignement avec trous, on va se baser sur la simulation de séquences aleatoires.\n", - "\n", - "Générez $R$ paires de séquences aléatoires de tailles $N$ avec des probabilitées uniformes d'apparition de nucléotides $p_A = p_T = p_G = p_C = $ ¼. Affichez sous forme de violinplots les distribution des scores d'alignements entre chaque paire, obtenu par :\n", - " 1. un alignement sans trou (cf. Q1) ;\n", - " 2. un alignement local via Smith-Waterman (utilisez le code de l'exercice précédent)\n", - "\n", - "Utilisez le schéma d'évaluation suivant :" - ], - "metadata": { - "id": "fP5_mHnYMkNI" - } - }, - { - "cell_type": "code", - "source": [ - "rmap = {\"A\": 0, \"T\": 1, \"G\": 2, \"C\": 3}\n", - "sigma = np.array([[1, -0.5, -0.5, -0.5],\n", - " [-0.5, 1, -0.5, -0.5],\n", - " [-0.5, -0.5, 1, -0.5],\n", - " [-0.5, -0.5, -0.5, 1]])\n", - "go =0\n", - "ge = 0.5" - ], - "metadata": { - "id": "akUVqotnOLkH" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "#Votre code ici" - ], - "metadata": { - "id": "UX0afNaqOVZ2" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "Q3. Qu'observez-vous ?" - ], - "metadata": { - "id": "UNn9fUuXO4Le" - } - }, - { - "cell_type": "markdown", - "source": [ - "```markdown\n", - "Votre réponse ici\n", - "```" - ], - "metadata": { - "id": "dSQEl0XXO8IG" - } - }, - { - "cell_type": "markdown", - "source": [ - "Q4. Quelle conclusion peut-on en tirer sur la significativité d'un alignement ?" - ], - "metadata": { - "id": "xHfVXpQhf15n" - } - }, - { - "cell_type": "markdown", - "source": [ - "```markdown\n", - "Votre réponse ici\n", - "```" - ], - "metadata": { - "id": "5KjhEeHDgDns" - } - } - ] -} \ No newline at end of file diff --git a/BINF2025_TP3_paul_rousseau.ipynb b/BINF2025_TP3_paul_rousseau.ipynb new file mode 100644 index 0000000..2980e6e --- /dev/null +++ b/BINF2025_TP3_paul_rousseau.ipynb @@ -0,0 +1,649 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# BINF TP3 - Algorithmes d'alignement par paire" + ], + "metadata": { + "id": "V09wQ1WIOmgn" + } + }, + { + "cell_type": "markdown", + "source": [ + "Dans ce TP nous allons manipuler les algorithmes d'alignement par paire." + ], + "metadata": { + "id": "er6CtAyOxC6F" + } + }, + { + "cell_type": "markdown", + "source": [ + "# Exercice 0 - Echauffement" + ], + "metadata": { + "id": "BqEa3BJ1xICM" + } + }, + { + "cell_type": "markdown", + "source": [ + "Q1. Donnez le score de la superposition :\n", + "\n", + "| | |\n", + "| :---: | :---: |\n", + "x | ATGTCATGA---TAC |\n", + "y | AT--CTAAATGTTAC |\n", + "\n", + "\n", + "étant donne le schéma d'évaluation :\n", + "\n", + "| | A | T | G | C |\n", + "| :---: | :---: | :---: | :---: | :---: |\n", + "| **A** | 1 | -1 | -1 | -1 |\n", + "| **T** | -1 | 1 | -1 | -1 |\n", + "| **G** | -1 | -1 | 1 | -1 |\n", + "| **C** | -1 | -1 | -1 | 1 |\n", + "\n", + "et\n", + "\n", + "$\\gamma(g) = 0.5 |g| + 0.5$" + ], + "metadata": { + "id": "qqiiq5bcxYvM" + } + }, + { + "cell_type": "markdown", + "source": [ + "```markdown\n", + "0,5\n", + "```" + ], + "metadata": { + "id": "kCJGGGYQ2GNi" + } + }, + { + "cell_type": "markdown", + "source": [ + "Q2. Alignez les séquences suivantes avec l'algorithme de Levenshtein : x = ATG et y = ACTG." + ], + "metadata": { + "id": "XyhXAhK-2NKJ" + } + }, + { + "cell_type": "markdown", + "source": [ + "```markdown\n", + "x = A-TG y = ACTG\n", + "```" + ], + "metadata": { + "id": "b9iovhyZ2bXw" + } + }, + { + "cell_type": "markdown", + "source": [ + "Q3.\tAlignez les séquences suivantes avec l'algorithme de Needleman-Wunsch global x = TAT et y = ATGAC en considérant le schéma d'évaluation suivant\n", + "\n", + "| | A | T | G | C |\n", + "| :---: | :---: | :---: | :---: | :---: |\n", + "| **A** | 1 | -0.5 | -0.5 | -0.5 |\n", + "| **T** | -0.5 | 1 | -0.5 | -0.5 |\n", + "| **G** | -0.5 | -0.5 | 1 | -0.5 |\n", + "| **C** | -0.5 | -0.5 | -0.5 | 1 |\n", + "\n", + "et\n", + "\n", + "$\\gamma(g) = 0.5 |g|$\n" + ], + "metadata": { + "id": "OV_YaQHr2elB" + } + }, + { + "cell_type": "markdown", + "source": [ + "```markdown\n", + "x = -TAT- et y = ATGAC\n", + "```" + ], + "metadata": { + "id": "g_MrecVs3Nrw" + } + }, + { + "cell_type": "markdown", + "source": [ + "Q4. Alignez les séquences suivantes avec l'algorithme de Smith-Waterman x = TTGG y = ATGAC en utilisant le schéma d'évaluation de la question précédente.\n" + ], + "metadata": { + "id": "y1YF-G6E3Qoo" + } + }, + { + "cell_type": "markdown", + "source": [ + "```markdown\n", + "Votre réponse ici\n", + "```" + ], + "metadata": { + "id": "LLMECocb3pgI" + } + }, + { + "cell_type": "markdown", + "source": [ + "# Exercice 1 : Algorithme de Levenshtein - version récursive" + ], + "metadata": { + "id": "46gw0avh3wGw" + } + }, + { + "cell_type": "markdown", + "source": [ + "Q1. Ecrivez une fonction\n", + "\n", + "levenshtein(x: str, y: str) -> int\n", + "\n", + "qui retourne la distance de Levenshtein entre les séquences x et y en utilisant la version récursive de l'algorithme." + ], + "metadata": { + "id": "ZKc09Kyg4a6v" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "def levenshtein(x, y):\n", + " if not x:\n", + " return len(y)\n", + " if not y:\n", + " return len(x)\n", + " return min(\n", + " levenshtein(x[1:], y) + 1,\n", + " levenshtein(x, y[1:]) + 1,\n", + " levenshtein(x[1:], y[1:]) + (x[0] != y[0])\n", + " )\n", + "\n", + "print(levenshtein('CCAG','CA'))\n", + "print(levenshtein('CCGT','CGTCA'))" + ], + "metadata": { + "id": "FJR69IEQ4aHv", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c5d40d01-71ea-4c39-94de-37761acc9344" + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "2\n", + "3\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Q2. Vous pouvez tester votre code sur les exemples suivants:\n", + "\n", + "\n", + "* $L('CCAG', 'CA') = 2$\n", + "* $L('CCGT', 'CGTCA') = 3$\n", + "* $L(AY678264^*, OQ870305^*) = 310$\n", + "\n", + "$^*$ ids genbank de deux sequences." + ], + "metadata": { + "id": "arFVwA6E5NWn" + } + }, + { + "cell_type": "markdown", + "source": [ + "# Exercice 2 : Algorithme de Smith-Waterman - version itérative" + ], + "metadata": { + "id": "erCpfG7O7BV-" + } + }, + { + "cell_type": "markdown", + "source": [ + "Q1. Ecrivez la fonction\n", + "\n", + "sw_fwd(x: str, y: str, cmap: dict, sigma: array, (go, ge): list) -> (array, array)\n", + "\n", + "qui construit les matrices $S$ et $B$ en utilisant l'algorithme de Smith-Waterman pour aligner les séquences x et y suivant le schéma d'évaluation donné par la matrice de substitution $\\Sigma$ et la fonction d'évaluation des trous $\\gamma(n)= g_o + g_e \\times n$. Le dictionnaire cmap donne la position des différents nucléotides dans la matrice $\\Sigma$. La fonction retourne la paire de matrices de score $S$ et de retour $B$." + ], + "metadata": { + "id": "rv2Y78y37IOd" + } + }, + { + "cell_type": "code", + "source": [ + "def sw_fwd(x, y, cmap, sigma, gap_params):\n", + " go, ge = gap_params\n", + " S = np.zeros((len(x) + 1, len(y) + 1))\n", + " B = np.zeros((len(x) + 1, len(y) + 1), dtype=int)\n", + "\n", + " for i in range(1, len(x) + 1):\n", + " for j in range(1, len(y) + 1):\n", + " match = S[i - 1][j - 1] + sigma[cmap[x[i - 1]]][cmap[y[j - 1]]]\n", + " delete = S[i - 1][j] - ge\n", + " insert = S[i][j - 1] - ge\n", + " S[i][j] = max(0, match, delete, insert)\n", + " B[i][j] = np.argmax([0, match, delete, insert])\n", + "\n", + " return S, B" + ], + "metadata": { + "id": "njn3JB0b-WHj" + }, + "execution_count": 3, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Q2. Ecrivez la fonction\n", + "\n", + "sw_bwd(x: str, y: str, S: array, B: array) -> (str, str, float)\n", + "\n", + "qui effectue l'etape de retour de l'algorithme de Smith-Waterman etant donné les séquences $x$ et $y$ et les matrices de score $S$ et de retour $B$. La fonction retourne un tuple contenant les alignements des séquences x et y et le score de l'alignement." + ], + "metadata": { + "id": "55n8mt9U-Wai" + } + }, + { + "cell_type": "code", + "source": [ + "def sw_bwd(x, y, S, B):\n", + " i, j = np.unravel_index(np.argmax(S), S.shape)\n", + " aligned_x, aligned_y = [], []\n", + " score = S[i][j]\n", + "\n", + " while S[i][j] > 0:\n", + " if B[i][j] == 1:\n", + " aligned_x.append(x[i - 1])\n", + " aligned_y.append(y[j - 1])\n", + " i -= 1\n", + " j -= 1\n", + " elif B[i][j] == 2:\n", + " aligned_x.append(x[i - 1])\n", + " aligned_y.append('-')\n", + " i -= 1\n", + " elif B[i][j] == 3:\n", + " aligned_x.append('-')\n", + " aligned_y.append(y[j - 1])\n", + " j -= 1\n", + "\n", + " return \"\".join(reversed(aligned_x)), \"\".join(reversed(aligned_y)), score" + ], + "metadata": { + "id": "ij9JDpBm_UZ7" + }, + "execution_count": 14, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Q3. Vous pouvez tester votre code en utilisant le schéma d'évaluation suivant :" + ], + "metadata": { + "id": "kwmxg2dxAiwS" + } + }, + { + "cell_type": "code", + "source": [ + "cmap = {\"A\": 0, \"T\": 1, \"G\": 2, \"C\": 3}\n", + "m = np.array([[1, -0.5, -0.5, -0.5],\n", + " [-0.5, 1, -0.5, -0.5],\n", + " [-0.5, -0.5, 1, -0.5],\n", + " [-0.5, -0.5, -0.5, 1]])\n", + "go = 0\n", + "ge = 0.5" + ], + "metadata": { + "id": "JUtYRFTBAwwZ" + }, + "execution_count": 15, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "S, B = sw_fwd('TCGC', 'CTTAG', cmap, m, (go, ge))\n", + "x, y, score = sw_bwd('TCGC', 'CTTAG', S, B)\n", + "print(x)\n", + "print(y)\n", + "print(score)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "AYRAz_1V8zXz", + "outputId": "e4b6829b-3350-47cb-e14d-b3c0bcb07cf4" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "TCG\n", + "TAG\n", + "1.5\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "* $SW('TCGC', 'CTTAG')$ retourne un score de $1.5$ à la position $(3,5)$ et l'alignement" + ], + "metadata": { + "id": "eMGh4K5aIFxE" + } + }, + { + "cell_type": "code", + "source": [ + "HTML(\"
x:TCG
y:TAG
\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 141 + }, + "id": "joHNwJ9AIf6F", + "outputId": "de5f467e-ddb0-4585-f3ec-e3499ad84f03" + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "error", + "ename": "NameError", + "evalue": "name 'HTML' is not defined", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mHTML\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"
x:TCG
y:TAG
\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'HTML' is not defined" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "* $SW(AY678264^*, OQ870305^*)$ retourne un score de $342.1$ à la position $(708,717)$ et l'alignement" + ], + "metadata": { + "id": "JJlU5yvZI43D" + } + }, + { + "cell_type": "code", + "source": [ + "from IPython.display import HTML\n", + "HTML(\"
x:ATGGTGAGCAAGGGCGAGGAGGATAACATGGCCATCATCAAGGAGTTCATGCGCTTCAAGGTGC-A-CATGGAGGGCTCCGTGAACGGCCACGAGTTCGAGATCGAG---GGCGAGGGCGAGGGC--CGCC-CCTACGAGGGCACCCAGACCGC-CAAGCTGAAGGTG-ACCA-AGG---G-TGGCC---CCCT-GCCCTTCGCCT-GGGA-CATCCTGTCC--C--C-T-CAGTTCATGT-A-CGGCT-CCAAGGCCTACGTG-A--AGCAC--C--C--C--G-CCGACATCCCCG-A--CTAC-T--TGAAGCTG-TCCTTC--C--C-----CGA-GG--GCTTCAAGTGGGAGCG-CGTGATGAACTTCGAGGACGGCGGCGTGGTG-ACCG--T-GA-C-CCAGGAC-TC--CTCCCTGCAGGACGGCGAGTTCATCTACAAGGTG---AAGCTGCGCGGCACCAACTTCCCCT-CCGACGGCCCCGTA-ATGCA-GAAGAAGACCATGGGCTG--GGA-GGCCTCCTCCGAGCGGATGTACCCCGAGGA-CGGCGCC-CTGAAGGGCGAGATCAAGCAGA-GGCTGAAGC-TGAAGGACGGCGGCCACTACGACGCTGAGGTCAAGACCACCTACA-AGGCCAAGAAG-CCCGTGCAGCTGCCCGGC-GCCTACAACGTCAACATCAAGT-TG----GA-CATCACCTCCCACAACGAGGA-CTAC-A-C-CA---T-C-G-TGGAACAGTACG-AACGCGCCGAGGGCCGCCACTCCAC-CGGCGGCATGGACGAGCTGTACAAG
y:ATGGTGAGCAAGGGCGAGGA-G----C-T-G--TTCA-C-CGG-GGTGGTGCCCATCCTGGT-CGAGC-TGGACGGCGACGTAAACGGCCACAAGTTC-AG--CGTGTCCGGCGAGGGCGAGGGCGATGCCACCTAC---GGCAAGCTGACC-CTGAAG-TTCATTTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCC-AC-CCTCGTGACCACCCTGACCTACGGCGTGCAGTGC-T-TCAGCCGCTACCCCGACC-ACATGAAGCAGCACGACTTCTTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGC-GCACCATCTTCTTCAAGGACGACGGCAACTACAAGA-CCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTGAAGGGCATCGACTTCAAGGAGGACGGC-A--ACATC--C-TGGGGCACAAGCTG-G-AGTA-CAACTACAACAGCC-ACAACGTC-TATAT-CATG--GCCGA-CAA--GCAGAAGAACGG-CA--T-C-A-AGG-TGAACTTC-AAGATC--CGCCAC--AA---C---ATCGAG--GACGGC---AGCGTGCAGCTCGCCGACCACTACCA-GC--A-G--AACACC-CC--CATCGGCGACG--GCCCCGTGCTGCTGCCCGACAACC-ACTACCTGAGCACCCAGTCCGCCCTGAGCAA-A-GACCC-CAACGAGAAGC-GCGATCACATGGTCCTGCTGG---AGTTCGTGAC-CGCC----GCCGGGA-T-CACTC-TCGGCATGGACGAGCTGTACAAG
\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 82 + }, + "id": "HUELvWKMFtIO", + "outputId": "bc7b50a6-9d90-42c8-facc-966dad0f8df0" + }, + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
x:ATGGTGAGCAAGGGCGAGGAGGATAACATGGCCATCATCAAGGAGTTCATGCGCTTCAAGGTGC-A-CATGGAGGGCTCCGTGAACGGCCACGAGTTCGAGATCGAG---GGCGAGGGCGAGGGC--CGCC-CCTACGAGGGCACCCAGACCGC-CAAGCTGAAGGTG-ACCA-AGG---G-TGGCC---CCCT-GCCCTTCGCCT-GGGA-CATCCTGTCC--C--C-T-CAGTTCATGT-A-CGGCT-CCAAGGCCTACGTG-A--AGCAC--C--C--C--G-CCGACATCCCCG-A--CTAC-T--TGAAGCTG-TCCTTC--C--C-----CGA-GG--GCTTCAAGTGGGAGCG-CGTGATGAACTTCGAGGACGGCGGCGTGGTG-ACCG--T-GA-C-CCAGGAC-TC--CTCCCTGCAGGACGGCGAGTTCATCTACAAGGTG---AAGCTGCGCGGCACCAACTTCCCCT-CCGACGGCCCCGTA-ATGCA-GAAGAAGACCATGGGCTG--GGA-GGCCTCCTCCGAGCGGATGTACCCCGAGGA-CGGCGCC-CTGAAGGGCGAGATCAAGCAGA-GGCTGAAGC-TGAAGGACGGCGGCCACTACGACGCTGAGGTCAAGACCACCTACA-AGGCCAAGAAG-CCCGTGCAGCTGCCCGGC-GCCTACAACGTCAACATCAAGT-TG----GA-CATCACCTCCCACAACGAGGA-CTAC-A-C-CA---T-C-G-TGGAACAGTACG-AACGCGCCGAGGGCCGCCACTCCAC-CGGCGGCATGGACGAGCTGTACAAG
y:ATGGTGAGCAAGGGCGAGGA-G----C-T-G--TTCA-C-CGG-GGTGGTGCCCATCCTGGT-CGAGC-TGGACGGCGACGTAAACGGCCACAAGTTC-AG--CGTGTCCGGCGAGGGCGAGGGCGATGCCACCTAC---GGCAAGCTGACC-CTGAAG-TTCATTTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCC-AC-CCTCGTGACCACCCTGACCTACGGCGTGCAGTGC-T-TCAGCCGCTACCCCGACC-ACATGAAGCAGCACGACTTCTTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGC-GCACCATCTTCTTCAAGGACGACGGCAACTACAAGA-CCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTGAAGGGCATCGACTTCAAGGAGGACGGC-A--ACATC--C-TGGGGCACAAGCTG-G-AGTA-CAACTACAACAGCC-ACAACGTC-TATAT-CATG--GCCGA-CAA--GCAGAAGAACGG-CA--T-C-A-AGG-TGAACTTC-AAGATC--CGCCAC--AA---C---ATCGAG--GACGGC---AGCGTGCAGCTCGCCGACCACTACCA-GC--A-G--AACACC-CC--CATCGGCGACG--GCCCCGTGCTGCTGCCCGACAACC-ACTACCTGAGCACCCAGTCCGCCCTGAGCAA-A-GACCC-CAACGAGAAGC-GCGATCACATGGTCCTGCTGG---AGTTCGTGAC-CGCC----GCCGGGA-T-CACTC-TCGGCATGGACGAGCTGTACAAG
" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Exercice 3 : Distribution des scores d’alignement pour des séquences aléatoires\n", + "\n", + "Pour tester si un alignement reflète une réelle similarité biologique, on va évaluer la distribution des scores d’alignement pour des paires de séquences aléatoires." + ], + "metadata": { + "id": "Q5jVeLfgMMtA" + } + }, + { + "cell_type": "markdown", + "source": [ + "Q1. En considérant deux séquences aléatoires de même taille N, où chaque nucléotide apparaît avec une probabilité uniforme de ¼, calculer le score moyen attendu pour une superposition sans trou dans le cas où une identité vaut +1 et une différence vaut 0." + ], + "metadata": { + "id": "6xyXw0HsMQGf" + } + }, + { + "cell_type": "markdown", + "source": [ + "```markdown\n", + "E[score total] = N × E[score position] = N × (1/4) = N/4\n", + "```" + ], + "metadata": { + "id": "meF18gt-Mhcn" + } + }, + { + "cell_type": "markdown", + "source": [ + "Q2. La question précédente peut se resoudre analytiquement car on ne considère pas de trou. Pour étendre le résultat precedent à un alignement avec trous, on va se baser sur la simulation de séquences aleatoires.\n", + "\n", + "Générez $R$ paires de séquences aléatoires de tailles $N$ avec des probabilitées uniformes d'apparition de nucléotides $p_A = p_T = p_G = p_C = $ ¼. Affichez sous forme de violinplots les distribution des scores d'alignements entre chaque paire, obtenu par :\n", + " 1. un alignement sans trou (cf. Q1) ;\n", + " 2. un alignement local via Smith-Waterman (utilisez le code de l'exercice précédent)\n", + "\n", + "Utilisez le schéma d'évaluation suivant :" + ], + "metadata": { + "id": "fP5_mHnYMkNI" + } + }, + { + "cell_type": "code", + "source": [ + "rmap = {\"A\": 0, \"T\": 1, \"G\": 2, \"C\": 3}\n", + "sigma = np.array([[1, -0.5, -0.5, -0.5],\n", + " [-0.5, 1, -0.5, -0.5],\n", + " [-0.5, -0.5, 1, -0.5],\n", + " [-0.5, -0.5, -0.5, 1]])\n", + "go =0\n", + "ge = 0.5" + ], + "metadata": { + "id": "akUVqotnOLkH" + }, + "execution_count": 23, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from typing import List, Tuple, Dict\n", + "\n", + "R = 1000\n", + "N = 100\n", + "\n", + "def generate_random_sequences(n: int, length: int) -> List[Tuple[str, str]]:\n", + " \"\"\"Génère n paires de séquences aléatoires de longueur donnée.\"\"\"\n", + " nucleotides = ['A', 'T', 'G', 'C']\n", + " pairs = []\n", + " for _ in range(n):\n", + " seq1 = ''.join(np.random.choice(nucleotides, size=length))\n", + " seq2 = ''.join(np.random.choice(nucleotides, size=length))\n", + " pairs.append((seq1, seq2))\n", + " return pairs\n", + "\n", + "def score_no_gap(seq1: str, seq2: str) -> float:\n", + " \"\"\"Calcule le score d'alignement sans trou.\"\"\"\n", + " score = 0\n", + " for i in range(min(len(seq1), len(seq2))):\n", + " if seq1[i] == seq2[i]:\n", + " score += 1\n", + " return score\n", + "\n", + "def get_sw_score(seq1: str, seq2: str, rmap: Dict[str, int], sigma: np.ndarray, go: float, ge: float) -> float:\n", + " \"\"\"Utilise sw_fwd pour calculer le score d'alignement local maximal.\"\"\"\n", + " S, _ = sw_fwd(seq1, seq2, rmap, sigma, (go, ge))\n", + " return np.max(S)\n", + "\n", + "seq_pairs = generate_random_sequences(R, N)\n", + "\n", + "scores_no_gap = []\n", + "scores_local = []\n", + "\n", + "for seq1, seq2 in seq_pairs:\n", + " scores_no_gap.append(score_no_gap(seq1, seq2))\n", + "\n", + " scores_local.append(get_sw_score(seq1, seq2, rmap, sigma, go, ge))\n", + "\n", + "plt.figure(figsize=(10, 6))\n", + "data = [scores_no_gap, scores_local]\n", + "labels = ['Alignement sans trou', 'Alignement local (Smith-Waterman)']\n", + "\n", + "sns.violinplot(data=data)\n", + "plt.xticks([0, 1], labels)\n", + "plt.ylabel('Score d\\'alignement')\n", + "plt.title(f'Distribution des scores d\\'alignement pour {R} paires de séquences aléatoires de longueur {N}')\n", + "plt.grid(axis='y', linestyle='--', alpha=0.7)\n", + "\n", + "print(f\"Alignement sans trou - Score moyen théorique: {N/4}\")\n", + "print(f\"Alignement sans trou - Score moyen observé: {np.mean(scores_no_gap):.2f} ± {np.std(scores_no_gap):.2f}\")\n", + "print(f\"Alignement local - Score moyen observé: {np.mean(scores_local):.2f} ± {np.std(scores_local):.2f}\")\n", + "\n", + "plt.show()" + ], + "metadata": { + "id": "UX0afNaqOVZ2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 597 + }, + "outputId": "322f2b19-451a-4ded-a3e0-45270fb3d3f6" + }, + "execution_count": 26, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Alignement sans trou - Score moyen théorique: 25.0\n", + "Alignement sans trou - Score moyen observé: 24.92 ± 4.28\n", + "Alignement local - Score moyen observé: 36.00 ± 3.07\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Q3. Qu'observez-vous ?" + ], + "metadata": { + "id": "UNn9fUuXO4Le" + } + }, + { + "cell_type": "markdown", + "source": [ + "```markdown\n", + "\n", + "```" + ], + "metadata": { + "id": "dSQEl0XXO8IG" + } + }, + { + "cell_type": "markdown", + "source": [ + "Q4. Quelle conclusion peut-on en tirer sur la significativité d'un alignement ?" + ], + "metadata": { + "id": "xHfVXpQhf15n" + } + }, + { + "cell_type": "markdown", + "source": [ + "```markdown\n", + "Votre réponse ici\n", + "```" + ], + "metadata": { + "id": "5KjhEeHDgDns" + } + } + ] +} \ No newline at end of file