November 7, 2019
1 Tp liberation vésiculaire
In [1]: # chargement des librairies nécessaires
import numpy as np
import numpy.random as nprnd
import matplotlib.pyplot as plt
import statistics as st
1.1 on crée une variable de bernoulli qui effectue un tirage equiprobable entre 0 et 1
In [2]: nprnd.choice ((0,1))
Out[2]: 1
In [4]: ## on effectue ce tirage 20 fois avec une probabilité de 0.8 pour "1" et 0.2 pour "0"
1
moy.append(np.mean(nprnd.choice ((0,1), size=1000, replace=True, p=(1-p, p))))
# append rempli le vecteur au fur et à mesure de l'avancement de la boucle
p1.append(p)
#print(moy)
#print(var1)
#print(p1)
plt.plot(p1, moy)
plt.show()
plt.plot(p1,var1)
plt.show()
2
1.4 lisez le prgm suivant et interprétez le.
In [7]: def ppse_single(n, p, mq, sdq): # on crée une fonction
"""
Potentiel post-synaptique simple.
#création d'un vecteur contenant n valeurs tirées d'une loi binomiale pour mimer
#la libération.
3
#on tire aléatoirement 0 ou 1 avec des probabilités respectives de 1-p et p.
return np.sum(q * lib)
# La fonction retourne un vecteur contenant n fois le produit de q*lib.
# C'est le courant synaptique total
print(ppse)
# deuxième essai
print(ppse)
# troisième essai
print(ppse)
33.42061817132991
34.17657383032615
101.13815570665837
for i in range(5000) :
4
reponse1.append(ppse_single(n1,p1,mq1,sdq1))
plt.hist(reponse1)
plt.show()
plt.hist(reponse1, bins=70)
plt.show()
"""
Observez la différence entre les histogrammes. Le premier est construit avec des
classes (bin) trop larges qui masquent la nature binomiale.
Si on prend un nombre de classes égal à la racine du nombre de valeur c'est mieux.
Chaque pic correspond à une classe pour laquelle on a 0, 1, 2 .. 10 vésicules libérées.
En tout état de cause, lhistogramme étant un outil visuel, il est possible
de faire varier le nombre de classes. Ceci permet de voir lhistogramme avec un nombre
différent de classes et ainsi de trouver le meilleur compromis.
"""
5
In [10]: # comparaison avec la loi binomiale
6
In [11]: # simulation répétée : modifions certains paramêtres.
for i in range(5000) :
reponse1.append(ppse_single(n1,p1,mq1,sdq1))
plt.hist(reponse1, bins=70)
plt.show()
# ici on a pas mal de valeurs à zéro qui traduisent le nombre elevé
#d'echecs de libération (>1600)
plt.hist(reponse1, bins=70)
plt.ylim(0,500) # on change l'échelle de y pour mieux voir
plt.show()
7
In [12]: # simulation répétée : modifions certains paramêtres: sdq1.
8
reponse1=[] # second parametres
n1=10
p1=0.1
mq1=11
sdq1=5
for i in range(5000) :
reponse1.append(ppse_single(n1,p1,mq1,sdq1))
plt.hist(reponse1, bins=70)
plt.show()
plt.hist(reponse1, bins=70)
plt.ylim(0,500) # on change l'échelle de y pour mieux voir
plt.show()
# le courant miniature etant plus variable, cela masque les differents pics
# qui se recouvrent.
9
In [13]: # simulation répétée : modifions certains paramêtres.
for i in range(5000) :
reponse1.append(ppse_single(n1,p1,mq1,sdq1))
plt.hist(reponse1, bins=70)
plt.xlim(0,150)
plt.show()
# ici on a aucune valeurs à zéro qui traduisent
#que le nombre elevé d'echecs de libération est quasi nul.
# on observe qu'un pic car p est tres grand.
10
In [14]: # simulation répétée : modifions certains paramêtres; sdq1= 5
for i in range(5000) :
reponse1.append(ppse_single(n1,p1,mq1,sdq1))
plt.hist(reponse1, bins=70)
plt.xlim(0,150)
plt.show()
# ici on a aucune valeurs à zéro qui traduisent que le nombre élevé
#d'echecs de libération est quasi nul.
# on observe qu'un pic car p est tres grand.
# le graphe est plus large car sdq est plus grand
11
12