Skip to main content

Quantum Chemistry Database

Python app to build a knowledge database from a directory structure of ORCA calculations.

The database takes the form of a directory structure of markdown files, representing structure and information on the calculations. This allows establishing relationships between calculations and forms a lab notebook type structure.

Installation

There is nothing to install - given you're using uv. The QCDB tool is on PyPI, so you can use it asynchroniously with uv tool run (uvx for short):

uvx qcdb --root /path/to/project/root --vault-dir /path/to/vault

To inspect the vault, download and use Obsidian and use it to inspect the vault.

Architecture

The scraper can be updated in the future to

  1. support more QC codes
  2. extract more metadata
  3. automatically prepare dashboards for e.g. SCF or optimization convergence, IR spectra, ..
  4. be parallel

The idea is that we can scrape arbitrary directory structures and "load them into the database" - except here we use a managed directory structure (the "vault") with plain Markdown.

This "vault" is the database.

We don't store the actual calculation's data (too big), but represent it in our knowledge graph as a Markdown (.md) note with the automatically extracted metadata and links to other notes that e.g. use the same geometry.

All the metadata is stored in the YAML frontmatter of each note:

---
charge: 0
mult: 1
date: '2024-06-05'
geometry: '47 ...'
input: '! D4 TPSSh ..'
..
---

# Notes

Experimenting with increased grid size to converge [[link_to_previous, failed calc]]
...

The beauty is that we retain the information from failed experiments as well, without needing to hold onto the raw data itself. We only keep the knowledge we gained from the experiment.

By (automatically) creating provenance trees (i.e. calculation "timelines", what led to what etc) we can, in the future, pick a specific result and export its provenance tree only. This way we can fully reproduce a given result with minimal needed experiments.

Because all the notes are plain .md files, the whole vault can be versioned (and shared?) with git.

The links are also important for e.g. selecting a bunch of calculations, and then exporting them as a fully self-contained vault, or building a citation bibliography from them, or compiling geometry tables for the Supporting Information, or archiving them for long-term storage, ...

By defining custom code-fences, one can create new experiments direclty in the vault and then have a runner run them. Imagine a code block like

! D4 TPSSh OPT FREQ

and linking a geometry. Then run e.g. uvx qcdb --run /path/to/vault to detect and run such experiments automatically.

One also gets to use the whole Obsidian ecosystem to directly work with the knowledge graph:

  1. use regular markdown notes to link e.g. meeting notes or papers with experiments
  2. write short notes on insights gained, and link them - create a network of knowledge, and how it came to be (reproducibly!)
  3. use obsidian bases or the dataview plugin to create tables straight from the notes
  4. use excalidraw plugin for visual note taking and experiment design

Metadata

Release files for qcdb 0.2.1

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

Source distribution (sdist)

Source distribution for qcdb 0.2.1
File Size Uploaded
qcdb-0.2.1.tar.gz 54.6 kB Details

Built distribution (wheel)

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

Total release size: 61.0 kB

Release files / qcdb-0.2.1.tar.gz

Download URL qcdb-0.2.1.tar.gz
Size 54.6 kB
Tags Source
SHA-256 checksum
How to use checksums
667fa1c3c751a040c87cfec668a0c6ff271a74a72b447f6f2505ce43f027361a
BLAKE2b-256 checksum
How to use checksums
27f17a9c69490f81bbb90a497eee2e663bf17043401ea3db3436ac20491e28be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.9

Release files / qcdb-0.2.1-py3-none-any.whl

Download URL qcdb-0.2.1-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8a89b96c8386783e2906c8c6ea0e52da733636d187d8baaa747777425925fc1
BLAKE2b-256 checksum
How to use checksums
bcbd0b39f26f9e1412f571502206605af540391684823a66f207174cda6ef69c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.9

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.1

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