Author: | Lukas Turcani |
---|---|
Docs: | https://atomlite.readthedocs.io |
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.
pip install atomlite
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 │ └────────┴─────────┴─────────┘