Académique Documents
Professionnel Documents
Culture Documents
Courspythonavance 120408071651 Phpapp01 PDF
Courspythonavance 120408071651 Phpapp01 PDF
Pierre Poulain
pierre.poulain@univ-paris-diderot.fr
M2 BI – 09/2011
À l’exception des illustrations et images dont les crédits sont indiqués
à la fin du document et dont les droits appartiennent à leurs auteurs
respectifs, le reste de ce cours est sous licence Creative Commons
Paternité (CC-BY).
http://creativecommons.org/licenses/by/2.0/fr/
4 Numpy 9 Subprocess
5 Rpy
4 Numpy 9 Subprocess
5 Rpy
interprété à bytecode
multi-plateforme
orienté objet (classes) « tout est objet »
Objectif
Tour d’horizon de quelques fonctionnalités avancées
(modules, classes, astuces)
PP Université Paris Diderot - Paris 7 6
Menu
4 Numpy 9 Subprocess
5 Rpy
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# methode 1
for i in range( len(toto) ):
print toto[i]
# methode 2
for ele in toto:
print ele
# methode 3
for i in xrange( len(toto) ):
print toto[i]
Quelle méthode est la plus rapide ?
1. for x in y
2. for z in xrange(len(y))
3. for z in range(len(y)) (très lente)
PP Université Paris Diderot - Paris 7 9
Listes de compréhension
List comprehensions
Exemples :
>>> toto = [1, 3, 6, 9]
>>> [i**2 for i in toto]
[1, 9, 36, 81]
4 Numpy 9 Subprocess
5 Rpy
But
Éviter le plantage d’un programme Python
anticiper les erreurs
et les intercepter
Mais si...
>>> nb = int(raw_input("Entrez un nombre: "))
Entrez un nombre: ATCG
>>> try:
... nb = int(raw_input("Entrez un nombre: "))
... except:
... print "Vous n'avez pas entré un nombre !"
...
>>> try:
... nb = int(raw_input("Entrez un nombre: "))
... except ValueError:
... print "Vous n'avez pas entre un nombre !"
...
Entrez un nombre: ATCG
Vous n'avez pas entre un nombre !
4 Numpy 9 Subprocess
5 Rpy
http://numpy.scipy.org
Opération vectorielle
>>> data = numpy.arange(5)
>>> data + 0.1
array([ 0.1, 1.1, 2.1, 3.1, 4.1])
>>> w = numpy.arange(4)
>>> numpy.resize(w, (3,2))
array([[0, 1],
[2, 3],
[0, 1]])
Multiplication de matrices
>>> numpy.dot(a, a)
array([[ 7, 10],
[15, 22]])
Inversion de matrice
>>> from numpy import linalg
# importation du module d'algebre lineaire
>>> inv_a = linalg.inv(a)
>>> inv_a
array([[-2. , 1. ],
[ 1.5, -0.5]])
4 Numpy 9 Subprocess
5 Rpy
seq = "ACGATCATAGCGAGCTACGTAGAA"
seq2 = list( seq )
. dev_off()
PP Université Paris Diderot - Paris 7 30
Menu
4 Numpy 9 Subprocess
5 Rpy
# clefs disponibles
>>> print(mon_res.keys())
[u'Count', u'RetMax', u'IdList', u'TranslationStack',
u'TranslationSet', u'RetStart', u'QueryTranslation']
# lecture du resultat
# sous forme d'une liste de dictionnaire
>>> res_parse = Entrez.read(requete)
# clefs disponibles
>>> print(res_parse[0].keys())
['DOI', 'Title', 'Source', 'PmcRefCount', 'Issue', ...]
# affiche du titre
>>> res_parse[0]["Title"]
'Characterization of Xanthomonas campestris pv. campestris
heat shock protein A (HspA), which possesses an intrinsic
ability to reactivate inactivated proteins.'
Biopython
puissant
polyvalent
la syntaxe change régulièrement
le format des bases des données aussi...
4 Numpy 9 Subprocess
5 Rpy
def calcule_surface(self):
"""calcule la surface"""
return self.longueur * self.largeur
# calcul de la surface
>>> print rect1.calcule_surface()
0.0
__del__(self) destructeur
etc.
4 Numpy 9 Subprocess
5 Rpy
racine = Tk()
racine.mainloop()
4 Numpy 9 Subprocess
5 Rpy
import subprocess
command = "ls"
proc = subprocess.Popen(command, shell=True,
stdout=subprocess.PIPE)
===Sortie standard :
cours_CGI_Python.aux
cours_CGI_Python.log
cours_CGI_Python.nav
cours_CGI_Python.out
cours_CGI_Python.pdf
cours_CGI_Python.snm
cours_CGI_Python.tex
===Code de sortie :
0
import subprocess
command = "ls *.blabla"
proc = subprocess.Popen(command, shell = True,
stdout = subprocess.PIPE, stderr = subprocess.PIPE)
# contenu de la sortie standard
# et de la sortie d'erreur standard
(out, err) = proc.communicate()
print "===Sortie standard :"
print out
print "===Sortie d'erreur standard :"
print err
# affiche le code de sortie (0 = OK)
print "===Code de sortie :"
print proc.wait()
===Sortie standard :
===Code de sortie :
2
===Entree standard :
>sp|Q41560|HS16B_WHEAT 16.9 kDa class I heat shock protein
MSIVRRTNVFDPFADLWADPFDTFRSIVPAISGGGSETAAFANARMDWKETPEAHVFKAD
LPGVKKEEVKVEVEDGNVLVVSGERTKEKEDKNDKWHRVERSSGKFVRRFRLLEDAKVEE
VKAGLENGVLTVTVPKAEVKKPEVKAIQISG
===Sortie standard :
4
===Code de sortie :
0
bonnes-pratiques-et-astuces-python/