jannisborn's picture
Duplicate from jannisborn/gt4sd-huggingface
e3475d1
import logging
from collections import defaultdict
from typing import List
import mols2grid
import pandas as pd
logger = logging.getLogger(__name__)
logger.addHandler(logging.NullHandler())
def draw_grid_generate(
samples: List[str],
seeds: List[str] = [],
n_cols: int = 3,
size=(140, 200),
) -> str:
"""
Uses mols2grid to draw a HTML grid for the generated molecules
Args:
samples: The generated samples.
n_cols: Number of columns in grid. Defaults to 5.
size: Size of molecule in grid. Defaults to (140, 200).
Returns:
HTML to display
"""
result = defaultdict(list)
result.update(
{
"SMILES": seeds + samples,
"Name": [f"Seed_{i}" for i in range(len(seeds))]
+ [f"Generated_{i}" for i in range(len(samples))],
},
)
result_df = pd.DataFrame(result)
obj = mols2grid.display(
result_df,
tooltip=list(result.keys()),
height=1100,
n_cols=n_cols,
name="Results",
size=size,
)
return obj.data