mendeleev
A python package for accessing various properties of elements, ions and isotopes in the periodic table of elements.
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.4%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
A python package for accessing various properties of elements, ions and isotopes in the periodic table of elements.
Basic Info
- Host: GitHub
- Owner: lmmentel
- License: mit
- Language: Python
- Default Branch: master
- Homepage: https://mendeleev.readthedocs.io
- Size: 15.8 MB
Statistics
- Stars: 256
- Watchers: 7
- Forks: 49
- Open Issues: 2
- Releases: 20
Topics
Metadata Files
README.md
Pythonic periodic table of elements
A package with a convenient python API for accessing various properties
of elements, ions and isotopes in the periodic table of elements.
Report Bug
·
Request Feature
·
Submit a Pull Request
[!TIP] If you're looking for raw data behind
mendeleevhave a look at mendeleev-data repo.You can find all data assets in multiple formats: - csv, - html, - json, - sql, - markdown.
All releases a tagged with the same version numbers as
mendeeleev.
Table of Contents
- Table of Contents
- About the project
- Installation
- Documentation
- Data
- Getting started
- Contributing
- Implementations in other languages
- License
- Citing
- Funding
source: https://github.com/lmmentel/mendeleev
About the project
This package provides a convenient python API for accessing various properties of elements, ions and isotopes in the periodic table of elements.
Moreover it provides an easy to use interface to pandas and convenient visualization functionality through bokeh that enables you to create customized periodic tables displaying various properties.
Django Extensions is free and always will be. It is development and maintained by developers in an Open Source manner. Any support is welcome. You could help by writing documentation, pull-requests, report issues and/or translations.
iodic trends in the periodic tables. If you want to
look at some examples there are a few
tutorials
available as jupyter notebooks.
Interactive web app
If you would like to explore the data available in mendeleev check out the interactive web app at mendeleev.herokuapp.com where you can create your own periodic tables and visualize the relations between various properties of elements.


Installation
The preferred installation method is with conda and you can install the package from the conda-forge Anaconda channel channel by
{.sourceCode .bash}
conda install -c lmmentel mendeleev=1.1.0
The package can also be installed using pip
{.sourceCode .bash}
pip install mendeleev
or pipenv
{.sourceCode .bash}
pipenv install mendeleev
You can also install the most recent version from the repository:
{.sourceCode .bash}
pip install git+https://github.com/lmmentel/mendeleev.git
Documentation
Full documentation is hosted on Read the Docs.
There are also tutorials available as Jupyter notebooks on binder where you can explore the examples interactively:
Data
A comprehensive list of the available data together with appropriate references are available in the documentation. Here the most important entries are listed:
Basic properties
- atomic number
- atomic volume
- atomic weight
- block
- cas
- electrons
- electronic configuration
- group
- name
- neutrons
- mass number
- period
- protons
- series
- symbol
Standardized colors schemes
- cpk_color
- jmol_color
- molcas_gv_color
Size related properties
- atomic radius (Slater, Rahm)
- covalent radius (Bragg, Cordero, Pyykko)
- ionic radius
- metallic radius
- van der Waals radius (Alvarez, Batsanov, Bondi, Dreiding, MM3, RT, Truhlar, UFF)
Electronegativity scales
- Allen
- Allred & Rochow
- Cottrell & Sutton
- Ghosh
- Gordy
- Gunnarsson-Lundqvist
- Li & Xue
- Nagle
- Martynov & Batsanov
- Miedema
- Mulliken
- Pauling
- Robles-Bartolotti
- Sanderson
Descriptive properties
- discoverers
- discovery location
- discovery year
- dipole year
- description
- name origin
- sources
- uses
Physical properties
- boiling point
- C<sub>6</sub>
- critical temperature
- critical pressure
- density
- dipole polarizability
- electron affinity
- evaporation heat
- fusion heat
- gas basicity
- heat of formation
- ionization energies
- lattice constant
- lattice structure
- melting point
- oxidation states
- proton affinity
- specific heat capacity
- thermal conductivity
- triple point temperature
- triple point pressure
Computed properties
- hardness
- softness
- electrophilicity
Other properties
- abundance in the Earth's crust
- abundance in the sea
- geochemical class
- Glawe number
- Goldschmidt class
- InChI
- is monoisotopic
- is radioactive
- isotopes
- Mendeleev number
- NIST WebBook URL
- nuclear screening constants (Slater & Clementi)
Isotope properties
- abundance
- abundance uncertainty
- discovery year
- g-factor
- g-factor uncertainty
- half life
- half life uncertainty
- radioactivity
- mass
- mass number
- parity
- quadrupole moment
- quadrupole moment uncertainty
- spin
Getting started
The simplest way of accessing the element data is by importing elements directly from the [mendeleev]{.title-ref} package by their symbols. For example consider iron (Fe):
>>> from mendeleev import Fe
>>> Fe.name
'Iron'
>>> Fe.atomic_number
26
>>> Fe.thermal_conductivity
80.4
Another, more flexible way is through the element method that returns
the Element object:
>>> from mendeleev import element
The element method accepts unique identifiers: atomic number, atomic
symbol or element\'s name in English. To retrieve the entries on Silicon
by symbol type
``` {.sourceCode .python}
si = element('Si') si.name 'Silicon' ```
Similarly to access the data by atomic number or element names type
``` {.sourceCode .python}
al = element(13) al.name 'Aluminium' o = element('Oxygen') o.atomic_number 8 ```
Lists of elements
The element method also accepts list or tuple of identifiers and then
returns a list of Element objects
``` {.sourceCode .python}
c, h, o = element(['C', 'Hydrogen', 8]) c.name, h.name, o.name ('Carbon', 'Hydrogen', 'Oxygen') ```
Isotopes
The isotopes attribute returns a list of Isotope objects with the
following attributes per isotope
-
atomic_number -
mass -
abundance -
mass_number
``` {.sourceCode .python}
fe = element('Fe') for iso in fe.isotopes: ... print(iso) 26 55.93494 91.75% 56 26 56.93540 2.12% 57 26 57.93328 0.28% 58 26 53.93961 5.85% 54 ```
The columns represent the attributes atomic_number, mass,
abundance and mass_number respectively.
Accessing data tables and the database
mendeleev offers also methods for accessing whole tables of data, e.g. table with the data on all isotopes and methods for interacting directly with the database engine, for more details see the API documentation and this tutorial.
Command line interface utility
For those who work in the terminal there is a simple command line interface (CLI) for printing the information about a given element. The script name is [element.py]{.title-ref} and it accepts either the symbol or name of the element or it\'s atomic number as an argument and prints the data about it. For example, to print the properties of silicon type
``` {.sourceCode .bash} $ element.py Si _ _ _ _ _ ()()()() () () () _ () _ _ _ ()() ()()()()_ () _ () () ()_ _ _ ()_ () _ ()()()() ()()()
Description
Metalloid element belonging to group 14 of the periodic table. It is the second most abundant element in the Earth's crust, making up 25.7% of it by weight. Chemically less reactive than carbon. First identified by Lavoisier in 1787 and first isolated in 1823 by Berzelius.
Sources
Makes up major portion of clay, granite, quartz (SiO2), and sand. Commercial production depends on a reaction between sand (SiO2) and carbon at a temperature of around 2200 °C.
Uses
Used in glass as silicon dioxide (SiO2). Silicon carbide (SiC) is one of the hardest substances known and used in polishing. Also the crystalline form is used in semiconductors.
Properties
Abundance crust 282000 Abundance sea 2.2 Annotation Atomic number 14 Atomic radius 132 Atomic radius rahm 232 Atomic volume 12.1 Atomic weight 28.085 Atomic weight uncertainty NaN Block p Boiling point 2628 C6 305 C6 gb 308 Cas 7440-21-3 Covalent radius bragg 117 Covalent radius cordero 111 Covalent radius pyykko 116 Covalent radius pyykko double 107 Covalent radius pyykko triple 102 Covalent radius slater 110 Cpk color #daa520 Density 2.33 Dipole polarizability 37.31 Discoverers Jöns Berzelius Discovery location Sweden Discovery year 1824 Electron affinity 1.38952 Electronic configuration [Ne] 3s2 3p2 En allen 11.33 En ghosh 0.178503 En pauling 1.9 Evaporation heat 383 Fusion heat 50.6 Gas basicity 814.1 Geochemical class major Goldschmidt class litophile Group id 14 Heat of formation 450 Is monoisotopic None Is radioactive False Jmol color #f0c8a0 Lattice constant 5.43 Lattice structure DIA Melting point 1683 Metallic radius 117 Metallic radius c12 138 Molcas gv color #f0c8a0 Name Silicon Name origin Latin: silex, silicus, (flint). Period 3 Proton affinity 837 Series id 5 Specific heat 0.703 Symbol Si Thermal conductivity 149 Vdw radius 210 Vdw radius alvarez 219 Vdw radius batsanov 210 Vdw radius bondi 210 Vdw radius dreiding 427 Vdw radius mm3 229 Vdw radius rt NaN Vdw radius truhlar NaN Vdw radius uff 429.5 ```
Contributing
mendeleev is free and always will be. It is developed and maintained by developers in an Open Source manner.
Any contributions are welcome. You could help by writing documentation, pull-requests, report issues or suggesting new features.
Issues
Feel free to submit issues regarding:
- data updates and recommendations
- enhancement requests and new useful features
- code bugs
- data or citation inconsistencies or errors
Pull requests
- before stating to work on your pull request please submit an issue first
- fork the repo on github
- clone the project to your own machine
- commit changes to your own branch
- push your work back up to your fork
- submit a pull request so that your changes can be reviewed
Implementations in other languages
Due to great work of other people there are alternative versions in different languages:
| Name | Language | Source | Documentation | Releases |
| ---- | -------- | ------ | ------------- | -------- |
| mendeleev | | gitlab | docs.rs/mendeleev |
|
|
Mendeleev.jl | | github | eben60.github.io/Mendeleev.jl/ | |
License
This package is released under the permissive MIT license, see LICENSE
Citing
If you use mendeleev in a scientific publication, please consider citing the software as
L. M. Mentel, mendeleev - A Python resource for properties of chemical elements, ions and isotopes. , 2014-- . Available at: https://github.com/lmmentel/mendeleev.
Here\'s the reference in the BibLaTeX format
{.sourceCode .latex}
@software{mendeleev2014,
author = {Mentel, Łukasz},
title = {{mendeleev} -- A Python resource for properties of chemical elements, ions and isotopes},
url = {https://github.com/lmmentel/mendeleev},
version = {1.1.0},
date = {2014--},
}
or the older BibTeX format
{.sourceCode .latex}
@misc{mendeleev2014,
auhor = {Mentel, Łukasz},
title = {mendeleev} -- A Python resource for properties of chemical elements, ions and isotopes, ver. 1.1.0},
howpublished = {\url{https://github.com/lmmentel/mendeleev}},
year = {2014--},
}
Funding
This project was supported by the RCN (The Research Council of Norway) project number 239193.
Owner
- Name: Lukasz Mentel
- Login: lmmentel
- Kind: user
- Location: Oslo
- Website: lukaszmentel.com
- Repositories: 60
- Profile: https://github.com/lmmentel
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Mentel" given-names: "Łukasz" orcid: "https://orcid.org/0000-0001-9986-1262" title: "mendeleev - A Python package with properties of chemical elements, ions, isotopes and methods to manipulate and visualize periodic table." version: 1.1.0 doi: 10.5281/zenodo.5233824 date-released: 2021-03-20 url: "https://github.com/lmmentel/mendeleev"
GitHub Events
Total
- Create event: 42
- Release event: 4
- Issues event: 25
- Watch event: 45
- Delete event: 35
- Issue comment event: 23
- Push event: 119
- Pull request review event: 18
- Pull request review comment event: 22
- Pull request event: 70
- Fork event: 8
Last Year
- Create event: 42
- Release event: 4
- Issues event: 25
- Watch event: 45
- Delete event: 35
- Issue comment event: 23
- Push event: 119
- Pull request review event: 18
- Pull request review comment event: 22
- Pull request event: 70
- Fork event: 8
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Lukasz Mentel | l****l@g****m | 765 |
| dependabot[bot] | 4****] | 31 |
| Paul Romano | p****o@g****m | 4 |
| Eben60 | 6****0 | 2 |
| Christian Häggström | c****m@o****m | 2 |
| lgtm-com[bot] | 4****] | 1 |
| kalvdans | g****b@k****g | 1 |
| Vi-L | 5****L | 1 |
| Ruslan Nagimov | n****v@o****m | 1 |
| Jan Janssen | j****n | 1 |
| Francisco B | 2****o | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 79
- Total pull requests: 162
- Average time to close issues: 3 months
- Average time to close pull requests: 23 days
- Total issue authors: 39
- Total pull request authors: 10
- Average comments per issue: 2.39
- Average comments per pull request: 0.63
- Merged pull requests: 143
- Bot issues: 0
- Bot pull requests: 40
Past Year
- Issues: 18
- Pull requests: 64
- Average time to close issues: 8 days
- Average time to close pull requests: 3 days
- Issue authors: 6
- Pull request authors: 1
- Average comments per issue: 1.17
- Average comments per pull request: 0.02
- Merged pull requests: 59
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- lmmentel (24)
- Eben60 (9)
- AlanReviews (6)
- jkshenton (3)
- chicolucio (2)
- paulromano (2)
- KOLANICH (2)
- sedaoturak (2)
- Vi-L (1)
- kaylai (1)
- BvB93 (1)
- RickeyEstes (1)
- anhhaokudo (1)
- yanghan234 (1)
- mhfan (1)
Pull Request Authors
- lmmentel (141)
- dependabot[bot] (49)
- kalvdans (6)
- paulromano (5)
- jan-janssen (2)
- Eben60 (2)
- Vi-L (2)
- lgtm-com[bot] (1)
- chicolucio (1)
- guilindner (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 72,398 last-month
- Total docker downloads: 35
-
Total dependent packages: 50
(may contain duplicates) -
Total dependent repositories: 89
(may contain duplicates) - Total versions: 64
- Total maintainers: 1
pypi.org: mendeleev
Pythonic periodic table of elements
- Documentation: https://mendeleev.readthedocs.io
- License: MIT
-
Latest release: 1.1.0
published 9 months ago
Rankings
Maintainers (1)
conda-forge.org: mendeleev
This package provides an API for accessing various properties of elements from the periodic table of elements.
- Homepage: https://github.com/lmmentel/mendeleev
- License: MIT
-
Latest release: 0.12.0
published over 3 years ago
Rankings
Dependencies
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- pypa/gh-action-pypi-publish release/v1 composite
- bokeh *
- ipykernel *
- ipython *
- jupyter_bokeh *
- nbsphinx *
- plotly *
- pybtex *
- pybtex-docutils *
- seaborn *
- sphinx *
- sphinx-copybutton *
- sphinx-issues *
- sphinx-material *
- sphinxcontrib-bibtex *
- 144 dependencies
- Sphinx ^3.5.1 develop
- alembic ^1.5.5 develop
- black ^22.1.0 develop
- bump2version ^1.0.1 develop
- ipykernel ^5.5.0 develop
- ipython ^7.16 develop
- jupyter-bokeh ^3.0.0 develop
- jupyterlab ^3.0 develop
- nbsphinx ^0.8.2 develop
- pandas-stubs ^1.2.0 develop
- pylint ^2.7.2 develop
- pytest ^6.2.2 develop
- sphinx-copybutton ^0.3.1 develop
- sphinx-material ^0.0.32 develop
- sphinxcontrib-bibtex ^2.1.4 develop
- Pygments ^2.8.0
- SQLAlchemy ^1.4.0
- bokeh ^2.3.0
- colorama ^0.4.4
- jupyter-bokeh ^3.0.2
- numpy ^1.21
- pandas >=0.25.0
- plotly ^5.0
- pyfiglet ^0.8.post1
- python >=3.7.1,<3.12
- seaborn ^0.11.1
- six ^1.15.0