====== Programmation appliquée à la chimie ======
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]] !!**
Le cours "Programmation appliquée à la chimie" de bachelier en sciences chimiques (15 H cours et 15 H exercices, bloc2) utilise deux supports :
* Principalement, le présent wiki pour ses avantages techniques (coloration et indentation du code, recherche dans les pages, historique des modifications, ...)
* Parfois, la [[https://moodle.umons.ac.be/course/view.php?id=107|plateforme moodle d'enseignement en ligne de l'UMONS]], pour ses **autres** avantages techniques (authentification, devoirs, forum,...)
Si vous voulez comprendre la nécessité d'une formation informatique incluant l'initiation à l'algorithmique et la programmation, et l'apprentissage pratique via des projets, vous pouvez-consulter :
* Le [[http://www.academie-sciences.fr/pdf/rapport/rads_0513.pdf|Rapport de l’Académie des sciences - L’enseignement de l’informatique
en France - Il est urgent de ne plus attendre]] (2013)
* [[https://www.whitehouse.gov/blog/2016/01/30/computer-science-all|Computer Science For All]] (President Obama in his 2016 State of the Union Address)
===== Notions de base (résumés, exemples de base,...) =====
* {{:teaching:progappchim:python-overview-3.pdf|Présentation et principes de base de la programmation en Python, avec quelques applications}} + [[codes_presentation|codes]]
* **[[presentation_principes|Présentation et principes de base de la programmation en Python, avec quelques applications]]** (version wiki)
* [[floss:python|Page avec de nombreuses informations sur Python (y compris pour l'apprentissage et l'installation)]]. Modes recommandés :
- installation de la version 3 standard via [[http://python.org|python.org]]
- **installation de la distribution complète [[https://www.anaconda.com/distribution/|Anaconda]] (pour votre OS, en version 3 et 64 bits)**
* [[https://docs.anaconda.com/anaconda/user-guide/|User guide]]
* **//Cf.// la page dédiée sur [[:floss:anaconda|Anaconda]]**
- en salle informatique UMONS : utilisation de Python sous Ubuntu
- dans n'importe quel navigateur web, via le site [[https://repl.it/languages/python3]]
- utilisation en mode nomade de la plateforme [[https://notebooks.azure.com/|Azure]] avec l'utilisation de vos codes UMONS
- 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]]
* [[tkinter_gui_simple|Les bases d'un interface graphique avec Tkinter]]
* [[pieges|Pièges à éviter]]
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]] [[https://notebooks.azure.com/|via la plateforme cloud Azure]].
//Cf// :
* 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]] (FIXME : lien à actualiser)
* [[https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks|A gallery of interesting Jupyter Notebooks]]
* ...
==== Algorithmes classiques ====
* [[factorielle|Calcul de factorielles]] (pas à pas)
* [[Suite_de_Fibonacci|Suite de Fibonacci]] (pas à pas)
* **[[polynomes|Manipulation de polynômes]]** (pas à pas)
* [[matrices|Manipulations de matrices]]
* [[tris|Algorithmes de tri]]
* [[recherches|Algorithmes de recherche]]
* [[teaching:progappchim:algos_entiers|Algorithmes sur entiers]], où on parle d'atomes, de molécules, de nombres de nucléons !
* [[algos_divers|Algorithmes divers]]
===== Les librairies scientifiques essentielles =====
* [[matplotlib_simple|Les bases de Matplotlib, une librairie pour réaliser des graphiques 2D]]
* [[numpy_simple|Les bases de NumPy]] (tableaux numériques, algèbre linéaire, transformées de Fourier, nombres aléatoires)
* [[scipy_simple|Les bases de SciPy]] : ajoute à NumPy des fonctionnalités mathématiques (intégration, optimisation, fonctions spéciales, interpolation,...)
* [[pylab_simple|Pylab]] : permet de combiner simplement Matplotlib, NumPy et SciPy
* [[pandas|Pandas]], pour l'analyse de données
* [[scikit_learn|Scikit-learn]], machine learning
* [[plotly_simple|les bases de Plotly]], une librairie pour réaliser des graphiques. [[https://plot.ly/python/|plotly]] est interactif et s'intègre bien dans des navigateurs (//i.e.// Jupyter notebooks)
* [[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
==== 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]]
* ...
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]]
===== Notions intermédiaires et avancées =====
* [[slices|Slices sur les listes]]
* [[csv|Lire et écrire des fichiers de données csv]] (comma separated values)
* [[notions_avancees|Notions avancées]]
* [[trucs_astuces|Trucs et astuces]]
* [[urllib|Lecture du code source d'une page web via la librairie urllib]]
===== Jupyter, IPython Notebooks et JupyterLab =====
{{wp:fr>Jupyter}}
* [[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.
* 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 =====
* [[random_walk_2D-simple|Marche aléatoire 2D simple]] : simulation d'une chaîne polymère
* [[koch_snowflake|Flocon de Koch]] : simulation d'une fractale avec la librairie Turtle
* [[dictionary_adn_protein|Traduction de l'ADN en séquence d'acides aminés (protéine)]] : utilisation d'un dictionnaire (type Python)
* [[solvents_data_class|Utilisation d'une "classe" pour des données de solvants chimiques]]
* [[Lennard-Jones|Représentation du potentiel de Lennard-Jones]], graphe élémentaire avec Matplotlib, et énergie de cohésion d'un cristal de gaz rare.
* [[diffusion_chimique_1D|Modélisation de la diffusion chimique dans un film]] : technique de différences finies, utilisation de Matplotlib
* [[Maxwell-Boltzmann|Représentation de la distribution de vitesse de Maxwell-Boltzmann]] (avec et sans NumPy)
* [[entropie_melange|Entropie de mélange pour un gaz ou liquide idéal]]
* [[elements_molecules|Éléments et molécules]] : propriétés, masses molaires,...
* [[pH-3D|Représentation 3D du pH d'un acide en fonction d'un ajout de base et d'une dilution globale]]
* [[analyse_images|Analyse d'images]]
* [[attracteur_Lorenz|L'attracteur de Lorenz]] : équations différentielles ordinaires et comportement chaotique
* [[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)
* [[OSM_interrogation|Interrogation de la base de données géolocalisées OpenStreetMap]]
* [[glossaire_chimie|Glossaire de chimie]]
* [[math_nombres|Mathématiques et nombres]]
* [[epidemie_coronavirus|Épidémie du coronavirus COVID-19]]
===== Données chimiques disponibles =====
* Données brutes non triées sur les éléments chimiques (pour usage après restructuration via du code python) : {{ :teaching:progappchim:brute_data.zip |}}
* [[https://www.kaggle.com/jwaitze/tablesoftheelements|Dataset]] de Kaggle sur les éléments chimiques
* [[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://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.
* ...
===== Autres données =====
* [[https://www.kaggle.com/mabusalah/brent-oil-prices|Brent Oil Prices]] Daily historical Brent Oil Prices available on the U.S. Energy Information Admin
* Sources de données statistiques, données ouvertes (opendata), statistiques belges
* OpenData : [[http://data.gov.be/fr]]
* statbel : [[http://www.statbel.fgov.be/home_fr.asp]]
* Belgostat online : [[http://www.nbb.be/app/cal/F/BelgoHome.htm]]
* CREF : [[http://www.cref.be/Statistiques.htm]]
* statistiques européennes
* eurostat : [[http://epp.eurostat.ec.europa.eu]]
* statistiques internationales
* OECD : [[http://stats.oecd.org/wbos/]]
* UNESCO : [[http://www.uis.unesco.org]]
* United Nations : [[http://unstats.un.org/unsd/default.htm]]
* World Trade Organization : [[http://www.wto.org/english/res_e/statis_e/its2005_e/its05_toc_e.htm]]
* Nations particulières
* France :
* [[https://www.data.gouv.fr/fr/]]
* [[http://www.insee.fr/fr/home/home_page.asp]]
* Luxembourg : [[http://www.statec.public.lu/en/]]
* UK : [[http://www.statistics.gov.uk/]]
* Hollande : [[http://www.cbs.nl/en/]]
* Allemagne : [[http://www.destatis.de/e_home.htm]]
* Italie : [[http://www.istat.it/English/index.htm]]
* Espagne : [[http://www.ine.es/welcoing.htm]]
* Suisse : [[http://www.bfs.admin.ch/bfs/portal/en/index.html]]
* Canada : [[http://www.statcan.ca/start.html]]
* UK : [[http://www.data.gov.uk]]
* Australia : [[http://data.gov.au/]]
* USA :
* [[http://www.fedstats.gov/]]
* [[http://www.data.gov/]] (et pages spécialisées, incluant la science et la recherche)
* Secteurs spécifiques
* [[https://www.economicsnetwork.ac.uk/data_sets|Economic Data freely available online]]
* Autres références :
* [[http://www.statista.com/]]
===== Exemples de travaux d'étudiants =====
Ces travaux peuvent être entièrement originaux, ou se baser sur des éléments de code existants. + page à accès limité : [[intra:programmation-travaux|lien intranet sur les travaux]]
* [[game_of_life_conway-2012|Jeu de la vie de Conway]] : automate cellulaire 2D (TkInter)
* [[tableau_periodique_2013|Tableau périodique]] : tableau avec éléments cliquables pour obtenir les informations (y compris un fichier de données)
* [[régression_linéaire_2013|Régression linéaire]] : entrée de couples, calcul et affichage de la droite de moindres carrés
* [[ensemble_mandelbrot_2013|Ensemble de Mandelbrot]] : dessin d'une fractale
* [[pavage_penrose_2013|Pavage de Penrose]]
* [[courbe_predominance_acide_2013|Courbe de Prédominance d'un Acide]]
* [[grille_configurations_melange_binaire_2013|Création d'une grille et de configurations d'un système binaire modélisé]]
* [[ph_acides_bases_2013|Représentation de pH d'acides et de bases]]
* [[representation_molecules_2013|Représentation de molécules]]
* [[calcul_matriciel_2012|Calcul matriciel]], avec l'interface Tk
* [[conversion_temperature_2011|Conversion de températures]], avec l'interface Tk
* [[ph_courbe_titrage_2011|pH et courbe de titrage]], avec l'interface Tk
* [[gaz_parfait_2011|Loi des gaz parfaits]], avec l'interface Tk
* [[tableau_periodique_2011|Tableau périodique]] : une autre version, avec l'interface Tk
* [[dictionaries_adn_arn_protein|Traduction ADN-ARN-protéine]], avec l'interface Tk
* [[solubilite_pH_T|Solubilité en fonction du pH et de la température]], interface en ligne de commande et graphiques matplotlib
* [[pressions_partielles_systemes_non_ideaux|Graphiques des pressions partielles de systèmes non-idéaux]]
* [[periodical_table_electronegativity|Vue 3D de l'électronégativité]] (tableau périodique)
===== Idées de travaux, projets =====
Consulter aussi cette [floss:python#applications_en_chimie|liste d'applications et librairies python en chimie]]
* Représentation de fonctions thermodynamiques de deux variables :
* avec Matplotlib, en incluant des éléments supplémentaires
* exemple : isothermes de van der Waals
* Utiliser la librairie Mayavi (3D)
* Représentation des résolutions de Fourier pour la diffusion à 1D, 2D, 3D, en fonction du temps,...
* Résolution de problèmes numériques
* intégration numérique
* racines de polynômes, de fonctions générales
* systèmes d'équations linéaires
* optimisation de fonction (minimisations)
* Approximations utilisant la [[http://fr.wikipedia.org/wiki/Formule_de_Stirling|formule de Stirling]] pour la factorielle (très utilisée en thermodynamique statistique), avec tabulation, représentations graphiques,...
* Interfacer Python et un tableur (par exemple pouvoir lire des données d'un fichier de tableur à partir d'un programme Python)
* Simulation en chimie :
* degré de polymérisation comme l'article [[http://pubs.acs.org/doi/abs/10.1021/ed300877z|Software for Demonstration of Features of Chain Polymerization Processes]]
* Traitement d'images
* mesurer des temps de réaction (s'inspirer par exemple de fonctionnalités de [[http://acces.ens-lyon.fr/acces/ressources/neurosciences/temps-de-reaction-investigation-variabilite-et-traitements-statistiques-des-donnees/ressources-1/prise-en-main-rapide-du-logiciel-reaction|ce programme]])
* générer du son, de la vidéo
* Calcul de la [[http://fr.wikipedia.org/wiki/Constante_de_Madelung|constante de Madelung]] (interactions coulombiennes dans un cristal ionique)
* Représentation 3D du pH d'un acide en fonction d'un ajout de base et d'une dilution globale : cf. [[http://pubs.acs.org/doi/abs/10.1021/ed400297t|cet article]] : extension de l'exemple montré
* Échelle d'électronégativité, ou autre propriété atomique : représentation à 3D ou via des barres dont la taille est proportionnelle à la valeur, en suivant le schéma général du tableau périodique
* Illustrations graphiques des séries spectrales de l'hydrogène (barres, flèches, anneaux,...)
* Visualisations s'inspirant de sites comme [[http://www.chemtube3d.com/index.html|ChemTube 3D]], [[http://www.chemeddl.org/|ChemEd DL]],...
* Diagramme de Pourbaix à 3D : cf. [[http://pubs.acs.org/doi/full/10.1021/ed400735g|cet article]]
* Outils de base en chimie comme sur le site [[http://fr.webqc.org/chemicaltools.php]]
* Multiéquilibre (mélange d'acides et bases conjuguées) : cf..[[http://pubs.acs.org/doi/abs/10.1021/ed400808c|cet article]]
* Utilisation de régressions non-linéaires pour traiter des données de réactions enzymatiques : cf. [[http://pubs.acs.org/doi/abs/10.1021/ed3006677|cet article]]
* Tableau périodique interactif via Ipython et Bokeh (cf. cette [[https://docs.bokeh.org/en/1.3.4/docs/gallery/periodic.html|ref]])
* Simulations de ségrégation, par inspiration de [[http://ncase.me/polygons/|ces simulations]], [[https://fr.wikipedia.org/wiki/Thomas_Schelling#La_th.C3.A9orie_de_la_s.C3.A9gr.C3.A9gation_non_voulue|des travaux de Thomas Schelling]], et sur base du programme [[https://github.com/projectmesa/mesa|Mesa]] (agent-based modelling)
* Équilibre liquide-vapeur à deux constituants, simulation du changement de phase (//cf//. cette [[http://demonstrations.wolfram.com/LeverRuleAppliedToTheBenzeneTolueneVaporPressureDiagram/|simulation]])
* Approximations de la [[http://fr.wikipedia.org/wiki/Fonction_de_Langevin|fonction de Langevin]] utilisée pour décrire la magnétisation d'un matériau paramagnétique : représentation de la fonction et de ses approximations, des erreurs relatives,...
* graphiques polaires et cartésiens :
* [[http://1ucasvb.tumblr.com/post/42881722643/the-familiar-trigonometric-functions-can-be]]
* Illustration dynamique de séries de Fourier, comme [[http://commons.wikimedia.org/wiki/File:Fourier_series_square_wave_circles_animation.gif|ici]]
* Évolution de population suivant le modèle de la [[http://en.wikipedia.org/wiki/Leslie_matrix|matrice de Leslie]] avec représentation de la [[http://fr.wikipedia.org/wiki/Pyramide_des_%C3%A2ges|pyramide des ages]] (//cf// [[https://github.com/jimrybarski/population_pyramid|ce lien]])
* Créer des structures de données pour gérer les étiquettes de produits chimiques : pictogrammes, mentions de danger (Hxxx et EUHxxx), de prudence (Pxxx), codes produits,...
* Rotamères : étude simplifiée et représentation graphique (//cf.// [[https://www2.chemistry.msu.edu/faculty/reusch/virttxtjml/rotconf1.htm|cet exemple]])
* Décomposition spinodale (modèle de Cahn-Hilliard), (//cf.// [[http://www.ctcms.nist.gov/fipy/examples/cahnHilliard/generated/examples.cahnHilliard.mesh2D.html|cet exemple]])
* Programme basé sur une de ces librairies :
* [[http://pythonhosted.org/pyEQL/|pyEQL]], librairie pour gérer des solutions aqueuses d'électrolytes
* [[https://pypi.python.org/pypi/chemlab|chemlab]], librairies incluant la visualisation et la manipulation de données sur les structures chimiques
* [[https://pypi.python.org/pypi/chempy/|chempy]], librairie pour résoudre des problèmes de chimie physique, chimie analytique,...
* [[https://www.ebi.ac.uk/chembl/|ChEMBL]] base de donnée chimique
* [[https://github.com/mcs07/ChemSpiPy|ChemSpiPy]] pour accéder à la base de donnée [[http://www.chemspider.com/|ChemSpider]]
* [[http://www.cheminfo.org/wikipedia|Wikipedia chemical structure explorer]], avec données exploitables via [[https://github.com/cheminfo/wikipedia|GitHub]]
* Charte des nucleides, et diverses représentations des instabilités. cf. [[https://www-nds.iaea.org/relnsd/vcharthtml/VChartHTML.html|Live Chart of Nuclides]] et les données sources indiquées
* **collisions de particules (sphères ou disques)**
* [[https://introcs.cs.princeton.edu/java/assignments/collisions.html|Molecular Dynamics Simulation of Hard Spheres]] → description générale du problème avec des solutions basées sur les particules ou les événements (hard disc simulation, dynamique moléculaire) :
* documents de Werner Krauth et al.
* [[http://www.lps.ens.fr/~krauth/index.php/Main_Page|Main Page - Werner KRAUTH]]
* [[https://www.coursera.org/lecture/statistical-mechanics/lecture-2-hard-disks-from-classical-mechanics-to-statistical-mechanics-e8hMP|Lecture 2: Hard disks: from Classical Mechanics to Statistical Mechanics - Hard disks: From Classical Mechanics to Statistical Mechanics | Coursera]]
* [[http://www.lps.ens.fr/~krauth/index.php/Bernard_Krauth_b_2011|Bernard Krauth 2012 - Werner KRAUTH]]
* Event-driven
* [[https://algs4.cs.princeton.edu/61event/|Event-Driven Simulation]]
* [[https://github.com/numberset/HardSphereSim|numberset/HardSphereSim: Event driven simulation of hard spheres in python]]
* [[https://github.com/rajeshrinet/pyedmd|rajeshrinet/pyedmd: Event-Driven Molecular dynamics simulations]]
* [[https://github.com/robeme/HardSphereSim|robeme/HardSphereSim: Event driven simulation of hard spheres in python]]
* Autres simulations
* [[https://github.com/labay11/ideal-gas-simulation/blob/master/simulation.py|ideal-gas-simulation/simulation.py at master · labay11/ideal-gas-simulation]]
* [[https://johnloomis.org/ece538/notes/visual/gas.py.html|gas.py]]
* Exploitation de données chimiques de wikidata.org [[https://query.wikidata.org/#%20%20PREFIX%20wdt%3A%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2F%3E%0A%20%20SELECT%20%3Fcompound%20WHERE%20{%0A%20%20%20%20%3Fcompound%20wdt%3AP31%20wd%3AQ11173%20.%0A%20%20}%0A|query]] (> 20000 composés), PREFIX wdt:
SELECT ?compound WHERE {
?compound wdt:P31 wd:Q11173 .
}
* chaines de Markov sur des séquences peptidiques
* Simulation électrochimique comme dans [[http://pubs.acs.org/doi/abs/10.1021/acs.jchemed.6b00052|cet article]]
* Splitting en RMN du proton, comme [[http://pubs.acs.org/doi/abs/10.1021/acs.jchemed.6b00133|cet article]]
* Catalyse biochimique (Michaelis-Menten) : représentation et calcul des constantes comme dans [[http://www.mt.com/dam/Analytical/uv-vis/uv-glen/LAB_enzyme_1604_ANA_Academia.pdf|cet article]]
* Simulation de l'expansion irréversible d'un gaz mono-atomique, comme dans [[http://pubs.acs.org/doi/full/10.1021/acs.jchemed.6b00226|cet article]]
* représentation de liaisons, densités de charge, comme dans [[http://pubs.acs.org/doi/full/10.1021/acs.jchemed.6b00058|cet article]]
* simulation du modèle d'Ising : [[http://rajeshrinet.github.io/blog/2014/ising-model/]]
* visualisation comme dans l'article [[http://pubsdc3.acs.org/doi/abs/10.1021/acs.jchemed.5b00439|Visualization of Buffer Capacity with 3-D “Topo” Surfaces: Buffer Ridges, Equivalence Point Canyons and Dilution Ramps]] ou [[https://pubs.acs.org/doi/abs/10.1021/acs.jchemed.6b00682|3-D Topo Surface Visualization of Acid–Base Species Distributions: Corner Buttes, Corner Pits, Curving Ridge Crests, and Dilution Plains]]
* sur base de [[http://pubs.acs.org/doi/abs/10.1021/acs.jchemed.7b00003|A Python Program for Solving Schrödinger’s Equation in Undergraduate Physical Chemistry]]
* programmes en version python analogues aux applications en chimie de l'article [[http://pubs.acs.org/doi/abs/10.1021/acs.jchemed.6b00973|The Development of Computational Thinking in a High School Chemistry Course]] Paul S. Matsumoto and Jiankang Cao, J. Chem. Educ., 2017, 94 (9), pp 1217–1224 DOI: 10.1021/acs.jchemed.6b00973
* programmes inspirés de [[http://pubs.acs.org/doi/10.1021/acs.jchemed.6b01008|Teaching the Growth, Ripening, and Agglomeration of Nanostructures in Computer Experiments]] Jan Philipp Meyburg and Detlef Diesing, J. Chem. Educ., 2017, 94 (9), pp 1225–1231 DOI: 10.1021/acs.jchemed.6b01008
* Créer un nuage de tag | mots ou word cloud à partir de textes publications websites de chimie (utiliser scikit-learn et/ou du "web scrapping",...). Liens : [[https://github.com/amueller/word_cloud|Word Cloud]], [[https://github.com/atizo/PyTagCloud|PyTagCloud]], [[https://stackoverflow.com/questions/16645799/how-to-create-a-word-cloud-from-a-corpus-in-python|ref1]], [[https://www.kaggle.com/adiljadoon/word-cloud-with-python|ref2]], [[http://minimaxir.com/2016/05/wordclouds/|ref3]],...
* représentations d'orbitales électroniques 1D ou 3D.
* //Cf.// par exemple [[https://towardsdatascience.com/quantum-physics-visualization-with-python-35df8b365ff|cet article]]
* [[http://anguslowe.me/physics/orbitals/]]
* Colorimétrie : [[https://pubs.acs.org/doi/10.1021/acs.jchemed.7b00681|Color Space Mathematical Modeling Using Microsoft Excel]] M. J. Delgado-González, Y. Carmona-Jiménez, M. C. Rodríguez-Dodero, and M. V. García-Moreno, J. Chem. Educ., 2018, 95 (10), pp 1885–1889 DOI: 10.1021/acs.jchemed.7b00681
* Énergie électrique et émission de CO2, en continu : [[https://www.electricitymap.org]]
* Données diverses (France) : [[http://data.cquest.org/]]
* 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]])
* [[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 :
* [[floss:python:activestateselection|sélection de codes sources ActiveState]] avec de nombreuses applications scientifiques.
* [[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 =====
* [[https://www.eyrolles.com/Informatique/Livre/coder-proprement-9782326002272/|Coder proprement]] Robert C. Martin 2019, Eyrolles
* [[https://levelup.gitconnected.com/21-python-mini-projects-with-codes-c4126e4131e4|21 Python Mini Projects With Code - Get a Speed Boost In Your Python Journey By Building These Amazing Projects]] Abhay Parashar, Medium, 04/01/2021