Commit ed475cac authored by GASSIER Ghislain's avatar GASSIER Ghislain
Browse files

Initial commit

parents
Pipeline #58 failed with stages
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"<div class=\"alert alert-block alert-info\">\n",
"<center>\n",
"<font size=\"+5\">Formation<br/> Python<br/> CEREGE</font> \n",
"</center>\n",
"</div>\n",
"<img src = \"./logoCEREGE.png\" title = \"google logo\" alt = \"Google logo\"style=\"float:right;\"height=\"128\" width=\"128\">\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1.1 C'est quoi Python ?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Un peu d'histoire\n",
"Le langage de programmation Python a été créé en 1989 par Guido van Rossum, aux Pays-Bas. Le nom Python vient d'un hommage à la série télévisée Monty Python's Flying Circus dont G. van Rossum est fan. La première version publique de ce langage a été publiée en 1991.\n",
"\n",
"La dernière version de Python est la version 3. Plus précisément, la version 3.7 a été publiée en juin 2018. La version 2 de Python est désormais obsolète et cessera d'être maintenue après le 1er janvier 2020. Dans la mesure du possible évitez de l'utiliser.\n",
"\n",
"La Python Software Foundation est l'association qui organise le développement de Python et anime la communauté de développeurs et d'utilisateurs.\n",
"\n",
"### Pourquoi utilisé python\n",
"Ce langage de programmation présente de nombreuses caractéristiques intéressantes :\n",
"\n",
"- Il est ***multiplateforme***. C'est-à-dire qu'il fonctionne sur de nombreux systèmes d'exploitation : Windows, Mac OS X, Linux, Android, iOS, depuis les mini-ordinateurs Raspberry Pi jusqu'aux supercalculateurs.\n",
"- Il est ***gratuit***. Vous pouvez l'installer sur autant d'ordinateurs que vous voulez (même sur votre téléphone !).\n",
"- C'est un ***langage de haut niveau***. Il demande relativement peu de connaissance sur le fonctionnement d'un ordinateur pour être utilisé.\n",
"- C'est un ***langage interprété***. Un script Python n'a pas besoin d'être compilé pour être exécuté, contrairement à des langages comme le C ou le C++.\n",
"- Il est ***orienté objet***. C'est-à-dire qu'il est possible de concevoir en Python des entités qui miment celles du monde réel (une cellule, une protéine, un atome, etc.) avec un certain nombre de règles de fonctionnement et d'interactions.\n",
"- Il est ***relativement simple*** à prendre en main.\n",
"- Enfin, il est très utilisé en ***analyse de données***.\n",
"Toutes ces caractéristiques font que Python est désormais enseigné dans de nombreuses formations, depuis l'enseignement secondaire jusqu'à l'enseignement supérieur."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1.2 Installer, configurer et configurer Python"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- ***L'interpréteur*** <br/>\n",
"Nous vous conseillons d'installer Miniconda, logiciel gratuit, disponible pour Windows, Mac OS X et Linux,\n",
"et qui installera pour vous Python 3. Avec le gestionnaire de paquets conda, fourni avec Miniconda, vous pourrez installer des modules supplémentaires\n",
"qui sont très utiles en bioinformatique (NumPy, scipy, matplotlib, pandas, Biopython).\n",
"\n",
"- ***Éditeur de texte*** <br/>\n",
"L'utilisation d'un langage informatique comme Python va nécessiter d'écrire des lignes de codes \n",
"à l'aide d'un éditeur de texte notepad++ sous Windows, BBEdit ou CotEditor sous Mac OS X et gedit sous Linux. \n",
"Il existe aussi d'autres éditeurs comme Atom, Visual Studio Code, Sublime Text, emacs, vim, geany... utilisez-les !\n",
"\n",
"À toute fin utile, on rappelle que les logiciels Microsoft Word, WordPad et LibreOffice Writer ne sont pas des éditeurs de texte, ce sont des traitements de texte qui ne peuvent pas et ne doivent pas être utilisés pour écrire du code informatique.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"***\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***Remarque Python 2 ou Python 3 ?***"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***Ce cours est basé sur la version 3 de Python***, qui est désormais le standard.\n",
"\n",
"Si, néanmoins, vous deviez un jour travailler sur un ancien programme écrit en Python 2,\n",
"sachez qu'il existe quelques différences importantes entre Python 2 et Python 3.\n",
"Le chapitre 21 Remarques complémentaires vous apportera plus de précisions."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1.4 Python en patique"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La maniére la plus efficasse pour dévellopper du code python et de passer par l'utilisation d'un ***shell ainsi que d'un editeur de texte*** dédié au python (Geany) ou de cce que l'on appelle un IDE : ***un environement de devellopement intégré.***\n",
"\n",
"\n",
"Cependant la 'complexité apparente' des outils, nécaissére à python peuvent s'avérés être un frein et ralentir voir décourager de l'apprentissage de python.\n",
"\n",
"Nous allons donc utilsé un nouveau vecteur de formation qui permet l'utilisation d'un simple navigateur afin d'éxcuter du code python, encapsuler dans du texte permettant d donner des explication as a as.\n",
"Neamoins, cette approche jupytr de python s'avére treés vite limité lorsque l'on souhaite dévellopper des traiement un peu complexe.\n",
"Je vous insite donc dés que vous vous sentirez allaise de passer à des méthodes coventionelle."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\">\n",
"<center>\n",
"Je vous insite donc dés que vous vous sentirez à l'aise de passer à des méthodes coventionelles.</center>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'alert' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-10-0d2ec883e901>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0malert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Hello wpRock\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'alert' is not defined"
]
}
],
"source": [
"alert(\"Hello wpRock\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"text-align: center;\"><span style=\"color: #0000ff;\"><strong>Commandes de bases sur le modelserver</strong></span></p>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
%% Cell type:markdown id: tags:
<div class="alert alert-block alert-info">
<center>
<font size="+5">Formation<br/> Python<br/> CEREGE</font>
</center>
</div>
<img src = "./logoCEREGE.png" title = "google logo" alt = "Google logo"style="float:right;"height="128" width="128">
%% Cell type:markdown id: tags:
## 1.1 C'est quoi Python ?
%% Cell type:markdown id: tags:
### Un peu d'histoire
Le langage de programmation Python a été créé en 1989 par Guido van Rossum, aux Pays-Bas. Le nom Python vient d'un hommage à la série télévisée Monty Python's Flying Circus dont G. van Rossum est fan. La première version publique de ce langage a été publiée en 1991.
La dernière version de Python est la version 3. Plus précisément, la version 3.7 a été publiée en juin 2018. La version 2 de Python est désormais obsolète et cessera d'être maintenue après le 1er janvier 2020. Dans la mesure du possible évitez de l'utiliser.
La Python Software Foundation est l'association qui organise le développement de Python et anime la communauté de développeurs et d'utilisateurs.
### Pourquoi utilisé python
Ce langage de programmation présente de nombreuses caractéristiques intéressantes :
- Il est ***multiplateforme***. C'est-à-dire qu'il fonctionne sur de nombreux systèmes d'exploitation : Windows, Mac OS X, Linux, Android, iOS, depuis les mini-ordinateurs Raspberry Pi jusqu'aux supercalculateurs.
- Il est ***gratuit***. Vous pouvez l'installer sur autant d'ordinateurs que vous voulez (même sur votre téléphone !).
- C'est un ***langage de haut niveau***. Il demande relativement peu de connaissance sur le fonctionnement d'un ordinateur pour être utilisé.
- C'est un ***langage interprété***. Un script Python n'a pas besoin d'être compilé pour être exécuté, contrairement à des langages comme le C ou le C++.
- Il est ***orienté objet***. C'est-à-dire qu'il est possible de concevoir en Python des entités qui miment celles du monde réel (une cellule, une protéine, un atome, etc.) avec un certain nombre de règles de fonctionnement et d'interactions.
- Il est ***relativement simple*** à prendre en main.
- Enfin, il est très utilisé en ***analyse de données***.
Toutes ces caractéristiques font que Python est désormais enseigné dans de nombreuses formations, depuis l'enseignement secondaire jusqu'à l'enseignement supérieur.
%% Cell type:markdown id: tags:
## 1.2 Installer, configurer et configurer Python
%% Cell type:markdown id: tags:
- ***L'interpréteur*** <br/>
Nous vous conseillons d'installer Miniconda, logiciel gratuit, disponible pour Windows, Mac OS X et Linux,
et qui installera pour vous Python 3. Avec le gestionnaire de paquets conda, fourni avec Miniconda, vous pourrez installer des modules supplémentaires
qui sont très utiles en bioinformatique (NumPy, scipy, matplotlib, pandas, Biopython).
- ***Éditeur de texte*** <br/>
L'utilisation d'un langage informatique comme Python va nécessiter d'écrire des lignes de codes
à l'aide d'un éditeur de texte notepad++ sous Windows, BBEdit ou CotEditor sous Mac OS X et gedit sous Linux.
Il existe aussi d'autres éditeurs comme Atom, Visual Studio Code, Sublime Text, emacs, vim, geany... utilisez-les !
À toute fin utile, on rappelle que les logiciels Microsoft Word, WordPad et LibreOffice Writer ne sont pas des éditeurs de texte, ce sont des traitements de texte qui ne peuvent pas et ne doivent pas être utilisés pour écrire du code informatique.
%% Cell type:markdown id: tags:
***
%% Cell type:markdown id: tags:
***Remarque Python 2 ou Python 3 ?***
%% Cell type:markdown id: tags:
***Ce cours est basé sur la version 3 de Python***, qui est désormais le standard.
Si, néanmoins, vous deviez un jour travailler sur un ancien programme écrit en Python 2,
sachez qu'il existe quelques différences importantes entre Python 2 et Python 3.
Le chapitre 21 Remarques complémentaires vous apportera plus de précisions.
%% Cell type:markdown id: tags:
## 1.4 Python en patique
%% Cell type:markdown id: tags:
La maniére la plus efficasse pour dévellopper du code python et de passer par l'utilisation d'un ***shell ainsi que d'un editeur de texte*** dédié au python (Geany) ou de cce que l'on appelle un IDE : ***un environement de devellopement intégré.***
Cependant la 'complexité apparente' des outils, nécaissére à python peuvent s'avérés être un frein et ralentir voir décourager de l'apprentissage de python.
Nous allons donc utilsé un nouveau vecteur de formation qui permet l'utilisation d'un simple navigateur afin d'éxcuter du code python, encapsuler dans du texte permettant d donner des explication as a as.
Neamoins, cette approche jupytr de python s'avére treés vite limité lorsque l'on souhaite dévellopper des traiement un peu complexe.
Je vous insite donc dés que vous vous sentirez allaise de passer à des méthodes coventionelle.
%% Cell type:markdown id: tags:
<div class="alert alert-block alert-info">
<center>
Je vous insite donc dés que vous vous sentirez à l'aise de passer à des méthodes coventionelles.</center>
</div>
%% Cell type:code id: tags:
``` python
alert("Hello wpRock")
```
%%%% Output: error
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-10-0d2ec883e901> in <module>
----> 1 alert("Hello wpRock")
NameError: name 'alert' is not defined
%% Cell type:markdown id: tags:
<p style="text-align: center;"><span style="color: #0000ff;"><strong>Commandes de bases sur le modelserver</strong></span></p>
%% Cell type:code id: tags:
``` python
```
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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f3/u9f7HP/7BaaedtsN7/Pzzz3Paaafh9/vZd999OfzwwwueTygU4thjjwXgkEMOyb32L7zwAieffDIAp59+esF9O6L7NLSZ4ks0EPc5N8n1rwrnHpNo7MJK7aLP/bRLnrblUN8igqracN+7ONz3/fffz6ZNm1i+fDnBYJAhQ4bk6nLyySezYMECPvroo9yXrqryve99j69+9avNjnPbbbft9DVIp9OceuqpXHPNNbkOf1XltttuY/bs2c3KLl68uFPer+zn5JxzzuGJJ55g7Nix3HXXXSxevHiHMh0RDAZz+/v9/txrXyyWQXhJop6olOP3CRUhPxqqyK03bWs51PdnPvMZhg8fbsN952nPcN/bt29nr732IhgMsmjRIv7zn//ktp1yyik89NBDLFiwIPdrePbs2cybN4/6euczumHDBjZu3Mjhhx/OI488wubNzlAxW7Zs2eG5rrzySsaMGZPLsrLH+81vfkMymQSc17OhoWGHfadPn84TTzxBY2MjDQ0NPP7440yfPn2HcplMJvd6Zj8XAHV1deyzzz4kk8lm7+W0adN46KGHgObv8YwZM5g/fz7pdJoPP/ww18/UXlOnTuXRRx8FyB2/M1gG4SWJBhrpT3UkgIjgC1dCFAsQ7ZAd6vu8885j5MiRXHjhhYRCIRYsWMA3vvENtm/fTiqV4rLLLmPUqLYnNbr77rv52te+RmNjIwcccAB/+MMfAGe47/POOw8R4aijjsqVv+iii7jwwgupqakhEAg0G+777LPPZuTIkYwYMaJdw33vvffeRR3u+7LLLmPMmDFkMhmGDh3Kk08+2azMGWecwXHHHUdNTQ0TJ05kxIgRuW2jRo2irq6OgQMHss8++wBw1FFH8eabb3LooYcCTiftfffdx6hRo7jqqquYOXMmfr+f8ePHc9dddzV7rptvvplRo0blpmK94YYbOP/881m7di0TJkxAVRkwYABPPPHEDucyYcIEzjnnHCZPngw4l5qOHz9+h3IVFRW89NJL/OhHP2KvvfZi/vz5APzwhz9kypQpDBgwgClTplBXVwfArbfeyumnn86NN97InDlzcsc54YQTePbZZxk5ciT77bdf7nzb65ZbbuHMM8/kxz/+MUcffXTBz0GHtNY50dP+rJO6Hf53tL7085N0+o3Pqqrq12+51+mkfuOJLq5Y2wp1rO1J7733Xq7D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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# -*-coding:utf-8 -*\n",
"from numpy import * #import de numpy\n",
"from scipy import signal #import du module signal de scipy\n",
"from pylab import * #import de matplotlib.pylab\n",
"\n",
"Fe=100 #fréquence d'échantillonnage\n",
"t = arange(0, 0.5, 1./Fe) #creation de la base temps avec numpy\n",
"s = sin(2*pi*10*t) #creation d'une sinusoide à 10hz\n",
"f,Pxx=signal.periodogram(s,Fe) #calcul du periodogram\n",
"f2,Px2=signal.periodogram(s,Fe,None,10*Fe) #calcul du periodogram avec zero padding\n",
"\n",
"plot(f,Pxx,label=\"periodogramme\") #Affichage via la fonction plot de Matplotlib\n",
"plot(f2,Px2,label=\"periodogramme avec zero padding\")\n",
"xlabel('Frequence (Hz)') #définition de l'axe des abscisses\n",
"ylabel('Module') #définition de l'axe des ordonnées\n",
"legend()\n",
"show() #affichage des courbes"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
%% Cell type:code id: tags:
``` python
# -*-coding:utf-8 -*
from numpy import * #import de numpy
from scipy import signal #import du module signal de scipy
from pylab import * #import de matplotlib.pylab
Fe=100 #fréquence d'échantillonnage
t = arange(0, 0.5, 1./Fe) #creation de la base temps avec numpy
s = sin(2*pi*10*t) #creation d'une sinusoide à 10hz
f,Pxx=signal.periodogram(s,Fe) #calcul du periodogram
f2,Px2=signal.periodogram(s,Fe,None,10*Fe) #calcul du periodogram avec zero padding
plot(f,Pxx,label="periodogramme") #Affichage via la fonction plot de Matplotlib
plot(f2,Px2,label="periodogramme avec zero padding")
xlabel('Frequence (Hz)') #définition de l'axe des abscisses
ylabel('Module') #définition de l'axe des ordonnées
legend()
show() #affichage des courbes
```
%%%% Output: display_data
%% Cell type:code id: tags:
``` python
```
{
"cells": [
{
"cell_type": "raw",
"metadata": {},
"source": [
"fichier = open(\"data.txt\", \"a\")\n",
"fichier.write(\"Bonjour notebook\")\n",
"fichier.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
%% Cell type:raw id: tags:
fichier = open("data.txt", "a")
fichier.write("Bonjour notebook")
fichier.close()
%% Cell type:code id: tags:
``` python
```
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Moyenne: -0.027748, variance: 1.008508\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# -*-coding:utf-8 -*\n",
"from numpy import * #import de numpy\n",
"from pylab import * #import de matplotlib.pylab\n",
"from scipy.stats import norm #import du module norm de scipy.stats\n",
"\n",
"r=norm.rvs(size=1000) #Réalisation aléatoire suivant une loi gaussienne\n",
"moyenne=mean(r) #calcul de la moyenne\n",
"variance=var(r) #calcul de la variance\n",
"print(\"Moyenne: %f, variance: %f\" %(moyenne,variance))\n",
"\n",
"plot(r) #Affichage de la réalisation aléatoire via la fonction plot de Matplotlib\n",
"xlabel('Echantillons')\n",
"ylabel('Valeur')\n",
"\n",
"figure() #création d'une nouvelle figure\n",
"hist(r, histtype='stepfilled') #affichage de l'histogramme\n",
"xlabel('Valeur')\n",
"ylabel('Nb occurences')\n",
"\n",
"show() #affichage des courbes"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
%% Cell type:code id: tags:
``` python
# -*-coding:utf-8 -*
from numpy import * #import de numpy
from pylab import * #import de matplotlib.pylab
from scipy.stats import norm #import du module norm de scipy.stats
r=norm.rvs(size=1000) #Réalisation aléatoire suivant une loi gaussienne
moyenne=mean(r) #calcul de la moyenne
variance=var(r) #calcul de la variance
print("Moyenne: %f, variance: %f" %(moyenne,variance))
plot(r) #Affichage de la réalisation aléatoire via la fonction plot de Matplotlib
xlabel('Echantillons')
ylabel('Valeur')
figure() #création d'une nouvelle figure
hist(r, histtype='stepfilled') #affichage de l'histogramme
xlabel('Valeur')
ylabel('Nb occurences')
show() #affichage des courbes
```
%%%% Output: stream
Moyenne: -0.027748, variance: 1.008508
%%%% Output: display_data
%%%% Output: display_data
%% Cell type:code id: tags:
``` python
```
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Bonjour monde\n",
"Bonjour monde\n"
]
}
],
"source": [
"fichier = open(\"data.txt\", \"r\")\n",