====== Éléments et molécules ======
Les propriétés des éléments chimiques, de molécules peuvent être dressées, listées,... par un programme si on dispose des données. Celles-ci étant communes à tous les chimistes, et uniquement susceptibles de quelques modifications, il est utile de reprendre une source commune primaire (IUPAC) ou secondaire (comme Wikipedia) plutôt que de redéfinir toutes ces valeurs dans un programme.
===== Librairie Mendeleev =====
Consulter la page spécifique sur la [[mendeleev|librairie Mendeleev]]
La librairie [[https://pypi.org/project/mendeleev/|Mendeleev]] est complète et évoluée
* Package repository sur PyPI : [[https://pypi.org/project/mendeleev/]]
* Page officielle, description et code source : [[https://github.com/lmmentel/mendeleev]]
* Documentation complète : [[https://mendeleev.readthedocs.io/en/stable/]]
* Tutoriels : [[https://mendeleev.readthedocs.io/en/stable/tutorials.html]]
* Notebook Jupyter (exemples) :
* [[https://nbviewer.jupyter.org/github/lmmentel/mendeleev/blob/master/docs/source/notebooks/01_intro_to_mendeleev.ipynb]] (tutoriel introductif)
* [[https://nbviewer.jupyter.org/github/lmmentel/mendeleev/blob/master/docs/source/notebooks/02_tables.ipynb]] (accessing the data in bulk)
* [[https://nbviewer.jupyter.org/github/lmmentel/mendeleev/blob/master/docs/source/notebooks/03_plotting.ipynb]] (plotting tutorial)
* Installation via pip, ou la commande conda, ou l'interface de Anaconda, suivant l'environnement utilisé :
* pip install --user mendeleev
* conda install -c lmmentel mendeleev=0.6.0
* Données utilisables, en ligne : [[http://mendeleev.herokuapp.com/]]
*
===== Librairie Molmass =====
[[http://www.lfd.uci.edu/~gohlke/|Christoph Gohlke]] (University of California, Irvine), a écrit une librairie molmass pour accéder aux propriétés des éléments, et calculer les masses moléculaires, compositions élémentaires, spectres de distribution des masses de molécules,... Gohlke fournit également un interface utilisateur graphique sous forme d'un tableau périodique, et un interface web pour afficher les données sur les masses moléculaires. Tous ces programmes sont mis à disposition aux conditions de la [[http://fr.wikipedia.org/wiki/Licence_BSD|licence BSD]] (licence libre très permissive).
==== Installation ====
via la commande pip install molmass
Dans jupyter :
# Install a pip package in the current Jupyter kernel
import sys
!{sys.executable} -m pip install molmass
==== Exemples ====
Voici deux exemples simples de programmes utilisant ces librairies :
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# utilisations de elements.py & molmass.py
# source : http://www.lfd.uci.edu/~gohlke/
# mars 2020 : adaptation python 3
from molmass import ELEMENTS
len(ELEMENTS)
str(ELEMENTS[109])
ele = ELEMENTS['C']
print(ele.number, ele.symbol, ele.name, ele.eleconfig)
print(ele.eleconfig_dict)
print(sum(ele.mass for ele in ELEMENTS))
for ele in ELEMENTS:
ele.validate()
ele = repr(ele)
print(ele, type(ele))
input("next ?")
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# utilisations de elements.py & molmass.py
# source : http://www.lfd.uci.edu/~gohlke/
# mars 2020 : adaptation python 3
from molmass import Formula
f = Formula("D2O")
#f = Formula("H2SO4")
print(f.formula)
print(f.empirical)
print(f.mass) # average mass
print(f.isotope.massnumber) # nominal mass
print(f.isotope.mass) # monoisotopic mass
print(f.atoms)
print(f.composition())
print(f.spectrum())
Un autre programme, testant plus de possibilités :
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# utilisations de elements.py & molmass.py
# source : http://www.lfd.uci.edu/~gohlke/
# test des routines sur les formules chimiques
# mars 2020 : adaptation python 3
from molmass import *
def info(object, spacing=10, collapse=1):
"""Print methods and doc strings.
Takes module, class, list, dictionary, or string."""
methodList = [method for method in dir(object) if callable(getattr(object, method))]
processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
print("\n".join(["%s %s" %
(method.ljust(spacing),
processFunc(str(getattr(object, method).__doc__)))
for method in methodList]))
f = Formula('CHCl3')
#f = Formula('C2H2Cl6')
line='____________________________________________________________'
print(line)
print(dir(f))
print(line)
print(info(f))
print(line)
print(f.composition())
print(line)
print(f.isotope)
print(line)
print(f.isotope.mass)
print(line)
print(f.isotope.massnumber)
print(line)
print(f.mass)
print(line)
print(f.formula, f.gcd, f.empirical)
print(line)
print(f.spectrum())
print(line)
print(f.atoms)
print(line)
print(analyze ('CHCl3'))
print(line)
print(f, type(f))
print(line)
==== Librairies initiales de Christoph Gohlke (2005-2013) ====
Les propriétés des éléments chimiques, de molécules peuvent être dressées, listées,... par un programme si on dispose des données.
[[http://www.lfd.uci.edu/~gohlke/|Christoph Gohlke]] (University of California, Irvine), a écrit deux librairies, [[http://www.lfd.uci.edu/~gohlke/code/elements.py.html|elements.py]] et [[http://www.lfd.uci.edu/~gohlke/code/molmass.py.html|molmass.py]], pour respectivement accéder aux propriétés des éléments, et calculer les masses moléculaires, compositions élémentaires, spectres de distribution des masses de molécules,... Gohlke fournit également un interface utilisateur graphique sous forme d'un [[http://www.lfd.uci.edu/~gohlke/code/elements_gui.py.html|tableau périodique]], et un [[http://www.lfd.uci.edu/~gohlke/code/molmass_cgi.py.html|interface web]] pour afficher les données sur les masses moléculaires. Tous ces programmes sont mis à disposition aux conditions de la [[http://fr.wikipedia.org/wiki/Licence_BSD|licence BSD]] (licence libre très permissive). **Les 4 programmes, dans leur version de mars 2013 sont regroupés dans {{:teaching:progappchim:chimie-formules.zip|cette archive}}**.