Bioinformatique M1 BTV Stockage des données

39
Bioinformatique M1 BTV Stockage des données Basseur Matthieu [email protected] http://www.info.univ-angers.fr/pub/basseur/ 1

Transcript of Bioinformatique M1 BTV Stockage des données

Page 2: Bioinformatique M1 BTV Stockage des données

Sommaire

Introduction

Formats de stockage texte

Base de données

2

Page 3: Bioinformatique M1 BTV Stockage des données

Introduction

Bioinformatique

Les premières techniques de séquençage d’ADN sont apparues dès 1977.

Depuis l’apparition de séquenceurs automatiques (années 90), les volumes

de données générés par la bioinformatique sont devenus colossaux :

• comment stocker l'information de manière non redondante

• comment extraire l'information utile

Utilisation de bases de données

Bases de données

GenBank www.ncbi.nlm.nih.gov/Genbank

PDB www.pdb.org

LEAPDB http://forge.info.univ-angers.fr/~gh/Leadb/

3

Page 4: Bioinformatique M1 BTV Stockage des données

Introduction

GenBank

Banque de gènes américaine en libre accès de toutes les séquences de

nucléotides publiquement disponibles et de leur traduction en protéines.

Cette base de données a été créée au Centre national pour l'information

biotechnologique (NCBI) dans le cadre de la collaboration internationale

sur le séquençage des nucléotides (INSDC selon le sigle anglais).

4

Année Paires de Base # Entrées

1982 680 338 606

1987 16 752 872 15 465

1992 120 242 234 97 084

1997 1 258 290 513 1 891 953

2002 28 507 990 166 22 318 883

2007 83 874 179 730 80 388 382

2012 135 117 731 375 146 413 798

Page 5: Bioinformatique M1 BTV Stockage des données

Introduction

PDB

La banque de données sur les protéines du Research Collaboratory for

Structural Bioinformatics, plus communément appelée Protein Data Bank

ou PDB est une collection mondiale de données sur la structure

tridimensionnelle (ou structure 3D) de macromolécules biologiques :

protéines, essentiellement, et acides nucléiques (structures essentiellement

déterminées par cristallographie aux rayons X ou par spectroscopie). Ces

données expérimentales sont déposées dans la PDB par des chercheurs

du monde entier et appartiennent au domaine public.

79180 structures tridimentionnelles enregistrées au 7 Février 2012.

5

Page 6: Bioinformatique M1 BTV Stockage des données

Introduction

Protéines LEA

« Les protéines LEA (Late Embryogenesis Abundant proteins) sont des

protéines qui contribuent, principalement chez les végétaux, à l'acquisition

de la tolérance à la dessiccation, en particulier dans le cas de

déshydratation ou de stress induit par le froid. Elles sont assez mal

connues et encore moins bien classifiées, même si des groupes de LEA

sont souvent utilisés. Nous avons, avec Emmanuel JASPARD de

l'Université d'Angers, sélectionné à partir des données disponibles au NCBI

plusieurs centaines de protéines annotées LEA que nous avons ensuite

complétées pour en faire la base de données LEAPDB. On pourra

consulter le wiki français sur l'acclimatation des plantes au froid. »

(source : http://www.info.univ-angers.fr/pub/gh/Datasets/lea.htm)

6

Page 7: Bioinformatique M1 BTV Stockage des données

Sommaire

Introduction

Formats de stockage texte

Base de données

7

Page 8: Bioinformatique M1 BTV Stockage des données

Formats de fichiers

Il existe plusieurs formats de stockage du texte :

• Spécifiques aux séquences :

• Texte brut

• Format FASTA

• Format EMBL

• Format GCG

• Format GenBank

• Format IG

• Format PDB

• Format de stockage génériques de texte :

• Format CSV (Comma Separated Values)

• Format XML (+ Format PDBML) 8

Page 9: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : Texte brut

ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCCCCTGGAGG

GTGGCCCCACCGGCCGAGACAGCGAGCATATGCAGGAAGCGGCAGGAATAAGGAAAAGCAGCCTCCTGACTTTCCTCG

CTTGGTGGTTTGAGTGGACCTCCCAGGCCAGTGCCGGGCCCCTCATAGGAGAGGAAGCTCGGGAGGTGGCCAGGCGGC

AGGAAGGCGCACCCCCCCAGCAATCCGCGCGCCGGGACAGAATGCCCTGCAGGAACTTCTTCTGGAAGACCTTCTCCT

CCTGCAAATAAAACCTCACCCATGAATGCTCACGCAAGTTTAATTACAGACCTGAA

9

• Ne contient que des lettre désignant la séquence (acides aminés ou ADN)

• Une seule séquence est représentée

Page 10: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : EMBL

ID AB000263 standard; RNA; PRI; 368 BP.

XX

AC AB000263;

XX

DE Homo sapiens mRNA for prepro cortistatin like peptide, complete cds.

XX

SQ Sequence 368 BP;

acaagatgcc attgtccccc ggcctcctgc tgctgctgct ctccggggcc acggccaccg 60

ctgccctgcc cctggagggt ggccccaccg gccgagacag cgagcatatg caggaagcgg 120

caggaataag gaaaagcagc ctcctgactt tcctcgcttg gtggtttgag tggacctccc 180

aggccagtgc cgggcccctc ataggagagg aagctcggga ggtggccagg cggcaggaag 240

gcgcaccccc ccagcaatcc gcgcgccggg acagaatgcc ctgcaggaac ttcttctgga 300

agaccttctc ctcctgcaaa taaaacctca cccatgaatg ctcacgcaag tttaattaca 360

gacctgaa 368

//

10

• Peut contenir plusieurs séquences

• Chaque séquence commence par « ID » suivi par des descriptions. La

séquence suit une ligne marquée de « SQ » et est terminée par « // »

Page 11: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : GCG

ID AB000263 standard; RNA; PRI; 368 BP.

XX

AC AB000263;

XX

DE Homo sapiens mRNA for prepro cortistatin like peptide, complete cds.

XX

SQ Sequence 368 BP;

AB000263 Length: 368 Check: 4514 ..

1 acaagatgcc attgtccccc ggcctcctgc tgctgctgct ctccggggcc acggccaccg

61 ctgccctgcc cctggagggt ggccccaccg gccgagacag cgagcatatg caggaagcgg

121 caggaataag gaaaagcagc ctcctgactt tcctcgcttg gtggtttgag tggacctccc

181 aggccagtgc cgggcccctc ataggagagg aagctcggga ggtggccagg cggcaggaag

241 gcgcaccccc ccagcaatcc gcgcgccggg acagaatgcc ctgcaggaac ttcttctgga

301 agaccttctc ctcctgcaaa taaaacctca cccatgaatg ctcacgcaag tttaattaca

361 gacctgaa

11

• Contient une seule séquence (plusieurs séquences : format GCG-RSF)

• Commence par des lignes de descriptions. La séquence suit une ligne terminée

par les caractères « .. »

Page 12: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : GenBank

LOCUS AB000263 368 bp mRNA linear PRI 05-FEB-1999

DEFINITION Homo sapiens mRNA for prepro cortistatin like peptide, complete cds.

ACCESSION AB000263

ORIGIN

1 acaagatgcc attgtccccc ggcctcctgc tgctgctgct ctccggggcc acggccaccg

61 ctgccctgcc cctggagggt ggccccaccg gccgagacag cgagcatatg caggaagcgg

121 caggaataag gaaaagcagc ctcctgactt tcctcgcttg gtggtttgag tggacctccc

181 aggccagtgc cgggcccctc ataggagagg aagctcggga ggtggccagg cggcaggaag

241 gcgcaccccc ccagcaatcc gcgcgccggg acagaatgcc ctgcaggaac ttcttctgga

301 agaccttctc ctcctgcaaa taaaacctca cccatgaatg ctcacgcaag tttaattaca

361 gacctgaa

//

12

• Peut contenir plusieurs séquences (séparées par « // »)

• Contient d’abord des mots clés (LOCUS, ACCESSION …) suivis de leurs

valeurs, puis le mot clé ORIGIN suivi de la séquence (60 caractères par ligne)

Page 13: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : IG

; comment

; comment

AB000263

ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCC

CCTGGAGGGTGGCCCCACCGGCCGAGACAGCGAGCATATGCAGGAAGCGGCAGGAATAAGGAAAAGCAGC

CTCCTGACTTTCCTCGCTTGGTGGTTTGAGTGGACCTCCCAGGCCAGTGCCGGGCCCCTCATAGGAGAGG

AAGCTCGGGAGGTGGCCAGGCGGCAGGAAGGCGCACCCCCCCAGCAATCCGCGCGCCGGGACAGAATGCC

CTGCAGGAACTTCTTCTGGAAGACCTTCTCCTCCTGCAAATAAAACCTCACCCATGAATGCTCACGCAAG

TTTAATTACAGACCTGAA1

13

• Peut contenir plusieurs séquences

• Commence par des lignes de commentaires commençant par « ; », puis une

ligne indiquant le nom de la séquence (sans espaces), puis la séquence.

• La séquence se termine par « 1 » si elle est linéaire, « 2 » si elle est circulaire.

Page 14: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : PDB (1/2)

HEADER OXIDOREDUCTASE 27-OCT-03 1UR5

TITLE STABILIZATION OF A TETRAMERIC MALATE DEHYDROGENASE BY

TITLE 2 INTRODUCTION OF A DISULFIDE BRIDGE AT THE DIMER/DIMER

TITLE 3 INTERFACE

COMPND MOL_ID: 1;

COMPND 2 MOLECULE: MALATE DEHYDROGENASE;

COMPND 3 CHAIN: A, C;

COMPND 4 EC: 1.1.1.37;

COMPND 5 ENGINEERED: YES;

COMPND 6 MUTATION: YES

SOURCE MOL_ID: 1;

SOURCE 2 ORGANISM_SCIENTIFIC: CHLOROFLEXUS AURANTIACUS;

SOURCE 3 EXPRESSION_SYSTEM: ESCHERICHIA COLI;

SOURCE 4 EXPRESSION_SYSTEM_STRAIN: DH5A

KEYWDS OXIDOREDUCTASE, TRICARBOXYLIC ACID CYCLE,

KEYWDS 2 MALATE DEHYDROGENASE

EXPDTA X-RAY DIFFRACTION

AUTHOR A.BJORK,B.DALHUS,D.MANTZILAS,V.G.H.EIJSINK,R.SIREVAG

14

Page 15: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : PDB (2/2)

SEQRES 1 A 309 MET ARG LYS LYS ILE SER ILE ILE GLY ALA GLY PHE VAL

SEQRES 2 A 309 GLY SER THR THR ALA HIS TRP LEU ALA ALA LYS GLU LEU

SEQRES 3 A 309 GLY ASP ILE VAL LEU LEU ASP ILE VAL GLU GLY VAL PRO

SEQRES 4 A 309 GLN GLY LYS ALA LEU ASP LEU TYR GLU ALA SER PRO ILE

SEQRES 5 A 309 GLU GLY PHE ASP VAL ARG VAL THR GLY THR ASN ASN TYR

SEQRES 6 A 309 ALA ASP THR ALA ASN SER ASP VAL ILE VAL VAL THR SER

...

SEQRES 1 C 309 MET ARG LYS LYS ILE SER ILE ILE GLY ALA GLY PHE VAL

SEQRES 2 C 309 GLY SER THR THR ALA HIS TRP LEU ALA ALA LYS GLU LEU

SEQRES 3 C 309 GLY ASP ILE VAL LEU LEU ASP ILE VAL GLU GLY VAL PRO

SEQRES 4 C 309 GLN GLY LYS ALA LEU ASP LEU TYR GLU ALA SER PRO ILE

SEQRES 5 C 309 GLU GLY PHE ASP VAL ARG VAL THR GLY THR ASN ASN TYR

SEQRES 6 C 309 ALA ASP THR ALA ASN SER ASP VAL ILE VAL VAL THR SER

...

15

• Contient une seule séquence

• Commence par des lignes de descriptions. La séquence suit les lignes débutant

par « SEQRES »

• Acides aminés codés par 3 lettres, acides nucléiques par DA, DC, DG, DT, DI

Page 16: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : autres formats

16

• Des autres formats peuvent être cités :

• Fitch

• DANSTrider

• NBRF-PIR

• SWISSPROT

• Format pour les motifs protéiques

• PROSITE (Banques d'enzymes, de motifs et domaines protéiques)

• Formats pours les séquences multiples (alignées)

• FOSN (Files Of Sequence Names) de GCG

• RSF (Rich Sequence Format files) de GCG

• MSF (Multiple Sequence Format)

• PHYLIP

• PAUP

Page 17: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : Codes acides nucléiques

A = adenine

C = cytosine

G = guanine

T = thymine

U = uracil

R = G A (purine)

Y = T C (pyrimidine)

K = G T (keto)

M = A C (amino)

17

• Règles définies par l’IUPAC (International Union of Pure and Applied Chemistry)

• Pour représenter les ambiguïtés dans les séquences

S = G C

W = A T

B = G T C

D = G A T

H = A C T

V = G C A

N = A G C T (any)

Page 18: Bioinformatique M1 BTV Stockage des données

Formats de fichiers : Codes acides aminés

G - Glycine (Gly)

P - Proline (Pro)

A - Alanine (Ala)

V - Valine (Val)

L - Leucine (Leu)

I - Isoleucine (Ile)

M - Methionine (Met)

C - Cysteine (Cys)

F - Phenylalanine (Phe)

Y - Tyrosine (Tyr)

W - Tryptophan (Trp)

18

• Règles définies par l’IUPAC (International Union of Pure and Applied Chemistry)

• Pour représenter les ambiguités dans les séquences

H - Histidine (His)

K - Lysine (Lys)

R - Arginine (Arg)

Q - Glutamine (Gln)

N - Asparagine (Asn)

E - Glutamic Acid (Glu)

D - Aspartic Acid (Asp)

S - Serine (Ser)

T - Threonine (Thr)

X – Tout Acide Aminé (Xxx)

Page 19: Bioinformatique M1 BTV Stockage des données

Formats génériques de fichiers : CSV

19

• Utilisé pour le format d’échange tableur (Excel, Calc)

• les colonnes sont séparées par des « ; » (en général)

• les chaî•nes de caractères peuvent être entourées de « ’’ »

Code;Abrev.;Acide aminé;Masse molaire;Nature

A;Ala;Alanine;89,0940;Apolaire, aliphatique

C;Cys;Cystéine;121,1540;Polaire

D;Asp;Acide aspartique;133,1038;Acide

E;Glu;Acide glutamique;147,1307;Acide

F;Phe;Phényllalanine;165,1918;Apolaire, aromatique

Code Abrev. Acide aminé Masse molaire Nature A Ala Alanine 89,094 Apolaire, aliphatique

C Cys Cystéine 121,154 Polaire

D Asp Acide aspartique 133,1038 Acide

E Glu Acide glutamique 147,1307 Acide

F Phe Phényllalanine 165,1918 Apolaire, aromatique

Page 20: Bioinformatique M1 BTV Stockage des données

Formats génériques de fichiers : XML

20

• XML (eXtensible Markup Language) – définition de langages par balises

• très utilisé en informatique

• nombreux programmes / outils de manipulation

• visualisation sous navigateur

• on peut associer un format d’échange (XSLT) ou de visualisation (XSL)

<protein>

<id>1UR5</id>

<name>malate dehydrogenase</name>

<chains>

<chain name="A" length="309">

<aminoacid code="M" value="MET"/>

<aminoacid code="R" value="ARG"/>

<aminoacid code="K" value="LYS"/>

</chain>

<chain name="C" length="309">

<aminoacid code="G" value=« GLY"/>

</chains>

</protein>

Page 21: Bioinformatique M1 BTV Stockage des données

Sommaire

Introduction

Formats de stockage texte

Base de données

21

Page 22: Bioinformatique M1 BTV Stockage des données

Base de données

22

• N’est ni un fichier texte, ni un fichier Word ou Excel

• Repose sur un SGBD (Système de Gestion de Base de Données) qui permet :

• le stockage de l'information sous forme structurée et non redondante

• la récupération d’information

• Une base de données (BD ou BDD) est un ensemble structuré d'informations

• Les informations sont placées dans des fichiers, et organisées de manière à

pouvoir être facilement triées, classées et modifiées grâce à un SGBD

Page 23: Bioinformatique M1 BTV Stockage des données

SGBD Relationnels

23

• introduit en 1970 par Edgar Codd

• stockage sous forme de tables que l'on peut mettre en relation

• algèbre pour l'interrogation des données

• démarche cohérente entre : LDD (Langage de Description des Données) et

LMD (Langage de Manipulation des données)

• SGBD-R actuels

• Oracle (gros systèmes, PC (entreprises, administrations))

• Access (PC Windows - Microsoft)

• MySQL (PC Linux / Windows)

• …il existe bien d'autres SGDB-R : PostGreSQL, Interbase, Sybase, DBase

Page 24: Bioinformatique M1 BTV Stockage des données

SGBD-R Organisation/hiérarchie

24

• un SGBDR est composé bases de données

• une base de données est composée de tables

• une table est composée de lignes (tuples)

• une ligne est composée de colonnes (champs, attributs)

• le langage utilisé pour consulter/modifier est SQL (Structured Query Language)

Page 25: Bioinformatique M1 BTV Stockage des données

SGBD-R Organisation/hiérarchie : exemple

25

• Base de données visible sur : http://forge.info.univ-angers.fr/~gh/Leadb/

• Page proposant des outils de recherche et de classification des Protéines LEA

mysql --host=janus --user=anonymous --password=anonymous

use LEA;

• Connexion au SGBD « MYSQL » :

• host : Nom ou adresse du serveur hébergeant le SGBD et la base de données

• user : Nom de l’utilisateur

• password : Mot de passe de l’utilisateur

• Chargement de la base de données de nom « LEA »

Page 26: Bioinformatique M1 BTV Stockage des données

SGBD-R Organisation/hiérarchie : exemple

26

show tables;

select * from motifs;

• Affiche la liste des tables de la BDD « LEA »

• Affiche le contenu de la table « motifs »

select nom from motifs;

select * from motifs where id_motif=1;

• Affiche le champs (colonne) « nom » de la table « motifs »

• Affiche le tuple (ligne) de la table « motifs » ayant pour identifiant 1

describe motifs;

• Affiche les champs (colonnes) de la table « motifs »

Page 27: Bioinformatique M1 BTV Stockage des données

SGBD-R : le langage SQL

27

• SQL (Structured Query Language) : langage de manipulation et d'interrogation des bases

de données

• il est utilisé pour la création de la base mais aussi pour l'interrogation des données

• Instructions de base :

• créer une base : CREATE

• créer une table : CREATE

• insérer un enregistrement : INSERT

• modifier un enregistrement : UPDATE

• supprimer un enregistrement : DELETE

• interroger la base : SELECT

Page 28: Bioinformatique M1 BTV Stockage des données

SGBD-R : SELECT – sélection de champs

28

select * from <nom de table>;

• Tout sélectionner : « * »

select <nom de champ> from <nom de table>;

• Sélectionner une colonne : donner le nom du champ voulu

select <nom de champ 1>,…,<nom de champ N> from <nom de table>;

• Sélectionner une colonne : donner les noms des champs voulus, séparés par des « , »

Page 29: Bioinformatique M1 BTV Stockage des données

SGBD-R : SELECT – classer

select <noms de champs> from <nom de table> order by <nom de champ>;

• Classer par ordre alphabétique ou numérique : « order by »

select <noms champs> from <nom table> order by <nom champ> desc;

• Classer par ordre alphabétique/numérique inverse : « order by » et « desc »

29

Page 30: Bioinformatique M1 BTV Stockage des données

SGBD-R : SELECT – restriction

select <noms de champs> from <nom de table> where <restriction>;

• Extraire des tuples d’une table : « where » + restriction

champ=5

champ>10

champ>=10

champ<10

champ<=10

champ<>10

• Exemples d’opérateurs de restrictions : « =,>,>=,<,<=,<>,+,-,*,/,and,or,not »

champ+champ2>5

champ-champ2>5

champ*champ2>5

champ/champ2>5

champ=5 and champ2>10

champ=5 or champ2>10

not champ=5

30

Page 31: Bioinformatique M1 BTV Stockage des données

SGBD-R : SELECT – restriction

select <noms champs> from <nom table> where <nom champ>

like <expression>;

• Extraire des tuples d’une table selon une expression : « like » + expression

select id_motif from motifs where motif like "%a%" ;

select accession,fasta from fastas where fasta like "MATT";

select accession,fasta from fastas where fasta like "MATT%";

select accession,fasta from fastas where fasta like "%MATT%";

select accession,fasta from fastas where fasta like "MAT_T%";

select accession,fasta from fastas where fasta like "%MATT%"

and accession like "CA%";

• Dans l’expression :

• Le caractère « % » permet de remplacer une suite de caractères (éventuellement nulle)

• Le caractère « _ » permet de remplacer exactement un caractère quelconque

31

Page 32: Bioinformatique M1 BTV Stockage des données

SGBD-R : SELECT – exercices

• Afficher les champs de la table « notes »

• Chercher le nombre de tuples contenus dans la table « notes »

• Afficher les tuples dont le numéro d’accession commence par un Y

• Afficher les tuples qui ont été classifiés (différents de N/A)

• Calculer la proportion de tuples qui ont été expertisés

• Afficher les tuples qui ont été expertisés mais pas classifiés

• Afficher les accessions et classes des tuples classifiés, triés par classe

• Même question mais pour les tuples d’accession débutant par « xp »

32

• Afficher les champs de la table « fastas »

• Afficher le contenu du champ accession de la table « fastas »

• Afficher les séquences commençant par « ag »

• Afficher les tuples dont la séquence fasta contient la chaîne « mktga »

• Afficher les notes sur l’unique protéine trouvée (table « notes »)

Page 33: Bioinformatique M1 BTV Stockage des données

SGBD-R : SELECT – tables multiples

select notes.* from fastas,notes where fastas.fasta like "%mktga%"

and fastas.accession=notes.accession;

33

• On peut rechercher dans plusieurs tables simultanément, puis récupérer ce qui nous

intéresse grâce aux identifiants des tuples

• Nom des tables séparées par des virgules

• Champs précédé du nom de la table concernée et d’un point

select notes.* from fastas,notes where fastas.fasta like "%mktg%" and

fastas.accession=notes.accession;

select notes.*,fastas.fasta from fastas,notes where fastas.fasta like

"%mktg%" and fastas.accession=notes.accession;

• On peut obtenir directement le résultat du dernier exercice

• Permet aussi d’appliquer cette recherche en trouvant plusieurs tuples

Page 34: Bioinformatique M1 BTV Stockage des données

SGBD-R : SELECT – exercices

• Afficher les champs de la table « proteins »

• Afficher les numéros d’accession des protéines de longueur inférieure à 10.

• Afficher maintenant en plus leurs notes et leur code génétique.

• Afficher le tuple de la table « proteins » dont l’hydrophobie est supérieure à 0,4.

• Même question, mais afficher la séquence et le numéro d’accession uniquement

• Afficher les numéros d’accession des protéines dont hydrophobie est supérieure à 0,3.

• Afficher maintenant en plus leur code génétique et leur hydrophobie, et les trier par

hydrophobie décroissante.

34

Page 35: Bioinformatique M1 BTV Stockage des données

SGBD-R : SELECT – expressions régulières

35

• On peut rechercher des motifs complexes grâce aux expressions régulières.

• Plus de possibilité qu’avec « like »

select <noms champs> from <nom table> where <nom champ>

regexp <expression_régulière>;

• Recherche simple – similaire au « like »

• On recherche l’expression contenue dans le champ pas une correspondance exacte

select accesssion,fasta from fastas where fasta regexp "mktg";

• Recherche les séquences contenant « mktg ». Est équivalent à :

select accesssion,fasta from fastas where fasta like "%mktg%";

Page 36: Bioinformatique M1 BTV Stockage des données

SGBD-R : expressions régulières - syntaxe

36

• « ^ » : début de chaîne

• « $ » : fin de chaîne

• « . » : caractère quelconque

• « a* » : nombre quelconque (0 à +∞) de caractère « a » (ou tout autre caractère)

• « a+ » : au moins 1 (1 à +∞) caractère « a » (ou tout autre caractère)

• « a? » : 0 ou 1 caractère « a » (ou tout autre caractère)

• « ab|cde » : séquence « ab » OU « cde » (ou toutes autres séquences)

• « (abc)* » : nombre quelconque (0 à +∞) de séquences « abc » (idem pour + et ?)

• « a{n,m} » : caractère a répété entre n et m fois (applicable à une séquence avec « ( ) »)

• « [abcde] » : le caractère « a » OU « b » OU « c » OU « d » ou « e » (par exemple)

• « [a-j] » : caractère entre « a » et « j » (par exemple)

• « [a-jxz] » : caractère entre « a » et « j » OU « x » OU « z » (par exemple)

• « [^a-jxz] » : tout SAUF un caractère entre « a » et « j » OU « x » OU « z »

Page 37: Bioinformatique M1 BTV Stockage des données

SGBD-R : expressions régulières - remarques

37

• Les caractères utilisés pour représentés les expressions régulières ne peuvent donc plus

être recherchés tels quels.

• On les fait précéder de « \\ »

• Dans une expression entre crochets, le nom d'une classe de caractères entourée de « : »

remplace la liste de tous les caractères appartenant à cette classe

• « [:alnum:] » : Caractère alphanumérique

• « [:alpha:] » : Caractère alphabétique, « [:digit:] » : Chiffre

• « [:space:] » : Caractère espace, tabulation ou passage à la ligne.

• « [:lower:] » : Minuscule, « [:upper:] » : Majuscule

• « [:punct:] » : Ponctuation

select … … … regexp "a+b";

recherche le texte « ab » OU « aab » OU « aaab »…

select … … … regexp "a\\+b";

recherche le texte « a+b »

Page 38: Bioinformatique M1 BTV Stockage des données

SGBD-R : expressions régulières – exercices

• Afficher les champs de la table « fastas »

• Afficher les tuples des protéines contenant l’acide aminé « a ».

• Afficher les tuples des protéines commençant par l’acide aminé « a ».

• Afficher les tuples des protéines ne contenant pas l’acide aminé « a ».

• Afficher les tuples des protéines contenant une série de 10 « s ».

• Afficher les tuples contenant au moins cinq acides aminés inconnus.

• Afficher le tuple de la table « motifs » d’identifiant 11.

• Rechercher dans « fastas » les séquences contenant ce motif.

38

• Afficher les champs de la table « motifs »

• Afficher le contenu de la table « motifs »

• Pour chaque motif, imaginer un ou deux exemples de séquences dans lesquelles le motif

est retrouvé

Page 39: Bioinformatique M1 BTV Stockage des données

SGBD-R : sous-requêtes

• Rechercher dans « fastas » les séquences contenant le motif d’identifiant 11.

39

• On peut remplacer une restriction par une sous-requête

• On utilise des parenthèses contenant un select

• Le résultat de la requête ne doit contenir qu’une valeur

select <noms champs> from <nom table> where <nom champ>

<operateur> (select …);

select <noms champs> from <nom table> where <nom champ>

regexp (select …);

• <operateur> peut être par exemple =, <, like, regexp…