Partie Statistiques du cours de BioInformatique
Master BTV, UFR Sciences - Université d'Angers
Enoncés du TD numéro 3 (solutions)
Etudier toutes les variables QT du fichier lea.dar ; peut-on envisager une certaine "causalité" ? Si oui, laquelle ? Et entre quelles variables ? On pourra utiliser une matrice qui contient toutes les QT en colonnes via les instructions R :
# lecture des fonctions gH source("statgh.r") # lecture de toutes les données LEA lea <- lit.dar("lea.dar") # construction d'une matrice avec toutes les QT en colonnes # (elles sont au départ en colonne 1, 5, 6, 7, 8) leaQT <- lea[,c(1,5:8)]Etudier ensuite toutes les variables QT du fichier lea4.dar ; en quoi ce fichier est-il différent de lea.dar ? Qu'est-ce que cela change au niveau des résultats ?
Réaliser une ACP (analyse en composantes principales) de du fichier lea4.dar avec le "package" ade4 dont la liste des fonctions est ici. Combien y a t-il d'axes à examiner ? Combien sont utiles ? Le règne est-il très influent ?
Pour être sur d'avoir les bons résultats, voici un exemple de sortie sur les mêmes données avec le logiciel ADDAD :
A D D A D - 89 - ANALYSE EN COMPOSANTES PRINCIPALES (ANCOMP) D'APRES : YAGOLNITZER ET TABET POIDS DES COLONNES (MULTIPLIES PAR 10 ** -4) ------------------------------------------- NOMJ(J)! LENG FOLD PI MW GRAV ------------------------------------------- PJ(J) ! 16 0 1 1672 0 765 ------------------------------------------- MATRICE DES CORRELATIONS ------------------------ (TOUS LES COEFFICIENTS SONT MULTIPLIES PAR 1000) LENG FOLD PI MW GRAV --------------------------------- LENG 1000 FOLD 172 1000 PI -249 37 1000 MW 997 162 -260 1000 GRAV 177 985 17 170 1000 LES VALEURS PROPRES VAL(1)= 2.37408 ------------------------------------------------------------------------------------------------------------- !NUM ! VAL PROPRE ! POURC.! CUMUL !VARIAT.!*! HISTOGRAMME DES VALEURS PROPRES ------------------------------------------------------------------------------------------------------------- ! 1 ! 2.37408 ! 47.482! 47.482! .000!*!***************!***************!***************!*************** ! 2 ! 1.74457 ! 34.891! 82.373! 12.590!*!***************!***************!************** ! 3 ! .86458 ! 17.292! 99.664! 17.600!*!***************!******* ! 4 ! .01452 ! .290! 99.955! 17.001!*! ! 5 ! .00226 ! .045!100.000! .245!*! J1 ! QLT POID INR! 1#F COR CTR! 2#F COR CTR! 3#F COR CTR! 4#F COR CTR! 5#F COR CTR --------------------------------------------------------------------------------------------------- 1!LENG!1000 1 200! -817 668 281! 529 280 160! -226 51 59! -10 0 7! -33 1 492! 2!FOLD!1000 1 200! -692 479 202! -712 507 291! 80 6 7! -85 7 493! 4 0 7! 3!PI !1000 1 200! 275 76 32! -417 174 99! -866 751 868! 2 0 0! 0 0 0! 4!MW !1000 1 200! -814 662 279! 538 290 166! -217 47 54! 10 0 7! 33 1 494! 5!GRAV!1000 1 200! -699 489 206! -703 494 283! 97 9 11! 85 7 494! -4 0 6! --------------------------------------------------------------------------------------------------- ! ! 1000! 1000! 1000! 1000! 1000! 1000! ---------------------------------------------------------------------------------------------------Finalement, quelles variables QT peut-on conserver ? Pour ces variables, y a t-il des différences significatives au niveau des moyennes suivant le règne ?
Peut-on réaliser tous les calculs présentés jusqu'ici en Mysql ? et en Php ? Peut-on interfacer Php et R ? Quel en serait l'intérêt ?
On s'intéresse maintenant à une autre base de données nommée DBDB qui recense des protéines pour l'étude des ponts disulfure dont on fournit ci-dessous un extrait de la définition des tables :
TABLE dbdbprot +---------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+-------------+------+-----+---------+----------------+ | pr_id | int(11) | NO | PRI | NULL | auto_increment | | pr_name | varchar(80) | NO | MUL | | | | pr_pdb_id | varchar(10) | NO | | | | | pr_nbr_chains | smallint(6) | NO | | 0 | | | pr_nbr_bonds | smallint(6) | NO | | 0 | | | pr_nbr_intra | smallint(6) | NO | | 0 | | | pr_nbr_inter | smallint(6) | NO | | 0 | | ... +---------------+-------------+------+-----+---------+----------------+ TABLE dbdbchain +-----------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------+------+-----+---------+----------------+ | ch_id | int(11) | NO | PRI | NULL | auto_increment | | ch_pr_id | int(11) | NO | MUL | 0 | | | ch_name | char(2) | NO | | | | | ch_fasta | text | NO | | | | ... +-----------+---------+------+-----+---------+----------------+A l'aide de la requête MySql suivante, on peut voir les dix premiers enregistrements de la table dbdbprot dans la base DBDB :
SELECT pr_id , pr_name , pr_pdb_id , pr_nbr_chains , pr_nbr_bonds , pr_nbr_intra , pr_nbr_inter FROM dbdbprot LIMIT 10 ;+-------+-------------------------------+-----------+---------------+--------------+--------------+--------------+ | pr_id | pr_name | pr_pdb_id | pr_nbr_chains | pr_nbr_bonds | pr_nbr_intra | pr_nbr_inter | +-------+-------------------------------+-----------+---------------+--------------+--------------+--------------+ | 1 | malate dehydrogenase | 1UR5 | 2 | 1 | 0 | 1 | | 2 | cathepsin b | 1HUC | 2 | 6 | 5 | 1 | | 3 | parvalbumin | 1A75 | 1 | 1 | 1 | 0 | | 4 | crambin | 1CRN | 1 | 3 | 3 | 0 | | 5 | phytase | 1DKL | 1 | 4 | 4 | 0 | | 6 | phytase | 1IHP | 1 | 5 | 5 | 0 | | 7 | class 1 alpha-1,2-mannosidase | 1DL2 | 1 | 2 | 2 | 0 | | 8 | alpha mannosidase 2 | 1PS3 | 1 | 5 | 5 | 0 | | 9 | insulin | 1APH | 2 | 3 | 1 | 2 | | 10 | insulin | 1VKT | 2 | 2 | 0 | 2 | +-------+-------------------------------+-----------+---------------+--------------+--------------+--------------+Et avec la requête MySql suivante, on peut voir les dix premiers enregistrements de la table dbdbchain dans la base DBDB :
SELECT ch_id , ch_pr_id , ch_name , concat(substr(ch_fasta,1,15),"...") FROM dbdbchain LIMIT 10 ;+-------+----------+---------+-------------------------------------+ | ch_id | ch_pr_id | ch_name | concat(substr(ch_fasta,1,15),"...") | +-------+----------+---------+-------------------------------------+ | 1 | 1 | A | MRKKISIIGAGFVGS... | | 2 | 1 | C | MRKKISIIGAGFVGS... | | 465 | 2 | A | LPASFDAREQWPQCP... | | 466 | 2 | B | LPASFDAREQWPQCP... | | 467 | 405 | A | MPQDVDFHIPLPGRQ... | | 7 | 3 | A | AFAGILADADCAAAV... | | 8 | 4 | A | TTCCPSIVARSNFNV... | | 9 | 5 | A | QSEPELKLESVVIVS... | | 10 | 6 | A | MGVSAVLLPLYLLSG... | | 11 | 7 | A | MKNSVGISIATIVAI... | +-------+----------+---------+-------------------------------------+Détailler ce que calcule la requête MySql suivante :
USE DBDB ; SELECT CONCAT(pr_pdb_id , ch_name) AS nomProt , LENGTH(ch_fasta) AS longueur , pr_nbr_intra+pr_nbr_inter AS nbp , pr_nbr_intra AS nbintra , pr_nbr_inter AS nbinter , IF (pr_nbr_intra+pr_nbr_inter>0,"AVEC","SANS") AS pont , CASE WHEN pr_nbr_intra=0 AND pr_nbr_inter=0 THEN "ACUCUN" WHEN pr_nbr_intra=0 AND pr_nbr_inter>0 THEN "INTER_SEUL" WHEN pr_nbr_intra>0 AND pr_nbr_inter=0 THEN "INTRA_SEUL" WHEN pr_nbr_intra>0 AND pr_nbr_inter>0 THEN "INTER_ET_INTRA" END AS naturePont FROM dbdbprot a , dbdbchain b WHERE a.pr_id = b.ch_pr_id ;Etudier ensuite les variables fournies par l'exécution de cette requête dont les données sont dans le fichier dbdb.dar. Essayer de montrer enfin si la présence de pont influe sur la longueur des chaines, des protéines.
Comparer les longueurs des protéines pour les bases de données DBDB et LEAPDB. Au passage, calculer les intervalles de confiance à 95 % et tracer des boites à moustaches avec encoche. Que donnerait un beanplot de ces variables ?
Pour mémoire, voici comment obtenir les deux variables :
# chargement des fonctions gh dont lit.dar source("statgh.r") # il faut peut-être # rajouter D: ou C:... # soit source("D:/statgh.r") # lecture de la longueur pour LEAPDB lea4 <- lit.dar("lea4.dar") attach(lea4) lngLEAPDB <- length4 detach(lea4) # lecture de la longueur pour LEAPDB dbdb <- lit.dar("dbdb.dar") attach(dbdb) lngDBDB <- longueur detach(dbdb)Quel livre en français, court et pas cher peut-on lire sur R et les analyses factorielles (dont les ACP) avec R ?
Retour à la page principale de (gH)