import gradio as gr from rdkit.Chem import Draw from rdkit import Chem import selfies as sf def greet(name): sf_output = ['[C][=C][C][=C][C][=C][Ring1][=Branch1]', '[C][=C][C][=C][C][=C][C][=C][Ring1][=Branch1]', '[C][=C][C][=C][C][=C][Ring1][=Branch1][C][=C][C][=C]', '[C][=C][C][=C][C][=C][Ring1][=Branch1][C@H1][C][=C][C]', '[C][=C][C][=C][C][=C][Ring1][=Branch1][C@H1][=C][C][=C]'] smis = [sf.decoder(i) for i in sf_output] mols = [] for smi in smis: mol = Chem.MolFromSmiles(smi) mols.append(mol) img = Draw.MolsToGridImage( mols, molsPerRow=4, subImgSize=(200,200), legends=['' for x in mols] ) return img iface = gr.Interface(fn=greet, inputs="text", outputs="images", title="Molecular Language Model as Multi-task Generator", ) iface.launch()