import gradio as gr import numpy as np from tensorflow.keras.models import load_model # Load model model = load_model("ldh_predictor.h5") # Encoding function aa_to_int = {aa:i+1 for i, aa in enumerate('ACDEFGHIKLMNPQRSTVWY')} max_length = 500 def predict_ldh(sequence): encoded = [aa_to_int.get(aa, 0) for aa in sequence[:max_length]] if len(encoded) < max_length: encoded += [0] * (max_length - len(encoded)) prob = model.predict(np.array([encoded]))[0][0] return {"LDH": float(prob), "Not LDH": float(1-prob)} # Gradio interface interface = gr.Interface( fn=predict_ldh, inputs=gr.Textbox(lines=5, placeholder="Paste protein sequence...", label="Protein Sequence"), outputs=gr.Label(label="Prediction"), title="🧬 DeepEnzyme: LDH Classifier", examples=[ ["MATLKDQLIYNLLKEEQTPQNKITVVGVGAVGMACAISILMKDLADELALVDVIEDKLKGEMMDLQHGSLFLRTPKIVSGKDYNVTANSKLVIITAGARQQEGESRLNLVQRNVNIFKFIIPNVVKYSPNCKLLIVSNPVDILTYVAWKISGFPKNRVIGSGCNLDSARFRYLMGERLGVHPLSCHGWVLGEHGDSSVPVWSGMNVAGVSLKTLHPDLGTDKDKEQWKEVHKQVVESAYEVIKLKGYTSWAIGLSVADLAESIMKNLRRVHPVSTMIKGLYGIKDDVFLSVPCILGQNGISDLVKVTLTSEEEARLKKSADTLWGIQKELQF"], ["MSEPIRVLVTGAAGQIAYSLLYSIGNGSVFGKDQPIILVLLDITPMMGVLDGVLMELQDCALPLLKDVIATDKEDVAFKDLDVAILVGSMPRREGMERKDLLKANVKIFKSQGAALDKYAKKSVKVIVVGNPANTNCLTASKSAPSIPKENFSCLTRLDHNRAKAQIALKLGVTANDVKNVIIWGNHSSTQYPDVNHAKVKLQGKEVGVYEALKDDSWLKGEFVTTVQQRGAAVIKARKLSSAMSAAKAICDHVRDIWFGTPEGEFVSMGVISDGNSYGVPDDLLYSFPVVIKNKTWKFVEGLPINDFSREKMDLTAKELTEEKESAFEFLSSA"] ], description="Predict whether a protein is Lactate Dehydrogenase (LDH) using deep learning." ) interface.launch()