• Aucun résultat trouvé

Conception d‘une base de données relationnelle avec SysML

Chapitre III : Matériels et méthodes

2. Système d’information pour la conception de sondes pour biopuces à ADN

2.2. Conception d‘une base de données relationnelle avec SysML

Depuis 1993, le journal Nucleic Acids Research présente chaque année dans son numéro spécial « Database issue » les bases de données biologiques développées par la communauté scientifique. Une collection est mise à jour tous les ans et contient toutes les bases de biologie moléculaire classées par catégorie1. En 2009 (Galperin et Cochrane, 2009), elle compte 1170 bases de données dont 95 nouvelles par rapport à 2008. Dans (Galperin, 2005), une liste complète des bases de données développées jusqu‘en 2005 a été présentée. Depuis, tout est référencé sur le site du journal. Ces bases de données centralisent des informations utiles pour un large public de biologistes. La conception de telles bases de données nécessite souvent une phase d‘ingénierie permettant de modéliser les composants logiciels du système d‘information final qui sera utilisé pour exploiter les données génomiques et biologiques ciblées. Les langages les plus utilisés dans la conception de base de données est Merise (Tardieu et al., 1983) et les diagrammes Entité-Association. Le langage UML (Unified Modeling Language)2, dans sa version 2.0 propose d‘étendre le méta-modèle pour définir un vocabulaire permettant de créer de nouveaux modèles dérivées de modèles déjà existants mais qui ont des propriétés spécifiques adaptées pour des problèmes particuliers ou une utilisation plus spécialisées.

En mars 2003, l‘OMG et l‘INCOSE soumettent pour la première fois une requête pour proposition (RFP) concernant des spécifications « UML pour l‘ingénierie des systèmes » qui est devenue un peu plus tard en mai 2006 ce qui est appelé aujourd‘hui SysML (System Modeling Language). SysML est un langage de modélisation graphique généraliste pour spécifier, analyser, concevoir et vérifier des systèmes complexes qui peuvent inclure du matériel, du logiciel, des informations, des personnes, des procédures (www.sysml.org)... En particulier, le langage fournit des représentations graphiques avec une fondation sémantique pour modéliser des exigences système, des comportements, des structures, et l'intégration avec un large éventail d'outils d'analyse et d'ingénierie.

La première étape dans une démarche de modélisation à l‘aide de SysML consiste à établir le diagramme de cas d‘utilisation relatif au fonctionnement du système d‘information. Il s‘agit précisément de la base de données présentée ici et appelée ProtBase, qui a été développée pour gérer efficacement les données collectées par l‘algorithme décrit dans la partie III.2.1. Elle ajoute

—————————

1NAR Database Collection: http://www.oxfordjournals.org/nar/database/c/ 2UML 2.0: http://www.uml.org/

Mohieddine MISSAOUI Page 132 une partie concernant la gestion des oligonucléotides dans le cadre de la conception de sondes ADN. Le diagramme de cas d‘utilisation fait partie des diagrammes que partage SysML avec le langage UML (voir Figure 28). Il permet de décrire les fonctionnalités du système.

Figure 28: Les diagrammes du langage SysML.

(Source: OMG SysML tutorial - 11 juillet 2006 www.omgsysml.org)

En utilisant « Oracle JDeveloper 10 Diagrams », un diagramme de cas d‘utilisation a été réalisé. Trois types d‘acteurs ont été identifiés : l‘utilisateur de la base de données, l‘administrateur, et les programmes de mise à jour incluant l‘algorithme d‘extraction et d‘enregistrement des données (Figure 29). L‘utilisateur peut visualiser et sauvegarder les données. L‘administrateur peut modifier les données et s‘occupe de la maintenance logicielle. Les programmes externes s‘occupent de la mise à jour des versions et permettent d‘alimenter la base de données.

Les fonctionnalités de la base de données étant établies, la deuxième étape d‘une modélisation à l‘aide de SysML consiste à définir les composants et les exigences du système en utilisant respectivement le diagramme de définition de blocs (Block Definition Diagram « bdd ») et le diagramme des exigences (Requirement Diagram « rd »), nouveautés proposée par SysML par rapport à UML 2. Il s‘agit donc de définir dans un premier temps les entités qui composeront la base de données. L‘information centrale concerne principalement les séquences correspondant aux régions transcrites disponibles dans les banques génomiques. Chaque séquence contient éventuellement des régions UTR 5‘ et 3‘ si elles existent.

Mohieddine MISSAOUI Page 133 Figure 29: Diagramme de cas d’utilisation de la base de données.

La séquence est composée d‘un CDS et des régions UTR associées. Une séquence nucléique, provenant d‘un CDS et présente dans la banque de données, donne lieu à une séquence protéique. La Figure 30 montre un diagramme de définition de blocs basé sur les spécifications précédentes. Un « bdd » permet de définir les composantes du système et leurs interactions. La modélisation a été effectuée avec Topcased 1, un outil open source de modélisation de systèmes et de logiciels.

Mohieddine MISSAOUI Page 134 Figure 30: Diagramme de définition de bloc de la base de données.

Pour modéliser les besoins (les exigences du système), SysML offre un nouveau diagramme appelé diagramme des exigences également implémenté dans la version 2 de Topcased1 et permet de définir des conditions sur les blocs ainsi que des relations entre ces conditions. Contrairement aux autres diagrammes de SysML qui diffèrent de UML 2.0 et qui implémentent des profils déjà définis par le langage, le diagramme des exigences est définit au niveau du méta-modèle1. La Figure 31 représente un diagramme des exigences pour la base de données.

—————————

Mohieddine MISSAOUI Page 135 Figure 31: Diagramme des exigences de la base de données.

L‘intérêt ici est de proposer à partir des modèles SysML présentés précédemment la base de données relationnelle correspondante. ATL (ATLAS Transformation Language) est un langage permettant de transformer le modèle développé à l‘aide de diagramme de classe UML en base de données relationnelle. ATL est disponible en plug-in pour Eclipsea. En revanche Rational Roseb d‘IBM propose une extension d‘UML à l‘aide des stéréotypes pour modéliser les bases de données relationnelles. Ces deux approches n‘ont pas été encore implémentées pour SysML. Un modèle relationnel est proposé ici. Il respecte les besoins (exigences) du modèle ainsi que le diagramme de définition de blocs. La Figure 32 représente le modèle relationnel en question.

—————————

aEclipse: http://www.eclipse.org/m2m/atl/atlTransformations/

Mohieddine MISSAOUI Page 136 Figure 32: Modèle relationnel de la base de données.

Le code suivant correspond au script SQL permettant la création de la base de données. Il comporte la création des différentes tables et la définition des contraintes d‘intégrité.

CREATE TABLE dnas (

id_nuc INTEGER NOT NULL, -- primary key

id_entry varchar2(32) NOT NULL, -- id present in id line of embl entry description varchar2(2048), -- DE line of embl entry

molecule varchar2(128), -- molecule type present in the mol type tag of the source feature in the embl entry

id_seq varchar2(32) NOT NULL, -- sequence identifier : if cds exists then id_seq = access_number_cds_rank else id_seq = accession

acc_number varchar2(32) NOT NULL, -- accession number in AC line of embl entry species varchar2(256), -- organism name (species)

kingdom varchar2(256), -- kingdom in the taxonomy tree present in SP line of the embl entry

sequence CLOB NOT NULL, -- sequence : cde if exist else entire sequence of the embl entry

CONSTRAINT dnas_pkey PRIMARY KEY (id_nuc) );

CREATE TABLE proteins (

id_prot INTEGER NOT NULL PRIMARY KEY , id_nuc INTEGER NOT NULL,

acc_prot varchar2(32) NOT NULL,

product varchar2(2048), -- name of the coding sequence in term of enzymatic activity.

id_cds varchar2(32) NOT NULL, -- id referencing cds + utr region in the nucleic base dnas.

sequence CLOB NOT NULL,

CONSTRAINT foreign_key FOREIGN KEY(id_nuc) REFERENCES dnas(id_nuc) );

Mohieddine MISSAOUI Page 137

CREATE TABLE peptides (

id_pep INTEGER NOT NULL PRIMARY KEY , degeneracy INTEGER NOT NULL,

peptide varchar2(40) NOT NULL );

CREATE TABLE oligos (

id_oligo INTEGER NOT NULL PRIMARY KEY , fusion INTERGER,

gc_pour INTERGER,

oligo_seq varchar2(120),

CONSTRAINT foreign_key FOREIGN KEY(id_pep) REFERENCES peptides(id_pep) );

CREATE TABLE pathways (

id_path INTEGER NOT NULL PRIMARY KEY , id_prot INTEGER NOT NULL,

title varchar2(1024), prod_in varchar2(1024), prod_out varchar2(1024),

CONSTRAINT foreign_key FOREIGN KEY(id_prot) REFERENCES proteins(id_prot) );

2.3. Synthèse

Comme nous l‘avons vu dans les chapitres précédents, la dégénérescence du code génétique est l‘une des problématiques biologiques à l‘origine de la complexité des algorithmes bioinformatiques. Dans le modèle relationnel précédent, les oligopeptides générés à partir de séquences protéiques représentent une signature de ces séquences. Leur traduction inverse en oligonucléotides servira de sondes pour concevoir la biopuce à ADN. Dans la partie suivante, une méthode de traduction inverse complète sera proposée. Une approche IDM pour la conception de cet algorithme sera également détaillée.

Mohieddine MISSAOUI Page 138