Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
teaching:progappchim:start [2021/01/28 18:11] – [Notions de base (résumés, exemples de base,...)] villersd | teaching:progappchim:start [2023/03/13 10:14] (Version actuelle) – [Des librairies spécifiques en chimie, biochimie,...] villersd |
---|
====== Programmation appliquée à la chimie ====== | ====== Programmation appliquée à la chimie ====== |
| |
| <note warning> |
| L'article suivant analyse les contributions à cpython, le cœur du langage Python : [[https://lukasz.langa.pl/f15a8851-af26-4e94-a4b1-c146c57c9d20/]]. Les deux contributeurs les plus importants (on enlève les bots et les gestionnaires de release) sont Victor Stinner et Serhiy Storchaka. |
| |
| **Aux dernières nouvelles (14/12/2022) Serhiy Storchaka vit toujours en Ukraine, à 20 km de [[https://www.openstreetmap.org/node/337510526#map=9/51.1561/33.0579|Konotop]] !!** |
| </note> |
| |
Le cours "Programmation appliquée à la chimie" de bachelier en sciences chimiques (15 H cours et 15 H exercices, bloc2) utilise deux supports : | Le cours "Programmation appliquée à la chimie" de bachelier en sciences chimiques (15 H cours et 15 H exercices, bloc2) utilise deux supports : |
* **//Cf.// la page dédiée sur [[:floss:anaconda|Anaconda]]** | * **//Cf.// la page dédiée sur [[:floss:anaconda|Anaconda]]** |
- en salle informatique UMONS : utilisation de Python sous Ubuntu | - en salle informatique UMONS : utilisation de Python sous Ubuntu |
- utilisation en mode nomade de la plateforme [[https://notebooks.azure.com/|Azure]] avec l'utilisation de vos codes UMONS | - dans n'importe quel navigateur web, via le site [[https://repl.it/languages/python3]] |
| - <del>utilisation en mode nomade de la plateforme [[https://notebooks.azure.com/|Azure]] avec l'utilisation de vos codes UMONS</del> |
- via [[https://colab.research.google.com/notebooks/welcome.ipynb|Colaboratory]] et l'utilisation d'un compte gmail, cette configuration permettant un partage et une édition en commun | - via [[https://colab.research.google.com/notebooks/welcome.ipynb|Colaboratory]] et l'utilisation d'un compte gmail, cette configuration permettant un partage et une édition en commun |
* [[notions_fondamentales|Notions fondamentales]] | * [[notions_fondamentales|Notions fondamentales]] |
* [[pieges|Pièges à éviter]] | * [[pieges|Pièges à éviter]] |
| |
<note tip>Vous serez encouragé à l'utilisation et l'écriture de Jupyter notebooks, via l'utilisation de la distribution Anaconda, soit [[https://notebooks.azure.com/|via la plateforme cloud Azure]]. | <note tip>Vous serez encouragé à l'utilisation et l'écriture de Jupyter notebooks, via l'utilisation de la distribution Anaconda, soit via [[https://colab.research.google.com/notebooks/welcome.ipynb|Colaboratory]] <del>[[https://notebooks.azure.com/|via la plateforme cloud Azure]]</del>. |
| |
//Cf// : | //Cf// : |
* ce [[https://notebooks.azure.com/linusable/libraries/samples-public/html/notebooks/Jupyter_primer_in_Jupyter-02.ipynb|Tutoriel Jupyter en Jupyter]] (en construction) | * ce {{ :teaching:progappchim:jupyter_primer_in_jupyter-02.ipynb.zip |Tutoriel Jupyter en Jupyter}} (fichier compressé dans une archive zip) |
* cette [[https://notebooks.azure.com/linusable/libraries/samples-public/html/notebooks/chemistry/chemical_elements_data-01.ipynb|application sur les données des éléments chimiques]] | * cette [[https://notebooks.azure.com/linusable/libraries/samples-public/html/notebooks/chemistry/chemical_elements_data-01.ipynb|application sur les données des éléments chimiques]] (FIXME : lien à actualiser) |
* [[https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks|A gallery of interesting Jupyter Notebooks]] | * [[https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks|A gallery of interesting Jupyter Notebooks]] |
* ... | * ... |
| |
| |
| |
</note> | </note> |
* [[factorielle|Calcul de factorielles]] (pas à pas) | * [[factorielle|Calcul de factorielles]] (pas à pas) |
* [[Suite_de_Fibonacci|Suite de Fibonacci]] (pas à pas) | * [[Suite_de_Fibonacci|Suite de Fibonacci]] (pas à pas) |
* [[polynomes|Manipulation de polynômes]] (pas à pas) | * **[[polynomes|Manipulation de polynômes]]** (pas à pas) |
* [[matrices|Manipulations de matrices]] | * [[matrices|Manipulations de matrices]] |
* [[tris|Algorithmes de tri]] | * [[tris|Algorithmes de tri]] |
* [[pygal_simple|les bases de Pygal]], une autre librairie graphique, simple (cf. ce [[http://pygal.org/en/stable/index.html|site]]) | * [[pygal_simple|les bases de Pygal]], une autre librairie graphique, simple (cf. ce [[http://pygal.org/en/stable/index.html|site]]) |
* [[altair_simple|les bases de Altair]], une autre librairie graphique, interactive | * [[altair_simple|les bases de Altair]], une autre librairie graphique, interactive |
| |
| ==== Des librairies spécifiques en chimie, biochimie,... ==== |
| * [[mendeleev|Mendeleev]] (données sur les éléments chimiques) |
| * [[rdkit|RDKit et molécules]] (représentation,...) |
| * [[bioinformatic|Bioinformatique et la librairie Biopython]] (manipulations de séquences ADN, ARN, protéines,...) |
| * [[openbabel_jmol|OpenBabel et Jmol]] : format de description de molécules et visualisations |
| * [[ChemSpiPy]] : utilisation des données de [[http://www.chemspider.com/|ChemSpider]] |
| * [[PubChemPy]] : interaction avec la base de données PubChem |
| * [[ChemPy]] : librairie contenant diverse fonctionnalités sur la chimie et les réactions chimiques |
| * [[https://pymatgen.org/|PyMatGen]] |
| * [[https://chemlab.readthedocs.io/en/latest/index.html|Chemlab]] |
| * [[https://wiki.fysik.dtu.dk/ase/ase/gui/gui.html#module-ase.gui|Ase's gui]] |
| * [[https://pymol.org/2/|PyMOL]] |
| * [[https://pgi-jcns.fz-juelich.de/portal/pages/pymoldyn-main.html|pyMolDyn]] |
| * [[https://chemview.readthedocs.io/en/latest/|chemview]] |
| * [[https://pypi.org/project/chembox/|chembox · PyPI]] |
| * [[https://chembox.readthedocs.io/en/latest/example.html|chembox usage — chembox documentation]] |
| * [[https://pypi.org/project/global-chem/|global-chem · PyPI]] |
| * [[https://github.com/Sulstice/global-chem|Sulstice/global-chem: A General Public Dictionary of Common Chemical Names to their Molecular Definition]] |
| * [[https://www.globalchemistry.org/|Global-Chem: Common Chemical Names Dictionary]] |
| * [[https://pypi.org/project/cocktail-shaker/|cocktail-shaker · PyPI]] |
| * [[https://github.com/Sulstice/Cocktail-Shaker|Sulstice/cocktail-shaker: A peptide string building for expanding chemical dataset combinations.]] |
| * [[https://cocktail-shaker.readthedocs.io/en/latest/guide/file_handling.html|File API Documentation — Cocktail Shaker 1.0.0 documentation]] |
| * [[https://pypi.org/project/chemics/|chemics · PyPI]] |
| * [[https://pypi.org/project/moleculekit/|moleculekit · PyPI]] |
| * [[https://pypi.org/project/molecule-slide-generator/|molecule-slide-generator · PyPI]] |
| * [[https://pypi.org/project/pH-diagrams/|pH-diagrams · PyPI]] |
| * [[https://github.com/chicolucio/pH-diagrams/|chicolucio/pH-diagrams: A Python package to plot fractional composition diagrams and pH-log c diagrams]] |
| * [[https://ph-diagrams.readthedocs.io/en/latest/?badge=latest|pH diagrams — pH diagrams 0.3.2.post1.dev7+gb496040 documentation]] |
| * [[https://pypi.org/project/pyriodic-table/|pyriodic-table · PyPI]] |
| * [[https://github.com/leoz0214/pyriodic-table|leoz0214/pyriodic-table: A Python package which provides data on the Periodic Table of Elements.]] |
| * [[https://pypi.org/project/molmass/|molmass · PyPI]] |
| * [[https://pypi.org/project/pubchemTool/|pubchemTool · PyPI]] |
| * ... |
| |
| <note tip>De nombreuses librairies, l'utilisation du langage Python, de l'environnement Jupyter,... dans le cadre de la chimie sont évoquées dans le livre de 2021 de Thorsten Gressling (series De Gruyter Textbook) ISBN: 9783110629453 cf. [[https://www.degruyter.com/document/doi/10.1515/9783110629453/html]] |
| </note> |
===== Notions intermédiaires et avancées ===== | ===== Notions intermédiaires et avancées ===== |
* [[slices|Slices sur les listes]] | * [[slices|Slices sur les listes]] |
* [[notions_avancees|Notions avancées]] | * [[notions_avancees|Notions avancées]] |
* [[trucs_astuces|Trucs et astuces]] | * [[trucs_astuces|Trucs et astuces]] |
| * [[urllib|Lecture du code source d'une page web via la librairie urllib]] |
| |
===== Jupyter, IPython Notebooks et JupyterLab ===== | ===== Jupyter, IPython Notebooks et JupyterLab ===== |
* [[jupyter|Jupyter]] : introduction, exemples, liens,... | * [[jupyter|Jupyter]] : introduction, exemples, liens,... |
* [[bokeh_simple|Les bases de Bokeh]], une librairie Python de visualisations interactives pour des représentations dans des navigateurs web. Bokeh est particulièrement indiqué pour une utilisation dans les Jupyter notebooks, et s'installe aisément via Anaconda. | * [[bokeh_simple|Les bases de Bokeh]], une librairie Python de visualisations interactives pour des représentations dans des navigateurs web. Bokeh est particulièrement indiqué pour une utilisation dans les Jupyter notebooks, et s'installe aisément via Anaconda. |
| * Références externes : |
| * [[https://github.com/weisscharlesj/SciCompforChemists|Scientific Computing for Chemists]] (pdf et données), cité dans [[https://pubs.acs.org/doi/full/10.1021/acs.jchemed.0c01071|A Creative Commons Textbook for Teaching Scientific Computing to Chemistry Students with Python and Jupyter Notebooks]] Charles J. Weiss, J. Chem. Educ. 2021, 98, 2, 489–494 DOI: 10.1021/acs.jchemed.0c01071 |
| * [[https://chem.libretexts.org/Ancillary_Materials/Interactive_Applications/Jupyter_Notebooks|Jupyter Notebooks sur Chemistry Libretexts]] |
| * ... |
| |
===== Applications ===== | ===== Applications ===== |
* [[analyse_images|Analyse d'images]] | * [[analyse_images|Analyse d'images]] |
* [[attracteur_Lorenz|L'attracteur de Lorenz]] : équations différentielles ordinaires et comportement chaotique | * [[attracteur_Lorenz|L'attracteur de Lorenz]] : équations différentielles ordinaires et comportement chaotique |
* [[openbabel_jmol|OpenBabel et Jmol]] : format de description de molécules et visualisations | |
* [[fit_modele_einstein|Optimisation de la température caractéristique du diamant suivant le modèle d'Einstein]] (avec scipy, numpy, matplotlib) | * [[fit_modele_einstein|Optimisation de la température caractéristique du diamant suivant le modèle d'Einstein]] (avec scipy, numpy, matplotlib) |
* [[t-test|Test de Student]] : exemple technologique (avec scipy, numpy) | * [[t-test|Test de Student]] : exemple technologique (avec scipy, numpy) |
* [[OSM_interrogation|Interrogation de la base de données géolocalisées OpenStreetMap]] | * [[OSM_interrogation|Interrogation de la base de données géolocalisées OpenStreetMap]] |
* [[bioinformatic|Bioinformatique]] (manipulations de séquences ADN, ARN, protéines,...) | |
* [[glossaire_chimie|Glossaire de chimie]] | * [[glossaire_chimie|Glossaire de chimie]] |
* [[math_nombres|Mathématiques et nombres]] | * [[math_nombres|Mathématiques et nombres]] |
* [[epidemie_coronavirus|Épidémie du coronavirus COVID-19]] | * [[epidemie_coronavirus|Épidémie du coronavirus COVID-19]] |
* [[rdkit|RDKit et molécules]] (représentation,...) | |
| |
===== Données chimiques disponibles ===== | ===== Données chimiques disponibles ===== |
* [[https://www.eea.europa.eu/themes/air/explore-air-pollution-data|Explore air pollution data]] European Environment Agency | * [[https://www.eea.europa.eu/themes/air/explore-air-pollution-data|Explore air pollution data]] European Environment Agency |
* [[https://echa.europa.eu/fr/home|European Chemicals Agency]] | * [[https://echa.europa.eu/fr/home|European Chemicals Agency]] |
| * [[https://webbook.nist.gov/|WebBook de Chimie NIST, SRD 69]] permet d'accéder aux données collectées et distribuées par NIST dans le cadre du Programme de données de référence standard. |
* ... | * ... |
| |
* Canada : [[http://www.statcan.ca/start.html]] | * Canada : [[http://www.statcan.ca/start.html]] |
* UK : [[http://www.data.gov.uk]] | * UK : [[http://www.data.gov.uk]] |
* Australia : [http://data.gov.au/]] | * Australia : [[http://data.gov.au/]] |
* USA : | * USA : |
* [[http://www.fedstats.gov/]] | * [[http://www.fedstats.gov/]] |
* Visualisation de la taille d'effet : cf. [[https://rpsychologist.com/d3/cohend/]] | * Visualisation de la taille d'effet : cf. [[https://rpsychologist.com/d3/cohend/]] |
* simulation du [[wp>fr:Problème_de_Monty_Hall|Problème de Monty Hall]] (+ [[wp>Monty_Hall_problem|Monty Hall problem]], [[wp>fr:Paradoxe_des_prisonniers|Paradoxe des prisonniers]]) | * simulation du [[wp>fr:Problème_de_Monty_Hall|Problème de Monty Hall]] (+ [[wp>Monty_Hall_problem|Monty Hall problem]], [[wp>fr:Paradoxe_des_prisonniers|Paradoxe des prisonniers]]) |
| * [[https://python.plainenglish.io/using-python-to-simulate-the-famous-monty-hall-problem-b4a9697894ba|Simulate the Famous Monty Hall Problem with Python]] Ahmed Al-Jaishi, Medium, 25/02/2022 |
| * [[https://scipython.com/]] : Learning Scientific Programming with Python avec quelques exemples de programme pouvant être à la base de quelques développements |
| * rebonds, billards,... comme discuté [[https://twitter.com/matthen2/status/1571887895228874752|ici]] |
| * [[https://www.astrolabe-science.fr/des-spectres-de-raies-demission-avec-python/|Des spectres de raies avec Python]], David Alberto |
* ... | * ... |
| |
Voir aussi la [[floss:python:activestateselection|sélection de codes sources ActiveState]] avec de nombreuses applications scientifiques. | Voir aussi : |
| * [[floss:python:activestateselection|sélection de codes sources ActiveState]] avec de nombreuses applications scientifiques. |
Voir aussi [[https://dvillers.umons.ac.be/wiki/floss:python#applications_en_chimie|ces librairies]]. | * [[https://dvillers.umons.ac.be/wiki/floss:python#applications_en_chimie|ces librairies]] |
| * [[https://eduscol.education.fr/1648/programmes-et-ressources-en-physique-chimie-voie-gt|Utiliser le langage Python dans un contexte de physique-chimie]] (éduscol, France) |
| |
===== Références générales ===== | ===== Références générales ===== |