Correction Première Partie : Modélisation sous forme de tables de la
Transcription
Correction Première Partie : Modélisation sous forme de tables de la
TP Bioinformatique – Correction Première Partie : Modélisation sous forme de tables de la structure des entrées de SWISS-2DPAGE Modélisation conceptuelle avec le modèle Entité-Association Modèle de données sous forme de tables relationnelles Description des tables Deuxième Partie : Création des tables et stockage des données 1. Lister les bases de données existantes mysql>show databases; 2. Lister les tables de la base de données 'mysql' mysql>use mysql mysql>show tables; 3. Lister les colonnes de la table 'user' mysql>desc user; 4. Afficher les lignes de la table 'user' mysql>select * from user; 5. Mêmes questions pour la table 'db' mysql>desc db; mysql>select * from db; 6. Lister les tables de votre base de données 'nombase' mysql>use inra2 mysql>show tables; 7. Créer la table 'espece', ayant 3 colonnes: code (5 caractères), organisme (50 caractères), classification (255 caractères) mysql>create table espece(code varchar(5) primary key not null, organisme varchar(50), classification varchar(255)); 8. Vérifier la structure de cette table mysql>desc espece; 9. Insérer la ligne suivante dans la table 'espece': HUMAN Homo sapiens (Human) Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Mammalia; Eutheria; Primates; Catarrhini; Hominidae; Homo mysql> insert into espece values("HUMAN", "Homo sapiens (Human)","Eukaryota, Metazoa; Chordata; Craniata; Vertebrata; Mammalia; Eutheria; Primates; Catarrhini; Hominidae; Homo"); 10. Vérifier que le contenu de la table 'espece' est bien conforme à ce que vous attendez mysql> select * from espece; 12. Insérer les données du fichier 'espece.txt' dans la table 'espece' mysql> LOAD DATA LOCAL INFILE "../inra/espece.txt" INTO TABLE espece; 13. Vérifier le contenu de la table 'espece' mysql> select * from espece; Troisième Partie : Mises à jour et requêtes dans la Base de données Requêtes sur une table 1. Lister les espèces par ordre alphabétique mysql> select distinct code_espece from entries order by code_espece asc; 2. Lister les espèces eucaryotes mysql> select code from espece where classification like "%Eukaryota%"; 3. Lister les espèces de mammifères mysql> select code from espece where classification like "%Mammalia%"; 4. Compter le nombre de protéines mysql> select count(prot_name) from entries; 5. Compter le nombre de protéines humaines mysql> select count(prot_name) from entries where code_espece like "%HUMAN%"; 6. Afficher l'accession number (AC) et la description des protéines de l'espèce Dictyostelium discoideum, dans l'ordre alphabétique de la description mysql> select ac, description from entries where code_espece like "%DICDI%" order by description asc; 7. Combien de protéines ont plusieurs ACs? Afficher ces protéines mysql> select count(AC), prot_name from entries group by AC having count(*) >1; 8. Rechercher les références disponibles pour l'auteur 'HOCHSTRASSER'. Afficher pour ces références le numéro Medline, les 50 premiers caractères des auteurs, et la localisation; classer par ordre alphabétique de la localisation mysql> select medline, left(auteurs, 50), localisation from ref where auteurs like '%HOCHSTRASSER%' order by localisation asc; 9. Combien existe-t-il de références dont le premier auteur est 'SANCHEZ J.-C.' ? mysql> select count(*) from ref where auteurs like 'SANCHEZ%'; 10. Afficher les 50 premiers caractères des auteurs, le titre et la localisation des références où les auteurs 'SANCHEZ' et 'TONELLA' apparaissent conjointement mysql> select left(auteurs,50), titre, localisation from ref where auteurs like "%SANCHEZ%" and auteurs like "%TONELLA%"; 11. Lister les releases par ordre chronologique mysql> select * from release order by rel_date asc; 12. Afficher le nombre de protéines identifiées pour chaque master mysql> select count(*) from master group by mt_name; 13. Afficher les différentes bases de données cross-référencées par SWISS-2DPAGE mysql> select distinct dbname from crossref; 14. Afficher pour chacune le nombre de cross-références disponibles mysql> select dbname, count(id1) from crossref group by dbname; 15. Afficher le nombre de spots identifiés pour les masters de souris, les classer dans l'ordre croissant mysql> select count(spot) from spots where mt_name like "%MOUSE%" group by mt_name as c order by mt_name asc ; 16. Afficher le nombre de releases par année mysql> select year(rel_date), count(*) from release group by year(rel_date); 17. Compter le nombre de protéines par espèce mysql> select code_espece, count(prot_name) from entries group by code_espece; Requêtes dans plusieurs tables 18. Afficher le rang et la localisation des références de l'entrée P00938 mysql> select rank,localisation from coderef,ref where ac="P00938" and ref.ref_num=coderef.ref_num ; 19. Donner la liste des espèces des protéines identifiées par 'MICROSEQUENCING' mysql> select distinct code_espece from entries, mapping where mapping like '%MICROSEQUENCING%' and mapping.AC=entries.AC; 20. Quelles sont les espèces étudiées par l'auteur 'YAN' ? mysql> select distinct code_espece from entries, ref, coderef where auteurs like "%YAN%" and entries.AC=coderef.AC and coderef.ref_num=ref.ref_num; 21. Compter le nombre de protéines créées à la release 10. Donner la répartition par espèce mysql> select code_espece, count(prot_name) from entries, release where rel_num=10 and code=creation group by code_espece; 22. Donner la répartition par espèce (afficher l'organisme) du nombre de protéines créées depuis 1999 mysql> select code_espece, count(prot_name), organisme from entries, release, espece where (year(rel_date)>1998 and release.code = entries.creation) and espece.code = entries.code_espece group by entries.code_espece; 25. Quelles sont les protéines identifiées dans les masters ECOLI5-6 et ECOLI4.5-5.5 ? mysql> select prot_name from entries, master where (mt_name like "%ECOLI5-6%" or mt_name like "%ECOLI4.5-5.5%") and master.ac=entries.ac; 26. Quelles sont les protéines ayant une cross-référence dans les bases de données PHCI2DPAGE et SIENA-2DPAGE ? mysql> select prot_name from entries, crossref where dbname like "%2DPAGE%" and crossref.ac=entries.ac; 27. Même requête que précédemment, mais afficher le AC des protéines dans l'ordre alphabétique des AC mysql> select prot_name, entries.ac from entries, crossref where dbname like "%2DPAGE%" and crossref.ac=entries.ac order by entries.ac asc;