Skip to main content

aerosolprops

CI

Structure-derived pure-component properties for atmospheric organic aerosol.

aerosolprops is a modern successor to the pure-component property methods of UManSysProp (Topping et al., GMD 9, 899–911, 2016), rebuilt on RDKit as the structure engine and following the conventions of the thermo package family: strict SI units, estimators as pure functions of group counts where possible, and failures that return None rather than raise.

Status: pre-alpha. The repository currently contains the packaging skeleton, CI, documentation scaffold, the structure/topology foundation layers, and the first estimator (SIMPOL.1). The remaining methods below land one at a time, each with coefficients entered from the published papers and tests against literature values.

Methods (v0.1)

Method Property Status Reference
SIMPOL.1 Vapour pressure implemented Pankow & Asher, ACP 8, 2773 (2008)
EVAPORATION Vapour pressure implemented Compernolle et al., ACP 11, 9431 (2011)
Nannoolal Part 1 (+ SOA extension groups) Normal boiling point implemented Nannoolal et al., FPE 226, 45 (2004); Compernolle et al., ACP 10, 6271 (2010)
Nannoolal Part 3 Vapour pressure implemented Nannoolal et al., FPE 269, 117 (2008)
Myrdal–Yalkowsky (+ H-bonding extension) Vapour pressure implemented Myrdal & Yalkowsky, IECR 36, 2494 (1997); Compernolle et al., ACP 10, 6271 (2010)

Boiling points used as inputs (by Myrdal–Yalkowsky and Nannoolal Part 3) can come from the self-implemented Nannoolal Part 1 route, from thermo's built-in Joback method, or from experimental data — aerosolprops does not reimplement Joback.

Installation

pip install aerosolprops

RDKit and thermo are required dependencies.

Design notes

  • Units are strictly SI (Pa, K, mol); property failures return None.
  • RDKit is the structure engine and a required dependency. It is imported lazily, and estimators ultimately consume group-count dictionaries — the same interface thermo uses for its own RDKit-optional group-contribution methods — so pieces remain extractable upstream.
  • No molecular descriptors. Every method needs only 2D graph quantities: SMARTS substructure counts, ring perception, composition, and a few connectivity queries. No fingerprints, no 3D, no descriptor packages.
  • No home-grown graph algorithms. The graph primitives (connected components, ring distances, neighbour queries) are RDKit built-ins; aerosolprops.topology only wraps them. What is method-specific is the translation of paper semantics (e.g. SIMPOL.1 "acid-side carbons", EVAPORATION "in-chain oxygen") onto those primitives.
  • thermo compatibility. aerosolprops hard-depends on thermo and follows its group-contribution conventions ({group_id: coefficient record} catalogues, counts-based static estimators, Joback-style one-time fragmenting wrappers). Where a method's counting semantics do not fit thermo's mutually-exclusive SMARTS partition (SIMPOL.1's groups overlap and replace one another additively), aerosolprops ships its own fragmenter but keeps the same interface, so pieces can still be contributed upstream with minimal rework.

Licensing and data provenance

aerosolprops is MIT-licensed. Coefficients are entered from the published papers cited above (facts, not copyrightable expression), and SMARTS patterns are authored from the group definitions in those papers. UManSysProp is used only as a behavioural test oracle during development; no code or data files are copied from it.

Development

uv venv && uv pip install -e ".[test,docs]"
pytest                        # unit tests + doctests
mkdocs serve                  # documentation

CI runs the full test matrix (with doctests) on Linux/macOS/Windows for Python 3.9–3.14, plus a strict docs build.

License

MIT — see LICENSE.

Metadata

Release files for aerosolprops 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aerosolprops 0.1.0
File Size Uploaded Provenance Actions
aerosolprops-0.1.0.tar.gz 131.8 kB With provenance Details for aerosolprops-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aerosolprops 0.1.0
File Interpreter ABI Platform Actions
aerosolprops-0.1.0-py3-none-any.whl Python 3 none any Details for aerosolprops-0.1.0-py3-none-any.whl

Total release size: 217.6 kB

Release files / aerosolprops-0.1.0.tar.gz

Download URL aerosolprops-0.1.0.tar.gz
Size 131.8 kB
Tags Source
SHA-256 checksum
How to use checksums
dfb366ff1c0975a8f6e2151eba1adee103682c787af3aae8016e281108e5ae9d
BLAKE2b-256 checksum
How to use checksums
c3096bfc3f80a9f4bf6c688154e90f47bfc622dea1151e16467b21ea2e16b3b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Release files / aerosolprops-0.1.0-py3-none-any.whl

Download URL aerosolprops-0.1.0-py3-none-any.whl
Size 85.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0323487d2db543d41523303e0e611e68726e1cdb11a140057737ad0ced968249
BLAKE2b-256 checksum
How to use checksums
4e57ad58dde6182b558b791aad92a03153e755976f8012529d3dd0399e9a2f98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Security for aerosolprops 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for aerosolprops-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page