import gradio as gr from igfold import IgFoldRunner import os import random def read_mol(molpath): with open(molpath, "r") as fp: lines = fp.readlines() mol = "" for l in lines: mol += l return mol def molecule(input_pdb): mol = read_mol(input_pdb) x = ( """
""" ) return f"""'{seq}'
""" def validate(seq): alphabet = set('ACDEFGHIKLMNPQRSTVWY') leftover = set(seq.upper()) - alphabet return not leftover def pred_seq(seq): seq = seq.upper() is_valid = validate(seq) if is_valid: sequences = { "H": seq } f_name = ''.join([random.choice("ACDEFGHIKLMNPQRSTVWY") for _ in range(15)]) pred_pdb = f"{f_name}.pdb" igfold = IgFoldRunner() igfold.fold( pred_pdb, sequences=sequences, do_refine=False, do_renum=False, ) html = molecule(pred_pdb) else: html = "ERROR! Not valid sequence
" return (html) iface = gr.Interface(fn=pred_seq, inputs="text", outputs=gr.HTML()) iface.launch(share = True)