Skip to main content

Python wrapper for the R package CHNOSZ by Dr. Jeffrey Dick

Project description

pyCHNOSZ

Author: Dr. Grayson Boyer, GEOPIG Lab, Arizona State University

This is a python wrapper for several functions in the R package CHNOSZ by Dr. Jeff Dick.

Features

The following CHNOSZ functions are supported in pyCHNOSZ:

  • info - Search for chemical species by name or formula and retrieve their thermodynamic parameters.
  • add_OBIGT - add or replace entries in the OBIGT thermodynamic database.
  • reset - reset data to default values.
  • subcrt - Calculate standard state partial molal thermodynamic properties of reactions at elevated temperatures and pressures.
  • basis - Define basis species of a chemical system.
  • species - Define the species of interest in a system.
  • equilibrate - Calculate equilibrium chemical activities of species from the affinities of formation of the species at unit activity.
  • affinity - Calculate the chemical affinities of formation reactions of species.
  • diagram - Plot equilibrium chemical activity (1-D speciation) or equal-activity (2-D predominance) diagrams as a function of chemical activities of basis species, temperature and/or pressure.

Requirements

This package must be installed into an environment with an R installation. See these instructions for installing R with Anaconda. Additionally, the CHNOSZ package for R must be installed (see instructions below).

Installation

Installing CHNOSZ

Open an R session. Install the CHNOSZ package with:

install.packages("CHNOSZ")

Once CHNOSZ is installed you may quit the R session.

Installing pyCHNOSZ

Install pyCHNOSZ using pip:

$ pip install pyCHNOSZ

Usage

Import pyCHNOSZ in your python code with:

import pyCHNOSZ

In the following examples, pyCHNOSZ functions are imported with:

from pyCHNOSZ import info, add_OBIGT, reset, subcrt

Search for chemical species

The info function can be used to look up chemical species by name or formula. If names or formulas are provided, database index integers are returned. A list of integers will look up chemical species by index and return a table of thermodynamic properties. See the info function's original documentation to learn more about what this function can do. A few examples are shown below.

Look up the database index value of Fe+2:

info("Fe+2")

Look up multiple chemical species:

info(["HCO3-", "CH4"])

Define chemical states:

info(["HCO3-", "CH4"], state=["aq", "gas"])

Search species by index values to look up their thermodynamic parameters.

info([13, 872])

Nest info functions to look up thermodynamic properties directly from names or formulas:

info(info("Fe+2"))

Look up and add a protein to the database:

info("LYSC_CHICK")

Add or replace thermodynamic data in the database

See the original documentation for add_OBIGT and reset for basic useage. A few examples are given below.

Load the SUPCRT92 database.

a = add_OBIGT("SUPCRT92")

The variable a is assigned a list of integers corresponding to the indices of chemical species that are added or replaced in the OBIGT thermodynamic database used by pyCHNOSZ.

It is possible to add a custom table of thermodynamic parameters.

a = add_OBIGT("my_custom_entries.csv")
info(a) # confirm new entries have been added

The entries of my_custom_entries.csv would then be available for thermodynamic calculations with subcrt, for example.

Reset thermodynamic database to its original configuration.

reset()

Calculate thermodynamic properties of reactions

See the original documentation for subcrt. Useage in pyCHNOSZ is the same, except python lists are used in place of R's vectors. The function produces a dictionary of results stored in pandas dataframes. An example is shown below for the reaction H2 (aq) + 0.5 O2 (gas) = H2O(liq) at 30 and 50 degrees C and 100 bars pressure:

subcrt(species=["H2", "O2", "H2O"], coeff=[-1.0, -0.5, 1.0],
       state=["aq", "gas", "liq"], T=[30, 50], P=100)

Output is a python dictionary of dataframes:

subcrt: 3 species at 2 values of T (ºC) and P (bar) (wet) [energy units: cal]

{'reaction':       coeff    name formula state  ispecies
 62     -1.0      H2      H2    aq      62.0
 2612   -0.5  oxygen      O2   gas    2612.0
 1       1.0   water     H2O   liq       1.0,
 'out':       T    P       rho       logK             G             H         S  \
 1  30.0  100  1.000017  43.855086 -60832.380282 -67420.887872 -21.89070   
 2  50.0  100  0.992305  40.834419 -60379.262657 -67882.530994 -23.36663   

           V         Cp  
 1 -7.494052 -24.126268  
 2 -8.259704 -20.941879  }

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyCHNOSZ-0.0.6.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

pyCHNOSZ-0.0.6-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file pyCHNOSZ-0.0.6.tar.gz.

File metadata

  • Download URL: pyCHNOSZ-0.0.6.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.22.0 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for pyCHNOSZ-0.0.6.tar.gz
Algorithm Hash digest
SHA256 eca2fc70bd01c35e63c9ae82bf71f35fc593496de4233203d0591fafd0313418
MD5 ceaa14d4456d64be3ddf3bf72a005bb6
BLAKE2b-256 d17a69d3ba18a5ecc1defb31aaf0e2fbc050ad5124f1f3d4141f409bcac9fe26

See more details on using hashes here.

File details

Details for the file pyCHNOSZ-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: pyCHNOSZ-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.22.0 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for pyCHNOSZ-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 4945ed644fadb02f391bbf9238cf18a965ea3f8f2ac422bc5e3183b4d913a886
MD5 392472540a2f19ea6655dbaa70a68032
BLAKE2b-256 0cf82f0c5948d0de58583c0cc777a0a4e58ec169eb20b99a6e898dca93364746

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page