TP B43 Bio-Informatique 1 TP 1 : Les commandes LINUX et les instructions exécutables sous OCTAVE 1) Quelques commandes LINUX - Ouvrir un terminal (menu Applications Accessoires Terminal) - Afficher la liste des fichiers et répertoires déjà présents dans votre partition racine - Créer un répertoire (nom au choix) où vous sauverez vos programmes en Octave - Placez-vous dans le répertoire que vous venez de créer - Lancez Octave 2) Les variables Qu est ce qu une variable? Quels sont les principaux types de variables? Comment se déclarent-elles? Quels sont les noms de variable corrects parmi les exemples ci-dessous? A A1 A 1 A-1 A_1 1A racine racine carrée racine_carrée racine^2 groupe 1b groupe(1b) groupe:1b groupe1b groupe_1b disponible dispo disp Disp DISP 3) L instruction d affectation Écrire les instructions (en algorithme et en Octave) qui permettent de : - affecter la valeur 3 à la variable a, -5 à la variable b et le carré de b à la variable c ; - affecter la valeur 12,3 à la variable c1, la valeur 23,8 à la variable c2 et le double de la somme de c1 et c2 à la variable perim ; - remettre la valeur de la variable perim à 0 ; - ajouter 1 à la valeur contenue dans la variable a et enlever 1 à celle contenue dans b ; - diviser par 2 la valeur contenue dans la variable b ; - affecter le caractère «t» à la variable base ; - échanger les valeurs des variables a et b. 4) L instruction d écriture Écrire les instructions (en algorithme et en Octave) qui permettent de : - afficher le texte «Fin du programme» ; - afficher le texte «C est fini!» ; - afficher la valeur de la variable b ; - afficher le mot «base»; - afficher le caractère «b» ; - afficher la valeur la variable base. 5) L instruction de lecture Écrire les instructions (en algorithme et en Octave) qui permettent de réaliser les tâches suivantes : - demander à l utilisateur son âge et stocker cette valeur dans la variable age ; - demander à l utilisateur la largeur et la longueur d un rectangle et affecter ces valeurs aux variables c1 et c2 ; - demander à l utilisateur un caractère et le stocker dans la variable caractere (trouver deux méthodes pour réaliser cette tâche en Octave et discuter leurs différences). 6) Premiers petits programmes Écrire les algorithmes complets et les programmes permettant d effectuer les tâches suivantes: - demander à l utilisateur son année de naissance, puis calculer et afficher son âge en 2014 ; - demander le rayon d un cercle à l utilisateur, puis calculer et afficher son périmètre et sa surface ; - demander à l utilisateur sa taille en m et son poids en kg, puis calculer et afficher son indice de masse corporelle (masse en kg divisée par le carré de la taille en m). - demander à l'utilisateur 3 valeurs puis calculer et afficher leur somme et leur moyenne.
TP B43 Bio-Informatique 2 TP 2 : Les structures de contrôle 1) Les structures de choix Écrire l algorithme et le programme en Octave permettant de : - demander à l'utilisateur son âge puis afficher «mineur» si il a moins de 18 ans ; - demander à l utilisateur combien fait 534*69, puis afficher «bravo» si le résultat est exact ou «erreur» s il ne l est pas ; - demander à l utilisateur deux valeurs strictement positives puis afficher un message d'erreur si l'une des valeurs au moins est négative ou nulle; - demander à l utilisateur deux valeurs entre 0 et 1 puis afficher «merci» si les deux valeurs données sont bien entre 0 et 1 (bornes comprises). 2) Les structures de répétition : boucles inconditionnelles - afficher 15 fois à l écran un texte de votre choix ; - demander 5 valeurs à l'utilisateur (à mettre successivement dans la même variable) ; - demander un entier positif à l utilisateur et afficher tous les entiers entre 1 et sa réponse ; - afficher tous les multiples de 8 de 8 à 80. 3) Les structures de répétition : boucles conditionnelles - demander une valeur à l utilisateur puis la diviser par 2 tant qu elle est supérieure à 1 ; - demander à l utilisateur combien font 534*69 jusqu à ce qu il donne la bonne réponse ; - demander à l utilisateur une note comprise entre 0 et 20 jusqu à ce qu elle le soit effectivement. 4) Petits programmes classiques (compteurs et accumulateurs) - demander à l'utilisateur 10 notes et compter combien de notes sont supérieures à 10 ; - demander à l'utilisateur 10 valeurs puis afficher leur moyenne ; - même question en demandant à l'utilisateur combien il souhaite moyenner de valeurs ; - additionner tous les entiers donnés par l utilisateur jusqu à ce que l'utilisateur donne la valeur 0 ; - même tâche en comptant le nombre de valeurs données par l'utilisateur pour calculer et afficher leur moyenne. TP 3 : Révisions ou approfondissent des TP 1 et 2 5) Écrire les algorithmes complets et les programmes en Octave permettant de : - demander un entier n à l utilisateur et calculer la factorielle de n (produit de tous les entiers de 1 à n inclus) ; - afficher les résultats des dix premières tables de multiplication ; - demander à l'utilisateur des valeurs jusqu'à ce qu'il donne 0, en affichant pour chaque valeur donnée le texte «trop grand» si elle est positive ou «trop petit» si elle est négative; - générer un nombre entier aléatoire compris entre 1 et 50 (avec l instruction OCTAVE n=ceil(rand*50);) puis le faire deviner par l utilisateur en affichant à chaque essai si sa proposition est trop petite ou trop grande ; - même tâche en affichant à la fin du jeu le nombre d essais nécessaires à l utilisateur ; - faire générer à l'ordinateur 100 valeurs aléatoires entre 0 et 1 (avec l instruction OCTAVE n=rand;) et compter combien de valeurs tombent dans chacun des 4 intervalles suivant : [ 0 ¼ ], ] ¼ ½ ], ] ½ ¾], ] ¾ 1 ] ; - même tâche avec 1000, 10 000, puis 100 000 valeurs aléatoires et discuter les résultats.
TP B43 Bio-Informatique 3 TP 4 : Les tableaux 1) Généralités - Qu'est-ce qu'un tableau? - Quel avantage un tableau à 10 éléments présente-t-il par rapport à 10 variables scalaires? - Comment déclarer un tableau? - Comment note-t-on et comment utilise-t-on chacun de ses éléments? 2) Quel type de variable utiliseriez-vous pour représenter les données suivantes? Comment les déclarez-vous? - une séquence de 852 bases d ADN ; - la luminosité en un point mesurée toutes les heures pendant une journée ; - le nombre d animaux recensés tous les ans dans 15 niches écologiques pendant 10 ans ; - l'ordre d'arrivée de 20 coureurs numérotés de 1 à 20. Y a-t-il plusieurs façons de représenter certaines de ces données? Comment choisiriez-vous? 3) Quelles sont les instructions (algorithme et Octave) permettant de : - affecter la valeur 5 au 3 e élément d un tableau T à une dimension de 15 entiers; - afficher la valeur de l élément qui se trouve ligne 4 et colonne 7 d un tableau evt à deux dimensions de 30 sur 12 caractères ; - demander à l utilisateur la valeur du 1 er élément d un tableau effectif à une dimension de 10 réels; - affecter la valeur 1 à tous les éléments d un tableau v à une dimension de 100 entiers ; - affecter la valeur 0 à tous les éléments d un tableau debut à deux dimensions de 10 sur 20 entiers ; 4) Ecrire l algorithme et le programme permettant d effectuer les tâches suivantes : - demander à l utilisateur le nombre N de valeurs réelles qu il souhaite saisir, - lui demander ces N valeurs et les affecter aux éléments successifs d un tableau à 1 dimension de N réels, - calculer et afficher la moyenne des éléments du tableau ; - compter et afficher le nombre d'éléments du tableau qui sont supérieurs à la moyenne ; - calculer et afficher le maximum du tableau ; - calculer et afficher l indice du maximum du tableau ; - calculer et afficher le minimum du tableau ; - calculer et afficher l indice du minimum du tableau. TP 5 : Révisions ou approfondissement du TP 4 5) Poursuivre l'exercice 4 précédent pour : - demander à l'utilisateur l'indice de la valeur qu'il souhaite supprimer et la supprimer du tableau ; - demander à l'utilisateur quelle valeur il souhaite insérer et à quelle position, puis insérer dans le tableau la valeur donnée à la position demandée ; - inverser l ordre des éléments du tableau ; - classer les éléments du tableau par ordre croissant. 6) Écrire l algorithme et le programme permettant d effectuer les tâches suivantes : - remplir un tableau de 10 lignes sur 8 colonnes de valeurs aléatoires ; - calculer la moyenne de chaque ligne ; - calculer le minimum de chaque colonne ; - afficher les indices (ligne et colonne) du maximum.
TP B43 Bio-Informatique 4 TP 6 : Etude d'une séquence d'adn Affecter à la variable seq la séquence contenue dans le fichier qui vous sera donné en TP. La variable seq sera donc un tableau à une dimension contenant les caractères 'a', 'c', 't' et 'g'. 1) Affecter à une variable et afficher à l écran la longueur de la séquence chargée 2) Afficher à l écran les 6 premières bases de la séquence et les 6 dernières 3) Affecter à une variable et afficher à l écran la fréquence de chacune des 4 bases 4) Affecter à une variable et afficher la base la plus fréquente dans la séquence 5) Compter le nombre de fois que cette base apparaît dans votre séquence : - de façon isolée - répétée consécutivement 2 fois exactement - répétée consécutivement 3 fois exactement 6) Compter le nombre de séquences palindromiques : - d'au moins 3 lettres - d'au moins 6 lettres TP 7 : Révisions ou traduction de la séquences en acides aminés 7) Afficher à l écran le nombre de codon «start» ('atg') et les positions où on les trouve 8) Afficher à l écran la position du premier codon «stop» ('taa' ou 'tag' ou 'tga') qui se trouve dans le même cadre de lecture que le premier codon «start» 9) En déduire le nombre d acides aminés de la protéine codée par votre séquence en considérant que le premier «start» détermine le cadre de lecture A ce stade, vous devez copiez le fichier traduction.m (demander à l enseignant). L exécution de ce programme affecte à une variable trad un tableau de caractères de 64 lignes sur 4 colonnes. Les colonnes 1 à 3 représentent tous les triplets possibles et la 4 e colonne contient le code à une lettre de l acide aminé correspondant (avec 'X' pour «stop»). trad Ligne 1 'a' 'a' 'a' 'K' Le codon 'aaa' code pour l acide aminé Lysine ('K') Ligne 2 'a' 'a' 'c' 'N' Le codon 'aac' code pour l Asparagine ('N') Ligne 3 'a' 'a' 'g' 'K' Le codon 'aag' code pour la Lysine ('K') Ligne 49 't' 'a' 'a' 'X' Le codon 'taa' est un codon «stop» ('X') Ligne 64 't' 't' 't' 'F' Le codon 'ttt' code pour la Phénylalanine ('F') 10) Utiliser ce tableau pour traduire votre séquence de bases en une séquence d acides aminés (code à une lettre). Afficher à l écran les 10 premiers acides aminés. 11) Calculer et tracer la fréquence de chacun des 20 acides aminés dans votre protéine. 12) Calculer et tracer sur la même courbe que (L) la fréquence des 20 acides aminés codés par une séquence de bases aléatoires et équiprobables, et comparer les deux courbes. Pour rappel, le code à une lettre des acides aminés : A=Alanine C=Cystéine D=Aspartate E=Glutamate F=Phénylalanine G=Glycine H=Histidine I=Isoleucine K=Lysine L=Leucine M=Méthionine N=Asparagine P=Proline Q=Glutamine R=Arginine S= Sérine T=Thréonine V=Valine W=Tryptophane Y= Tyrosine et dans ce tableau : X= CODON STOP
TP B43 Bio-Informatique 5 TP 8 : Comparaison de deux séquences Chargez maintenant deux séquences différentes, et affectez-les aux variables seq1 et seq2. 1) Affecter aux variables et les longueurs respectives de la plus petite et de la plus grande séquence. De même, affecter aux variables et, respectivement, la plus petite et la plus grande des deux séquences. 2) Calculer et afficher la similitude (en terme de pourcentage de bases communes) des deux séquences sur leurs premières, puis sur leurs dernières bases. Sous quelles hypothèses ces calculs ont-ils un intérêt? Que pensez-vous de ces hypothèses? 3) Calculer les similitudes des deux séquences en comparant de toutes les façons possibles bases consécutives de la séquence la plus longue à la séquence plus courte. Afficher la plus grande de ces valeurs. Sous quelle hypothèse ce calcul a-t-il un intérêt? Que pensez-vous de cette hypothèse? 4) Calculer les similitudes des deux séquences après avoir enlevé de toutes les façons possibles à la séquence la plus longue suffisamment de bases consécutives pour qu elle ait la taille de la plus courte. Afficher la plus grande de ces valeurs. Sous quelle hypothèse ce calcul a-t-il un intérêt? Que pensez-vous de cette hypothèse? TP 9 : Révision ou approfondissement de la comparaison de séquences 5) Alignement optimal Implémenter une des méthodes d alignement optimal de séquences données en cours pour comparer vos deux séquences. Justifiez le choix de la méthode. 6) Construction d'arbre phylogénétique Comparer toutes les séquences disponibles 2 à 2 et construire un arbre de distances génétiques selon une des méthodes présentées en cours. Justifiez le choix de la méthode.