import gradio as gr from rdkit.Chem import Draw from rdkit import Chem import selfies as sf def greet1(name): return name def greet2(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 greeter_1 = gr.Interface(greet1, inputs="text", outputs="text") greeter_2 = gr.Interface(greet2 , inputs="text", outputs="image") demo = gr.Parallel(greeter_1, greeter_2) #iface = gr.Interface(fn=greet, inputs="text", outputs="image", title="Molecular Language Model as Multi-task Generator", # ) #iface.launch()