Skip to main content

electrolytes

CI Codecov Pydantic v2 Ruff ty uv Publish PyPI PyPI - Python Version Docker Docker image

electrolytes provides command-line and programmatic access to a database of electrolytes and their properties. It includes 518 components by default (see credits). The package covers basic management of the database, including support for storing user-defined electrolytes.

electroMicroTransport

electrolytes is primarily developed as a utility to assist in preparing simulation cases for the electroMicroTransport toolbox for electromigrative separations. However, it is an independent package and can be installed and used separately.

Installation

Install with pip:

$ python3 -m pip install electrolytes

Command-line usage

Invoke the electrolytes command-line application to search the database, find the details of a particular component, or to add/remove user-defined components. In your terminal, run:

$ electrolytes

or, alternatively:

$ python3 -m electrolytes

Add the --help flag to learn what options are available.

Python API

The Python API is provided for electroMicroTransport case initialization scripts.

from electrolytes import database, Constituent

You can look up components in the database as you would with dict (with component names as keys), and also add user-defined components with the add method (as if database were a set). Components are instances of the Constituent class. Extra methods are also defined for database:

def user_defined(self) -> Iterable[str]: ...


def is_user_defined(self, name: str) -> bool: ...

The database object is also usable as a context manager (i.e. with database:), which allows multiple operations to be performed with exclusive access to the database (locking out any other processes for the duration).

Constituent names are case insensitive and will be automatically converted to all uppercase. Any instances added to (or removed from) the database will be saved for the current operating system user. Default components cannot be changed or removed (expect a ValueError if you try).

The public interface of the Constituent class is:

class Constituent:
    name: str
    u_neg: Sequence[float] = []  # mobilities for [..., -3, -2, -1], SI units*1e-9
    u_pos: Sequence[float] = []  # mobilities for [+1, +2, +3, ...], SI units*1e-9
    pkas_neg: Sequence[float] = []  # pKas for [..., -3, -2, -1]
    pkas_pos: Sequence[float] = []  # pKas for [+1, +2, +3, ...]

    # Interface for electroMicroTransport
    def mobilities(
        self,
    ) -> Sequence[float]: ...  # for [..., +3, +2, +1, -1, -2, -3, ...], SI units
    def pkas(self) -> Sequence[float]: ...  # for [..., +3, +2, +1, -1, -2, -3, ...]
    # NOTE: the above are padded if needed so that +3 and -3 are always present (len >= 6)
    def diffusivity(self) -> float: ...  # SI units

Data credits

Electrolyte data taken from the Simul 6 application1 (homepage, GitHub). The dataset of different electrolytes was originally compiled by Prof. Hirokawa2.

  1. GAŠ, Bohuslav; BRAVENEC, Petr. Simul 6: A fast dynamic simulator of electromigration. Electrophoresis, 2021, vol. 42, no. 12-13, pp. 1291-1299. DOI: 10.1002/elps.202100048 ↩

  2. HIROKAWA, Takeshi, et al. Table of isotachophoretic indices: I. Simulated qualitative and quantitative indices of 287 anionic substances in the range ph 3–10. Journal of Chromatography A, 1983, vol. 271, no. 2, pp. D1-D106. DOI: 10.1016/S0021-9673(00)80225-3 ↩

Metadata

Release files for electrolytes 0.5.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 electrolytes 0.5.0
File Size Uploaded
electrolytes-0.5.0.tar.gz 19.0 kB Details

Built distribution (wheel)

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

Total release size: 38.5 kB

Release files / electrolytes-0.5.0.tar.gz

Download URL electrolytes-0.5.0.tar.gz
Size 19.0 kB
Tags Source
SHA-256 checksum
How to use checksums
06866798f9bbaa02513be00875f6ade112d074c73d7f921ba6444fb4eab7a43f
BLAKE2b-256 checksum
How to use checksums
8362ab23b6515732422f4abb198553e96543bda9c1d9de4cfb9a0b1e52f8ea59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / electrolytes-0.5.0-py3-none-any.whl

Download URL electrolytes-0.5.0-py3-none-any.whl
Size 19.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
730f52c51dcc0e05dad902cd208863a1bd24a341b3d4b21b28e73e7409f106c5
BLAKE2b-256 checksum
How to use checksums
87260a0a002e8c779d71aee9ad1f8a6a0319fd0eecab19121a0b13b055878a7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.5.2

2 release files

0.5.1

2 release files

This release

0.5.0 This release

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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