electrolytes

Database of electrolytes and their properties

https://github.com/microfluidica/electrolytes

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Database of electrolytes and their properties

Basic Info
  • Host: GitHub
  • Owner: microfluidica
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 140 KB
Statistics
  • Stars: 5
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 22
Created almost 5 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

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:

bash $ 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:

bash $ electrolytes

or, alternatively:

bash $ 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.

python 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:

```python

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:

```python class Constituent: name: str uneg: Sequence[float] = [] # mobilities for [..., -3, -2, -1], SI units*1e-9 upos: Sequence[float] = [] # mobilities for [+1, +2, +3, ...], SI units*1e-9 pkasneg: Sequence[float] = [] # pKas for [..., -3, -2, -1] pkaspos: 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 application^simul6. The dataset of different electrolytes was originally compiled by Prof. Hirokawa[^Hirokawa].

[^simul6]: 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

[^Hirokawa]: 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

Owner

  • Name: Grupo Santafesino de Microfluídica (Santa Fe Microfluidics Group)
  • Login: microfluidica
  • Kind: organization
  • Location: Santa Fe, Argentina

Research group in microfluidics

Citation (CITATION.cff)

cff-version: 1.2.0
preferred-citation:
  type: article
  authors:
  - given-names: Gabriel S.
    family-names: Gerlero
  - given-names: Santiago
    family-names: Márquez Damián
  - given-names: Pablo A.
    family-names: Kler
  title: "electroMicroTransport v2107: Open-source toolbox for paper-based electromigrative separations"
  journal: Computer Physics Communications
  year: 2021
  volume: 269
  start: 108143
  end: 108143
  doi: 10.1016/j.cpc.2021.108143

GitHub Events

Total
  • Release event: 6
  • Watch event: 3
  • Delete event: 35
  • Issue comment event: 12
  • Push event: 44
  • Pull request event: 63
  • Create event: 36
Last Year
  • Release event: 6
  • Watch event: 3
  • Delete event: 35
  • Issue comment event: 12
  • Push event: 44
  • Pull request event: 63
  • Create event: 36

Committers

Last synced: about 3 years ago

All Time
  • Total Commits: 20
  • Total Committers: 1
  • Avg Commits per committer: 20.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Gabriel Gerlero g****o@u****m 20

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 3
  • Total pull requests: 155
  • Average time to close issues: 4 days
  • Average time to close pull requests: about 5 hours
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.66
  • Merged pull requests: 149
  • Bot issues: 0
  • Bot pull requests: 31
Past Year
  • Issues: 0
  • Pull requests: 44
  • Average time to close issues: N/A
  • Average time to close pull requests: about 5 hours
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.45
  • Merged pull requests: 41
  • Bot issues: 0
  • Bot pull requests: 13
Top Authors
Issue Authors
  • gerlero (3)
  • dependabot[bot] (1)
Pull Request Authors
  • gerlero (142)
  • dependabot[bot] (37)
Top Labels
Issue Labels
dependencies (1) github_actions (1)
Pull Request Labels
dependencies (37) github_actions (20) python (13) docker (4)

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
.github/workflows/pypi-publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • battila7/get-version-action v2 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/docker.yml actions
  • docker/build-push-action v5 composite
  • docker/login-action v3 composite
  • docker/metadata-action v5 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
.github/workflows/dockerhub-description.yml actions
  • actions/checkout v4 composite
  • peter-evans/dockerhub-description v3 composite
Dockerfile docker
  • python 3.12-slim build
pyproject.toml pypi
  • backports.cached_property >=1.0.2,<2; python_version<'3.8'
  • filelock ==3.*
  • pydantic >=2.0.3,<3
  • typer >=0.9.0,<0.10
  • typing-extensions >=3.7.4.3,<5; python_version<'3.9'