Parse computational chemistry log files, but fast-ly.
Project description
FastLogfileParser
Parse logfiles from computational chemistry software, but fast-ly
Install with pip install fastlogfileparser
or conda
(forthcoming!).
- ~10x faster than
cclib
- zero dependencies, supports all modern Python version
- Supports linked jobs, returns a separate result dictionary for each job
- Retrieves values at every step, not just convergence
Usage
Gaussian
There is a single function fast_gaussian_logfile_parser
inside fastlogfileparser.gaussian
which reads logfiles and returns the result as a namedtuple (which prevents accidentally changing the values and allows using .
syntax to access them).
Usage Example
from fastlogfileparser.gaussian import fast_gaussian_logfile_parser as fglp
# read all jobs from the logfile
job_1, job_2, ..., job_n = fglp("data/result.log")
# access results
print(job_1.frequency_modes)
# show all available values retrieved from the file
print(job_1._fields)
# can also be accessed via
from fastlogfileparser.gaussian import FIELDS
Fast logfile parser is fastest when you ask it to retrieve only the fields you want, i.e.:
job_1, job_2, job_3 = fglp(FNAME, get=("gibbs", "scf"))
Retrieved Values
Quantity | Key | Type | Frequency |
---|---|---|---|
Gibbs free energy at 298K | gibbs |
float | 1/job |
Gibbs free energy at 0K | e0_zpe |
float | 1/job |
Enthalpy at 298K | e0_h |
float | 1/job |
E0 $^1$ | E0 |
float | 1/job |
Per-atom Zero Point Energy | zpe_per_atom |
float | 1/job |
Standardized xyz coords | std_xyz |
list[float] | 1/step/job |
... | ... | ... | ... |
Number of Atoms $^2$ | number_of_atoms |
int | 1/job |
Number of Optimization Steps $^2$ | number_of_optimization_steps |
int | 1/job |
$1$ equals E0 only for non-wavefunction methods
$2$ requires std_xyz
to be parsed to find these values
How much fast-ly-er?
FastLogfileParser
uses REGEX and only REGEX to retrieve data from logfiles, spending as much time in Python's excellent C-based REGEX library as possible.
See comparison.py
to run for yourself (install with pip install .[demos]
), but in short:
- compared to
cclib
,fastlogfileparser
is ~10x as fast and returns all values for intermediate steps in simulation (butcclib
supports retrieving a different set of values) - compared to
ase
,fastlogfileparser
is ~2x slower, but returns far more values and in a more readily accessible format
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fastlogfileparser-1.0.0a4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f852b8f3bf7ed39d4e258faa7b893257ab16adf5919abf836fa81617b1459e88 |
|
MD5 | e363f474b509b40a0d5dc26a6fa9dffa |
|
BLAKE2b-256 | 9ff2fc3c3e30406c743dc4e9ae64088c7f910cef37a00e5c9cc2744a1f82097d |
Hashes for fastlogfileparser-1.0.0a4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 275f771a30b93b95e4ceae90d111cdd45771790d4c8d02e3ea999beb990bbb65 |
|
MD5 | 63b6ae629a00a7a431151d13f19c6803 |
|
BLAKE2b-256 | 7f03054e6f6d079f40af23637fcafcff42fdca7a5d0809bd1e7823a549cc68f3 |