wangjin2000 commited on
Commit
722365c
·
verified ·
1 Parent(s): 36de84f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -5
app.py CHANGED
@@ -33,7 +33,24 @@ from accelerate import Accelerator
33
  # Imports specific to the custom peft lora model
34
  from peft import get_peft_config, PeftModel, PeftConfig, get_peft_model, LoraConfig, TaskType
35
 
36
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  # Helper Functions and Data Preparation
38
  def truncate_labels(labels, max_length):
39
  """Truncate labels to the specified max_length."""
@@ -374,13 +391,33 @@ with demo:
374
  value=PEFT_MODEL_OPTIONS[0],
375
  label="PEFT Model Name",
376
  interactive = True,
377
- )
378
- with gr.Column(scale=0.5, variant="compact"):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
379
  finetune_button = gr.Button(
380
  value="Finetune Pre-trained Model",
381
  interactive=True,
382
  variant="primary",
383
  )
 
384
  with gr.Row():
385
  finetune_output_text = gr.Textbox(
386
  lines=1,
@@ -388,7 +425,18 @@ with demo:
388
  label="Finetune Status",
389
  placeholder="Finetune Status Shown Here",
390
  )
391
-
 
 
 
 
 
 
 
 
 
 
 
392
  # "Finetune Pre-trained Model" actions
393
  finetune_button.click(
394
  fn = train_function_no_sweeps,
@@ -396,5 +444,7 @@ with demo:
396
  outputs = [finetune_output_text],
397
  )
398
 
399
-
 
 
400
  demo.launch()
 
33
  # Imports specific to the custom peft lora model
34
  from peft import get_peft_config, PeftModel, PeftConfig, get_peft_model, LoraConfig, TaskType
35
 
36
+ from plot_pdb import plot_struc
37
+
38
+ def suggest(option):
39
+ if option == "Plastic degradation protein":
40
+ suggestion = "MGSSHHHHHHSSGLVPRGSHMRGPNPTAASLEASAGPFTVRSFTVSRPSGYGAGTVYYPTNAGGTVGAIAIVPGYTARQSSIKWWGPRLASHGFVVITIDTNSTLDQPSSRSSQQMAALRQVASLNGTSSSPIYGKVDTARMGVMGWSMGGGGSLISAANNPSLKAAAPQAPWDSSTNFSSVTVPTLIFACENDSIAPVNSSALPIYDSMSRNAKQFLEINGGSHSCANSGNSNQALIGKKGVAWMKRFMDNDTRYSTFACENPNSTRVSDFRTANCSLEDPAANKARKEAELAAATAEQ"
41
+ elif option == "Default protein":
42
+ #suggestion = "MAPLRKTYVLKLYVAGNTPNSVRALKTLNNILEKEFKGVYALKVIDVLKNPQLAEEDKILATPTLAKVLPPPVRRIIGDLSNREKVLIGLDLLYEEIGDQAEDDLGLE"
43
+ suggestion = "MAVPETRPNHTIYINNLNEKIKKDELKKSLHAIFSRFGQILDILVSRSLKMRGQAFVIFKEVSSATNALRSMQGFPFYDKPMRIQYAKTDSDIIAKMKGT"
44
+ elif option == "Antifreeze protein":
45
+ suggestion = "QCTGGADCTSCTGACTGCGNCPNAVTCTNSQHCVKANTCTGSTDCNTAQTCTNSKDCFEANTCTDSTNCYKATACTNSSGCPGH"
46
+ elif option == "AI Generated protein":
47
+ suggestion = "MSGMKKLYEYTVTTLDEFLEKLKEFILNTSKDKIYKLTITNPKLIKDIGKAIAKAAEIADVDPKEIEEMIKAVEENELTKLVITIEQTDDKYVIKVELENEDGLVHSFEIYFKNKEEMEKFLELLEKLISKLSGS"
48
+ elif option == "7-bladed propeller fold":
49
+ suggestion = "VKLAGNSSLCPINGWAVYSKDNSIRIGSKGDVFVIREPFISCSHLECRTFFLTQGALLNDKHSNGTVKDRSPHRTLMSCPVGEAPSPYNSRFESVAWSASACHDGTSWLTIGISGPDNGAVAVLKYNGIITDTIKSWRNNILRTQESECACVNGSCFTVMTDGPSNGQASYKIFKMEKGKVVKSVELDAPNYHYEECSCYPNAGEITCVCRDNWHGSNRPWVSFNQNLEYQIGYICSGVFGDNPRPNDGTGSCGPVSSNGAYGVKGFSFKYGNGVWIGRTKSTNSRSGFEMIWDPNGWTETDSSFSVKQDIVAITDWSGYSGSFVQHPELTGLDCIRPCFWVELIRGRPKESTIWTSGSSISFCGVNSDTVGWSWPDGAELPFTIDK"
50
+ else:
51
+ suggestion = ""
52
+ return suggestion
53
+
54
  # Helper Functions and Data Preparation
55
  def truncate_labels(labels, max_length):
56
  """Truncate labels to the specified max_length."""
 
391
  value=PEFT_MODEL_OPTIONS[0],
392
  label="PEFT Model Name",
393
  interactive = True,
394
+ )
395
+ with gr.Column(variant="compact"):
396
+ name = gr.Dropdown(
397
+ label="Choose a Sample Protein",
398
+ value="Default protein",
399
+ choices=["Default protein", "Antifreeze protein", "Plastic degradation protein", "AI Generated protein", "7-bladed propeller fold", "custom"]
400
+ )
401
+ gr.Markdown(
402
+ """Predict binding site and Plot structure for selected protein sequence:"""
403
+ )
404
+ with gr.Row():
405
+ with gr.Column(variant="compact", scale = 8):
406
+ input_seq = gr.Textbox(
407
+ lines=1,
408
+ max_lines=12,
409
+ label="Protein sequency to be predicted:",
410
+ value="MAVPETRPNHTIYINNLNEKIKKDELKKSLHAIFSRFGQILDILVSRSLKMRGQAFVIFKEVSSATNALRSMQGFPFYDKPMRIQYAKTDSDIIAKMKGT",
411
+ placeholder="Paste your protein sequence here...",
412
+ interactive = True,
413
+ )
414
+ with gr.Column(variant="compact", scale = 2):
415
  finetune_button = gr.Button(
416
  value="Finetune Pre-trained Model",
417
  interactive=True,
418
  variant="primary",
419
  )
420
+ plot_struc_btn = gr.Button(value = "Plot ESMFold Predicted Structure ", variant="primary")
421
  with gr.Row():
422
  finetune_output_text = gr.Textbox(
423
  lines=1,
 
425
  label="Finetune Status",
426
  placeholder="Finetune Status Shown Here",
427
  )
428
+ with gr.Row():
429
+ output_viewer = gr.HTML()
430
+ output_file = gr.File(
431
+ label="Download as Text File",
432
+ file_count="single",
433
+ type="filepath",
434
+ interactive=False,
435
+ )
436
+
437
+ # select protein sample
438
+ name.change(fn=suggest, inputs=name, outputs=input_seq)
439
+
440
  # "Finetune Pre-trained Model" actions
441
  finetune_button.click(
442
  fn = train_function_no_sweeps,
 
444
  outputs = [finetune_output_text],
445
  )
446
 
447
+ # plot protein structure
448
+ plot_struc_btn.click(fn=plot_struc, inputs=input_seq, outputs=[output_file, output_viewer])
449
+
450
  demo.launch()