分子量计算
项目描述
Molmass 是一个 Python 库、控制台脚本和 Web 应用程序,用于根据分子的化学式、相对元素重量或序列计算分子的分子量(平均、名义和同位素纯)、元素组成和质量分布谱。
计算基于元素的同位素组成。不计算由于化学键合导致的质量亏损。
该库包含化学元素的物理化学和描述性属性数据库。
- 作者::
- 许可::
BSD 3-Clause
- 版本::
2024.5.24
- DOI::
快速入门
从 Python 包索引 安装 molmass 软件包及其所有依赖项
python -m pip install -U "molmass[all]"
打印控制台脚本的用法
python -m molmass --help
运行 Web 应用程序
python -m molmass --web
molmass 库通过 docstrings 进行文档说明。
请参阅 示例 了解如何使用编程接口。
源代码和支持可在 GitHub 上获得。
要求
此修订版已测试以下要求和依赖项(其他版本可能也适用)
修订版
2024.5.24
修复 GitHub 无法正确渲染 docstring 示例。
2024.5.10
添加选项以禁用解析组、寡核苷酸、分数和算术(#14)。
添加 Formula.expanded 属性。
2023.8.30
修复代码风格问题。
添加 py.typed 标记。
移除对 Python 3.8 的支持。
2023.4.10
支持 rdkit 风格的离子电荷(#11,#12)。
在 from_string 中启用不进行加法运算的乘法。
2022.12.9
修复 split_charge 公式末尾的 ]](#11)。
2022.10.18
几个重大更改。
添加对离子电荷的实验性支持(#5)。
将 Element、Isotope 和 Particle 改为 dataclass(破坏性)。
更改 Spectrum 和 Composition 的类型(破坏性)。
添加函数以将 Spectrum 和 Composition 导出为 Pandas DataFrames。
将 lazyattr 替换为 functools.cached_property。
将 molmass_web 重命名为 web(破坏性)。
更改 web 应用的输出(破坏性)。
如果已安装,则使用 Flask 运行 web 应用。
添加选项以指定 web 应用的 URL 并不打开 web 浏览器。
转换为 Google 风格的 docstrings。
添加类型提示。
移除对 Python 3.7 的支持。
2021.6.18
将 Particle 类型添加到元素中(#5)。
修复 molmass_web 在 WSL2 上的失败(#9)。
修复 elements_gui 的布局问题。
移除对 Python 3.6 的支持。
2020.6.10
修复 elements_gui 在 WSL2 上的符号大小问题。
支持 wxPython 4.1。
2020.1.1
从 NIST 更新元素的原子量和同位素组成。
将元素描述移入单独的模块。
移除对 Python 2.7 和 3.5 的支持。
2018.8.15
将模块移动到 molmass 包中。
2018.5.29
添加选项以从控制台启动 web 界面。
将样式与内容分离,并在 molmass_web 中使用 CSS flex 布局。
2018.5.25
样式和 docstring 修复。
使 from_fractions 输出确定。
在 molmass_web 中接受 Flask request.args。
molmass_web 中的样式和模板更改。
2016.2.25
修复一些元素的电离能。
2005.x.x
初始发布。
示例
从化合物的化学式计算分子的分子量、元素组成和质量分布
>>> from molmass import Formula >>> f = Formula('C8H10N4O2') # Caffeine >>> f Formula('C8H10N4O2') >>> f.formula # hill notation 'C8H10N4O2' >>> f.empirical 'C4H5N2O' >>> f.mass # average mass 194.1909... >>> f.nominal_mass # == f.isotope.massnumber 194 >>> f.monoisotopic_mass # == f.isotope.mass 194.0803... >>> f.atoms 24 >>> f.charge 0 >>> f.composition().dataframe() Count Relative mass Fraction Element... C 8 96.085920 0.494801 H 10 10.079410 0.051905 N 4 56.026812 0.288514 O 2 31.998810 0.164780 >>> f.spectrum(min_intensity=0.01).dataframe() Relative mass Fraction Intensity % m/z Mass number... 194 194.080376 0.898828 100.000000 194.080376 195 195.082873 0.092625 10.305100 195.082873 196 196.084968 0.008022 0.892492 196.084968 197 197.087214 0.000500 0.055681 197.087214
访问化学元素的物理化学和描述性属性
>>> from molmass import ELEMENTS, Element >>> e = ELEMENTS['C'] >>> e Element( 6, 'C', 'Carbon', group=14, period=2, block='p', series=1, mass=12.01074, eleneg=2.55, eleaffin=1.262118, covrad=0.77, atmrad=0.91, vdwrad=1.7, tboil=5100.0, tmelt=3825.0, density=3.51, eleconfig='[He] 2s2 2p2', oxistates='4*, 2, -4*', ionenergy=( 11.2603, 24.383, 47.877, 64.492, 392.077, 489.981, ), isotopes={ 12: Isotope(12.0, 0.9893, 12), 13: Isotope(13.00335483507, 0.0107, 13), }, ) >>> e.number 6 >>> e.symbol 'C' >>> e.name 'Carbon' >>> e.description 'Carbon is a member of group 14 of the periodic table...' >>> e.eleconfig '[He] 2s2 2p2' >>> e.eleconfig_dict {(1, 's'): 2, (2, 's'): 2, (2, 'p'): 2} >>> str(ELEMENTS[6]) 'Carbon' >>> len(ELEMENTS) 109 >>> sum(e.mass for e in ELEMENTS) 14693.181589001... >>> for e in ELEMENTS: ... e.validate() ... e = eval(repr(e)) ...
项目详情
下载文件
下载适合您平台的应用程序文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。