分子量计算
项目描述
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))
...
项目详情
下载文件
下载适合您平台的应用程序文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。