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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!