|
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() |