Spaces:
Running
Running
from lynxkite.core.ops import op | |
import pandas as pd | |
import base64 | |
import io | |
def pil_to_data(image): | |
buffer = io.BytesIO() | |
image.save(buffer, format="png") | |
b64 = base64.b64encode(buffer.getvalue()).decode("utf-8") | |
return "data:image/png;base64," + b64 | |
def smiles_to_data(smiles): | |
import rdkit | |
m = rdkit.Chem.MolFromSmiles(smiles) | |
if m is None: | |
return None | |
img = rdkit.Chem.Draw.MolToImage(m) | |
data = pil_to_data(img) | |
return data | |
def draw_molecules(df: pd.DataFrame, *, smiles_column: str, image_column: str = "image"): | |
df = df.copy() | |
df[image_column] = df[smiles_column].apply(smiles_to_data) | |
return df | |