M1 Bio-informatique - TP 1 : Manipulation de tableaux, tests statistiques
Jean-Baptiste Lamy /
Le module Python pandas permet de manipuler des tableaux de donn´ees (appel´e tci-dessous) :
Tableau
Charger un fichier CSV t = pandas.read_table("fichier.csv ", sep = ",")
Enregistrer un fichier CSV t.to_csv("fichier.csv ", sep = ",")
Dimensions du tableau t.shape
Transposer le tableau t.T
Transposer = ´echanger les lignes et les colonnes.
Obtenir les noms des colonnes t.axes[1]
Obtenir les noms des lignes t.axes[0]
Colonnes
Extraire une colonne t.nom_de_colonne
t["nom_de_colonne "]
t.icol(num´ero_de_colonne )
Extraire de la colonne x `a la
colonne y
t.iloc[ : , x:y]
=>cr´ee un nouveau tableau
Extraire les colonnes x, y, z... t.iloc[ : , (x,y,z,...)]
Calculer la moyenne de chaque
colonne
t.mean()
Moyenne d’une colonne t.nom_de_colonne .mean()
M´ediane d’une colonne t.nom_de_colonne .median()
´
Ecart-type d’une colonne t.nom_de_colonne .std()
Ajouter une colonne t["nouveau_nom_de_colonne "] = valeurs
Supprimer une colonne del t["nom_de_colonne "]
Appliquer un logarithme sur
une colonne
t["nom_de_colonne "] = numpy.log(valeurs )
Lignes
Extraire une ligne t.irow("nom_de_ligne ")
t.irow(num´ero_de_ligne )
Extraire de la ligne x `a la ligne y t[x:y]
Extraire les lignes avec une
valeur x dans une colonne
t[tableau.nom_de_colonne == x ]
t[tableau.nom_de_colonne > x ]
Calculer la moyenne de chaque
ligne
t.T.mean()
Cases Obtenir la valeur d’une case t.nom_de_colonne ["nom_de_ligne "]
t.nom_de_colonne [num´ero_de_ligne ]
Changer la valeur d’une case t.nom_de_colonne ["nom_de_ligne "] = nouvelle_valeur
t.nom_de_colonne [num´ero_de_ligne ] = nouvelle_valeur
Exercice 1 : Manipulation de tableaux
Afin de tester la toxicit´e du ma¨
ıs OGM MON863, 3 groupes de 10 rats ont ´et´e nourri avec ce ma¨
ıs. Le ma¨
ıs OGM
repr´esentait 11% de la ration alimentaire dans le premier groupe, 22% dans le second, et 33% dans le troisi`eme. Un quatri`eme
groupe t´emoin de 60 rats a ´et´e nourri avec du ma¨
ıs non-OGM. Apr`es 90 jours, on mesure le poids du foie et des reins de
chaque rat.
[donn´ees simul´ees d’apr`es de Vendˆomois JS, Roullier F, Cellier D, S´eralini GE. A Comparison of the Effects of Three GM
Corn Varieties on Mammalian Health. Int J Biol Sci 2009 ; 5 :706-726. http ://www.biolsci.org/v05p0706.htm]
1. Lancer l’interpr´eteur Python et importer les modules Numpy, Pandas, Matplotlib.Pylab et Scipy.Stats :
import numpy, pandas, matplotlib.pylab as pylab, scipy.stats
2. Le fichier ”ogm.csv” (disponible sur le campus virtuel) contient le tableau de donn´ees. Charger ce tableau en Python.
3. Combien y a-t-il de lignes dans le tableau ? de colonnes ?
4. Afficher les 10 premi`eres lignes du tableau.
5. Calculer la moyenne et l’´ecart type du poids du rein sur l’ensemble des rats.
1
6. Extraire dans un nouveau tableau appel´ee “g0” les lignes du tableau correspondant au groupe t´emoin (c’est-`a-dire les
rats nourris avec 0% d’OGM).
7. Calculer la moyenne et l’´ecart type du poids du rein sur le groupe t´emoin.
8. Refaire les deux questions pr´ec´edentes avec le groupe nourri avec 33% d’OGM.
9. Combien y a-t-il de rats dans le groupe t´emoin ? dans le groupe `a 33% ?
10. Calculer dans une nouvelle colonne appel´ee “rapport” le rapport poids du foie / poids du rein pour chaque rat.
Exercice 2 : Graphiques
Le module Python matplotlib.pylab permet de tracer des graphiques :
Histogramme pylab.hist(x)
Courbe pylab.plot(x, y)
Nuage de points pylab.plot(x, y, "ro")
Dans ”ro”, r est la couleur (r : rouge, b : bleu, g : vert, y : jaune,...) et o la forme (o : petit
rond, + : croix).
Boˆıte `a moustaches pylab.boxplot([x, y, z,...])
Camembert pylab.pie(x.value_counts(), labels = x.value_counts().axes[0])
Affichage pylab.show()
Une fois le graphique termin´e, il faut ex´ecuter cette commande pour l’afficher (plusieurs
graphiques peuvent ˆetre superpos´es en les tra¸cant puis en demandant l’affichage `a la fin).
x,yet zsont des listes de valeurs (par exemple les colonnes d’un tableau de donn´ees).
1. Tracer un camembert repr´esentant les quantit´es d’OGM.
2. Tracer une courbe repr´esentant le poids du foie pour chaque rat (poids du foie = f(rats)).
3. Tracer un histogramme du poids du foie des rats.
4. Tracer un nuage de point avec le poids du rein des rats en X et le poids du foie en Y.
5. Extraire les groupes `a 11 et 22% d’OGM.
6. Tracer un nuage de point avec le poids du rein des rats en X et le poids du foie en Y, avec des couleurs diff´erentes
pour chaque groupe (0% : bleu, 11% : vert, 22% : jaune, 33% : rouge ; astuce : on superposera plusieurs graphiques).
7. Tracer des boˆıtes `a moustaches repr´esentant le poids du foie en fonction de la quantit´e d’OGM consomm´es.
8. Tracer deux courbes (sur le mˆeme graphique) repr´esentant le poids du rein chez les rats mˆales et chez les rats femelles
(une courbe par sexe).
Exercice 3 : Tests statistiques
Le module Python scipy.stats permet d’effectuer des tests statistiques pour comparer les moyennes de deux groupes :
Valeurs appari´ees Valeurs ind´ependantes
Gros ´echantillons (30) Test T de Student
scipy.stats.ttest_rel(g1, g2)
Test T de Student
scipy.stats.ttest_ind(g1, g2)
Petits ´echantillons (<30) Test de Wilcoxon
scipy.stats.wilcoxon(g1, g2)
Test U de Mann–Whitney
scipy.stats.mannwhitneyu(g1, g2)
g1 et g2 sont les deux groupes de valeurs (par exemple des listes ou des colonnes extraites d’un tableau de donn´ees).
1. Comparer le poids moyen des reins des rats du groupe sans OGM, avec celui des rats du groupe `a 33%.
2. Comparer le poids moyen du foie des rats du groupe sans OGM, avec celui des rats du groupe `a 33%.
3. Le poids du foie augmente-il avec la consommation de 33% d’OGM ou diminue-t-il ?
4. Le poids moyen des reins est-il significativement diff´erents entre les rats mˆales et femelles ?
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !