Algorithmique pour la bioinformatique 1. Présentation du module

1
1
Algorithmique pour la
bioinformatique
Présentation, dotPlot, et JAVA
(Vincent Ranwez – UM2/ISEM)
2
1. Présentation du module
!Intervenants
!V. Ranwez (cours / TP)
!Alban Mancheron (TP – projet)
!Contenus des TP
!Manipulation de séquences biologiques (tableau 1D)
!Dot plot (tableau 2D, affichage graphique)
!Alignement de 2 séquences (programmation dynamique)
!Manipulation de données NGS
!Notation
!Objectifs du module
!Problématiques biologiques / traduction-solution info / adaptation
!Bibliothèques de bouts de codes utiles
!Bonnes habitudes de programmation
2
3
2. Séquence complémentaire
!ADN, alphabet à 4 lettres :
!A : adénine T : thymine
!G : guanine C : cytosine
G
C
T
A
A
T
T
A
T
A
C G G T C
G C C
A
G
5 3
3 5
!Séquence S1 = CTGGTTACTG
!Complement (S1) = GACCAATGAC
!Reverse (S1) = GTCATTGGTC
!Reverse_Complement (S1) = CAGTAACCAG
!Ecrire les algorithmes de ces 3 fonctions (char[])
S1
4
2. Séquence complémentaire
public static char[] complement (char[]seq)
{
char [] res = new char[seq.length];
for (int i=0; i<seq.length; i++)
switch (seq[i])
{
case 'A':
res[i]='T'; break;
case 'T':
res[i]='A'; break;
case 'C':
res[i]='G'; break;
case 'G':
res[i]='C'; break;
default:
res[i]='X'; break;
}
return res;
}
3
5
2. Séquence complémentaire
public static char[] reverse(char []seq)
{
char [] res = new char[seq.length];
int last = seq.length-1;
for(int i =0;i<seq.length;i++,last--)
res[last]= seq[i];
return res;
}
public static char[] reverse_comp(char[] seq)
{
return( reverse(complement(seq)));
}
Est-ce une solution efficace, complexité ?
6
3. Alignement - Introduction
!Alignement de séquences
!Problème représentatif de la bio-informatique
!Un des outils de bio-informatique les plus utilisés
!Solution graphique (TP2) et algorithmique (TP3)
!Algorithme de base élégant
!Force et limite de l informatique en biologie
!Problématique
!Recherche des similitudes entre plusieurs séquences
!Substitution, Insertion/Déletion (InDel)
!Exemple : POMME/GOMME OCTOBRE/OTARIE
PO M M E
GO M M E
OCTOBR- E
O- TA- RI E
4
7
3. Intérêt de la comparaison de séquences
!Biologie moléculaire
!Séquences ADN, ARN, acides aminés
!Recherche approchée dans une base de données
!Prédiction de structure
!Prédiction de fonction
!Phylogénie (histoire évolutive des espèces)
!Informatique
!Comparaison de fichiers (1ligne ~ 1 caractère) :
diff sous UNIX
!Recherche approchée dans un dictionnaire (correcteur
orthographique, fautes de frappes)
!Autres applications
!Reconnaissance vocale
!
8
4. Dot plot
!Réponse visuelle au problème
!Largement utilisée
principe exemple avec 2 séquences de 230 AA
(avec filtrage)
5
9
4. Dot plot
!Écrire la fonction DotPlot et indiquer sa complexité
public static int[][]dotPlot(char[]seq1, char[] seq2)
{
int [][]res=new int[seq1.length][seq2.length];
for(int i=0;i<seq1.length;i++)
for(int j=0; j<seq2.length; j++)
if(seq1[i]==seq2[j])
res[i][j]=1;
else
res[i][j]=0;
return res;
}
public static int[][]dotPlot(char[]seq1, char[] seq2){int [][]
res=new int[seq1.length][seq2.length];for(int
i=0;i<seq1.length;i++)for(int j=0; j<seq2.length; j++)if
(seq1[i]==seq2[j])res[i][j]=1;elseres[i][j]=0; return
res;}
Importance de la représentation graphique
pour percevoir l information
10
4. Dot plot : filtrage
!On note seq(a,b) la sous séquence de seq allant de
l’indice a à l indice b
!Res[i][j] contiendra 1 ssi
seq1(i-k,i+k) = seq2(j-k,j+k)
!On peut filtrer moins sauvagement en imposant un
seuil d identité entre les 2 sous-séquences au lieu
d une égalité complète
!Attention aux limites
!Quelle est la complexité de cette variante ?
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !