Skip to content

lukasturcani/atomlite

Repository files navigation

Author: Lukas Turcani
Docs:https://atomlite.readthedocs.io

AtomLite

AtomLite is a Python library for simple molecular database on top of SQLite.

For an alternative to AtomLite, which provides stronger integration with RDKit, and a greater focus on cheminformatics, see chemicalite.

Installation

pip install atomlite

Quickstart

You can see a lot more examples in our docs but here is a taste of using AtomLite:

import atomlite
import rdkit.Chem as rdkit
# Create a database.
db = atomlite.Database("molecules.db")
# Create database entries.
entry1 = atomlite.Entry.from_rdkit("first", rdkit.MolFromSmiles("C"), {"prop1": "hi", "prop2": 100})
entry2 = atomlite.Entry.from_rdkit("second", rdkit.MolFromSmiles("CN"), {"prop1": "thing", "prop2": 203})
# Add entries to database.
db.add_entries([entry1, entry2])
# Retrieve entries from database.
for entry in db.get_entries(["first", "second"]):
  molecule = atomlite.json_to_rdkit(entry.molecule)
  print(entry.properties)
{'prop1': 'hi', 'prop2': 100}
{'prop1': 'thing', 'prop2': 203}
db.get_property_df(["$.prop1", "$.prop2"])
shape: (2, 3)
┌────────┬─────────┬─────────┐
│ key    ┆ $.prop1 ┆ $.prop2 │
│ ---    ┆ ---     ┆ ---     │
│ str    ┆ str     ┆ i64     │
╞════════╪═════════╪═════════╡
│ first  ┆ hi      ┆ 100     │
│ second ┆ thing   ┆ 203     │
└────────┴─────────┴─────────┘