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