跳转到主要内容

分子量计算

项目描述

Molmass 是一个 Python 库、控制台脚本和 Web 应用程序,用于根据分子的化学式、相对元素重量或序列计算分子的分子量(平均、名义和同位素纯)、元素组成和质量分布谱。

计算基于元素的同位素组成。不计算由于化学键合导致的质量亏损。

该库包含化学元素的物理化学和描述性属性数据库。

作者::

Christoph Gohlke

许可::

BSD 3-Clause

版本::

2024.5.24

DOI::

10.5281/zenodo.7135495

快速入门

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))
...

项目详情


下载文件

下载适合您平台的应用程序文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源代码分发

molmass-2024.5.24.tar.gz (76.1 kB 查看哈希值)

上传时间 源代码

构建分发

molmass-2024.5.24-py3-none-any.whl (75.2 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页