Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
@@ -544,104 +544,190 @@ with gr.Blocks(theme='ParityError/Interstellar') as demo:
|
|
544 |
gr.Markdown("# ๐ฆธโโ๏ธ ์ํผํ์ด๋ก ๋จ๋ฐฑ์ง ๋ง๋ค๊ธฐ")
|
545 |
|
546 |
with gr.Tabs():
|
547 |
-
with gr.TabItem("ํ์ด๋ก ๋์์ธ"):
|
|
|
|
|
|
|
|
|
|
|
548 |
# ํ์ด๋ก ๊ธฐ๋ณธ ์ ๋ณด
|
549 |
-
hero_name = gr.Textbox(
|
|
|
|
|
|
|
|
|
550 |
|
551 |
# ๋ฅ๋ ฅ์น ์ค์
|
552 |
gr.Markdown("### ๐ช ํ์ด๋ก ๋ฅ๋ ฅ์น ์ค์ ")
|
553 |
with gr.Row():
|
554 |
-
strength = gr.Slider(
|
555 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
556 |
|
557 |
with gr.Row():
|
558 |
-
speed = gr.Slider(
|
559 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
560 |
|
561 |
# ํ์ด๋ก ํฌ๊ธฐ ์ค์
|
562 |
-
hero_size = gr.Slider(
|
|
|
|
|
|
|
|
|
|
|
563 |
|
564 |
# ํน์ ๋ฅ๋ ฅ ์ค์
|
565 |
with gr.Accordion("๐ ํน์ ๋ฅ๋ ฅ", open=False):
|
|
|
|
|
|
|
|
|
|
|
|
|
566 |
special_ability = gr.CheckboxGroup(
|
567 |
choices=["์๊ฐ ํ๋ณต", "์๊ฑฐ๋ฆฌ ๊ณต๊ฒฉ", "๋ฐฉ์ด๋ง ์์ฑ"],
|
568 |
label="ํน์ ๋ฅ๋ ฅ ์ ํ"
|
569 |
)
|
570 |
|
571 |
# ์์ฑ ๋ฒํผ
|
572 |
-
create_btn = gr.Button("ํ์ด๋ก ์์ฑ!", variant="primary")
|
573 |
-
|
574 |
-
with gr.TabItem("Inputs"):
|
575 |
-
gr.Markdown("""## INPUTS""")
|
576 |
-
gr.Markdown("""#### Start Sequence
|
577 |
-
Specify the protein length for complete unconditional generation, or scaffold a motif (or your name) using the custom sequence input""")
|
578 |
-
seq_opt = gr.Radio(["protein length","custom sequence"], label="How would you like to specify the starting sequence?", value='protein length')
|
579 |
|
580 |
-
|
581 |
-
|
|
|
|
|
|
|
582 |
|
583 |
-
seq_opt.
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
592 |
|
593 |
-
secondary_structure = gr.Textbox(
|
|
|
|
|
|
|
|
|
|
|
594 |
|
595 |
with gr.Column():
|
596 |
-
helix_bias = gr.Slider(
|
597 |
-
|
598 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
599 |
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
with gr.Row():
|
614 |
-
hydrophobic_target_score = gr.Textbox(label="hydrophobic score", lines=1, placeholder='hydrophobic score to target (negative score is good for solublility)')
|
615 |
-
hydrophobic_potential = gr.Textbox(label="hydrophobic potential scale", lines=1, placeholder='hydrophobic potential scale (recomended range 1.0-2.0)')
|
616 |
|
617 |
-
with gr.Accordion(label='Diffusion Params',open=False):
|
618 |
-
gr.Markdown("""Increasing T to more steps can be helpful for harder design challenges, sampling from different distributions can change the sequence and structural composition""")
|
619 |
-
with gr.Row():
|
620 |
-
num_steps = gr.Textbox(label="T", lines=1, placeholder='number of diffusion steps (25 or less will speed things up)')
|
621 |
-
noise = gr.Dropdown(['normal','gmm2 [-1,1]','gmm3 [-1,0,1]'], label='noise type', value='normal')
|
622 |
-
|
623 |
-
with gr.TabItem("Motif Selection"):
|
624 |
-
gr.Markdown("""### Motif Selection Preview""")
|
625 |
-
gr.Markdown('Contigs explained: to grab residues (seq and str) on a pdb chain you will provide the chain letter followed by a range of residues as indexed in the pdb file for example (A3-10) is the syntax to select residues 3-10 on chain A (the chain always needs to be specified). To add diffused residues to either side of this motif you can specify a range or discrete value without a chain letter infront. To add 15 residues before the motif and 20-30 residues (randomly sampled) after use the following syntax: 15,A3-10,20-30 commas are used to separate regions selected from the pdb and designed (diffused) resiudes which will be added. ')
|
626 |
-
pdb_id_code = gr.Textbox(label="PDB ID", lines=1, placeholder='INPUT PDB ID TO FETCH (ex. 1DPX)', visible=True)
|
627 |
-
contigs = gr.Textbox(label="contigs", lines=1, placeholder='specify contigs to grab particular residues from pdb ()', visible=True)
|
628 |
-
gr.Markdown('Using the same contig syntax, seq or str of input motif residues can be masked, allowing the model to hold strucutre fixed and design sequence or vice-versa')
|
629 |
with gr.Row():
|
630 |
-
seq_mask = gr.Textbox(
|
631 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
632 |
preview_viewer = gr.HTML()
|
633 |
-
rewrite_pdb = gr.File(label='
|
634 |
-
preview_btn = gr.Button("
|
635 |
-
|
636 |
-
with gr.TabItem("
|
637 |
-
gr.Markdown("""
|
638 |
-
|
|
|
|
|
|
|
639 |
with gr.Row():
|
640 |
-
fasta_msa = gr.File(
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
645 |
|
646 |
with gr.Column():
|
647 |
gr.Markdown("## ๐ฆธโโ๏ธ ํ์ด๋ก ํ๋กํ")
|
@@ -651,18 +737,21 @@ with gr.Blocks(theme='ParityError/Interstellar') as demo:
|
|
651 |
|
652 |
# ํ์ด๋ก ์ค๋ช
|
653 |
hero_description = gr.Textbox(label="ํ์ด๋ก ํน์ฑ", lines=3)
|
654 |
-
|
655 |
|
656 |
-
gr.Markdown("
|
657 |
-
gr.Markdown("
|
658 |
-
plddt_plot = gr.Plot(label='
|
659 |
-
gr.Markdown("
|
660 |
-
output_seq = gr.Textbox(label="
|
661 |
-
gr.Markdown("
|
662 |
-
output_pdb = gr.File(label="
|
663 |
-
gr.Markdown("
|
664 |
output_viewer = gr.HTML()
|
665 |
|
|
|
|
|
|
|
|
|
666 |
# ์ด๋ฒคํธ ์ฐ๊ฒฐ
|
667 |
preview_btn.click(get_motif_preview,[pdb_id_code, contigs],[preview_viewer, rewrite_pdb])
|
668 |
pssm_gen_btn.click(get_pssm,[fasta_msa,input_pssm],[pssm_view, pssm])
|
|
|
544 |
gr.Markdown("# ๐ฆธโโ๏ธ ์ํผํ์ด๋ก ๋จ๋ฐฑ์ง ๋ง๋ค๊ธฐ")
|
545 |
|
546 |
with gr.Tabs():
|
547 |
+
with gr.TabItem("๐ฆธโโ๏ธ ํ์ด๋ก ๋์์ธ"):
|
548 |
+
gr.Markdown("""
|
549 |
+
### โจ ๋น์ ๋ง์ ํน๋ณํ ํ์ด๋ก๋ฅผ ๋ง๋ค์ด๋ณด์ธ์!
|
550 |
+
๊ฐ ๋ฅ๋ ฅ์น๋ฅผ ์กฐ์ ํ๋ฉด ํ์ด๋ก์ DNA๊ฐ ์๋์ผ๋ก ์ค๊ณ๋ฉ๋๋ค.
|
551 |
+
""")
|
552 |
+
|
553 |
# ํ์ด๋ก ๊ธฐ๋ณธ ์ ๋ณด
|
554 |
+
hero_name = gr.Textbox(
|
555 |
+
label="ํ์ด๋ก ์ด๋ฆ",
|
556 |
+
placeholder="๋น์ ์ ํ์ด๋ก ์ด๋ฆ์ ์ง์ด์ฃผ์ธ์!",
|
557 |
+
info="ํ์ด๋ก์ ์ ์ฒด์ฑ์ ๋ํ๋ด๋ ์ด๋ฆ์ ์
๋ ฅํ์ธ์"
|
558 |
+
)
|
559 |
|
560 |
# ๋ฅ๋ ฅ์น ์ค์
|
561 |
gr.Markdown("### ๐ช ํ์ด๋ก ๋ฅ๋ ฅ์น ์ค์ ")
|
562 |
with gr.Row():
|
563 |
+
strength = gr.Slider(
|
564 |
+
minimum=0.0, maximum=0.05,
|
565 |
+
label="๐ช ์ด๊ฐ๋ ฅ(๊ทผ๋ ฅ)",
|
566 |
+
value=0.02,
|
567 |
+
info="๋จ๋จํ ๋ฒ ํ์ํธ ๊ตฌ์กฐ๋ก ๊ฐ๋ ฅํ ํ์ ์์ฑํฉ๋๋ค"
|
568 |
+
)
|
569 |
+
flexibility = gr.Slider(
|
570 |
+
minimum=0.0, maximum=0.05,
|
571 |
+
label="๐คธโโ๏ธ ์ ์ฐ์ฑ",
|
572 |
+
value=0.02,
|
573 |
+
info="๋์ ํ ์ํํฌ๋ฆญ์ค ๊ตฌ์กฐ๋ก ์ ์ฐํ ์์ง์์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค"
|
574 |
+
)
|
575 |
|
576 |
with gr.Row():
|
577 |
+
speed = gr.Slider(
|
578 |
+
minimum=0.0, maximum=0.20,
|
579 |
+
label="โก ์คํผ๋",
|
580 |
+
value=0.1,
|
581 |
+
info="๋ฃจํ ๊ตฌ์กฐ๋ก ๋น ๋ฅธ ์์ง์์ ๊ตฌํํฉ๋๋ค"
|
582 |
+
)
|
583 |
+
defense = gr.Slider(
|
584 |
+
minimum=-10, maximum=10,
|
585 |
+
label="๐ก๏ธ ๋ฐฉ์ด๋ ฅ",
|
586 |
+
value=0,
|
587 |
+
info="์์: ์์ค ํ๋์ ํนํ, ์์: ์ง์ ํ๋์ ํนํ"
|
588 |
+
)
|
589 |
|
590 |
# ํ์ด๋ก ํฌ๊ธฐ ์ค์
|
591 |
+
hero_size = gr.Slider(
|
592 |
+
minimum=50, maximum=200,
|
593 |
+
label="๐ ํ์ด๋ก ํฌ๊ธฐ",
|
594 |
+
value=100,
|
595 |
+
info="ํ์ด๋ก์ ์ ์ฒด์ ์ธ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค"
|
596 |
+
)
|
597 |
|
598 |
# ํน์ ๋ฅ๋ ฅ ์ค์
|
599 |
with gr.Accordion("๐ ํน์ ๋ฅ๋ ฅ", open=False):
|
600 |
+
gr.Markdown("""
|
601 |
+
ํน์ ๋ฅ๋ ฅ์ ์ ํํ๋ฉด ํ์ด๋ก์ DNA์ ํน๋ณํ ๊ตฌ์กฐ๊ฐ ์ถ๊ฐ๋ฉ๋๋ค.
|
602 |
+
- ์๊ฐ ํ๋ณต: ๋จ๋ฐฑ์ง ๊ตฌ์กฐ ๋ณต๊ตฌ ๋ฅ๋ ฅ ๊ฐํ
|
603 |
+
- ์๊ฑฐ๋ฆฌ ๊ณต๊ฒฉ: ํน์ํ ๊ตฌ์กฐ์ ๋์ถ๋ถ ํ์ฑ
|
604 |
+
- ๋ฐฉ์ด๋ง ์์ฑ: ์์ ์ ์ธ ๋ณดํธ์ธต ๊ตฌ์กฐ ์์ฑ
|
605 |
+
""")
|
606 |
special_ability = gr.CheckboxGroup(
|
607 |
choices=["์๊ฐ ํ๋ณต", "์๊ฑฐ๋ฆฌ ๊ณต๊ฒฉ", "๋ฐฉ์ด๋ง ์์ฑ"],
|
608 |
label="ํน์ ๋ฅ๋ ฅ ์ ํ"
|
609 |
)
|
610 |
|
611 |
# ์์ฑ ๋ฒํผ
|
612 |
+
create_btn = gr.Button("๐งฌ ํ์ด๋ก ์์ฑ!", variant="primary", scale=2)
|
|
|
|
|
|
|
|
|
|
|
|
|
613 |
|
614 |
+
with gr.TabItem("๐งฌ ํ์ด๋ก DNA ์ค๊ณ"):
|
615 |
+
gr.Markdown("""
|
616 |
+
### ๐งช ํ์ด๋ก DNA ๊ณ ๊ธ ์ค์
|
617 |
+
ํ์ด๋ก์ ์ ์ ์ ๊ตฌ์กฐ๋ฅผ ๋ ์ธ๋ฐํ๊ฒ ์กฐ์ ํ ์ ์์ต๋๋ค.
|
618 |
+
""")
|
619 |
|
620 |
+
seq_opt = gr.Radio(
|
621 |
+
["์๋ ์ค๊ณ", "์ง์ ์
๋ ฅ"],
|
622 |
+
label="DNA ์ค๊ณ ๋ฐฉ์",
|
623 |
+
value="์๋ ์ค๊ณ"
|
624 |
+
)
|
625 |
+
|
626 |
+
sequence = gr.Textbox(
|
627 |
+
label="DNA ์ํ์ค",
|
628 |
+
lines=1,
|
629 |
+
placeholder='์ฌ์ฉ ๊ฐ๋ฅํ ์๋ฏธ๋
ธ์ฐ: A,C,D,E,F,G,H,I,K,L,M,N,P,Q,R,S,T,V,W,Y (X๋ ๋ฌด์์)',
|
630 |
+
visible=False
|
631 |
+
)
|
632 |
+
seq_len = gr.Slider(
|
633 |
+
minimum=5.0, maximum=250.0,
|
634 |
+
label="DNA ๊ธธ์ด",
|
635 |
+
value=100,
|
636 |
+
visible=True
|
637 |
+
)
|
638 |
+
|
639 |
+
with gr.Accordion(label='๐ฆด ๊ณจ๊ฒฉ ๊ตฌ์กฐ ์ค์ ', open=True):
|
640 |
+
gr.Markdown("""
|
641 |
+
ํ์ด๋ก์ ๊ธฐ๋ณธ ๊ณจ๊ฒฉ ๊ตฌ์กฐ๋ฅผ ์ค์ ํฉ๋๋ค.
|
642 |
+
- ๋์ ํ ๊ตฌ์กฐ: ์ ์ฐํ๊ณ ํ๋ ฅ์๋ ์์ง์
|
643 |
+
- ๋ณํํ ๊ตฌ์กฐ: ๋จ๋จํ๊ณ ๊ฐ๋ ฅํ ํ
|
644 |
+
- ๊ณ ๋ฆฌํ ๊ตฌ์กฐ: ๋น ๋ฅด๊ณ ๋ฏผ์ฒฉํ ์์ง์
|
645 |
+
""")
|
646 |
+
sec_str_opt = gr.Radio(
|
647 |
+
["์ฌ๋ผ์ด๋๋ก ์ค์ ", "์ง์ ์
๋ ฅ"],
|
648 |
+
label="๊ณจ๊ฒฉ ๊ตฌ์กฐ ์ค์ ๋ฐฉ์",
|
649 |
+
value="์ฌ๋ผ์ด๋๋ก ์ค์ "
|
650 |
+
)
|
651 |
|
652 |
+
secondary_structure = gr.Textbox(
|
653 |
+
label="๊ณจ๊ฒฉ ๊ตฌ์กฐ",
|
654 |
+
lines=1,
|
655 |
+
placeholder='H:๋์ ํ, S:๋ณํํ, L:๊ณ ๋ฆฌํ, X:์๋์ค์ ',
|
656 |
+
visible=False
|
657 |
+
)
|
658 |
|
659 |
with gr.Column():
|
660 |
+
helix_bias = gr.Slider(
|
661 |
+
minimum=0.0, maximum=0.05,
|
662 |
+
label="๋์ ํ ๊ตฌ์กฐ ๋น์จ",
|
663 |
+
visible=True
|
664 |
+
)
|
665 |
+
strand_bias = gr.Slider(
|
666 |
+
minimum=0.0, maximum=0.05,
|
667 |
+
label="๋ณํํ ๊ตฌ์กฐ ๋น์จ",
|
668 |
+
visible=True
|
669 |
+
)
|
670 |
+
loop_bias = gr.Slider(
|
671 |
+
minimum=0.0, maximum=0.20,
|
672 |
+
label="๊ณ ๋ฆฌํ ๊ตฌ์กฐ ๋น์จ",
|
673 |
+
visible=True
|
674 |
+
)
|
675 |
+
|
676 |
+
with gr.TabItem("๐งช ํ์ด๋ก ์ ์ ์ ๊ฐํ"):
|
677 |
+
gr.Markdown("""
|
678 |
+
### โก ๊ธฐ์กด ํ์ด๋ก์ DNA ํ์ฉ
|
679 |
+
๊ฐ๋ ฅํ ํ์ด๋ก์ DNA ์ผ๋ถ๋ฅผ ์๋ก์ด ํ์ด๋ก์๊ฒ ์ด์ํฉ๋๋ค.
|
680 |
+
""")
|
681 |
|
682 |
+
pdb_id_code = gr.Textbox(
|
683 |
+
label="ํ์ด๋ก DNA ์ฝ๋",
|
684 |
+
lines=1,
|
685 |
+
placeholder='๊ธฐ์กด ํ์ด๋ก์ DNA ์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์ (์: 1DPX)',
|
686 |
+
info="๊ณต๊ฐ๋ ํ์ด๋ก DNA ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฝ๋๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค"
|
687 |
+
)
|
688 |
+
|
689 |
+
contigs = gr.Textbox(
|
690 |
+
label="์ด์ํ DNA ์์ญ",
|
691 |
+
lines=1,
|
692 |
+
placeholder='์์: 15,A3-10,20-30',
|
693 |
+
info="์ด์ํ๊ณ ์ถ์ DNA ์์ญ์ ์ ํํ๊ณ ์๋ก์ด DNA๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค"
|
694 |
+
)
|
|
|
|
|
|
|
695 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
696 |
with gr.Row():
|
697 |
+
seq_mask = gr.Textbox(
|
698 |
+
label='๋ฅ๋ ฅ ์ฌ์ค๊ณ',
|
699 |
+
lines=1,
|
700 |
+
placeholder='์ ํํ ์์ญ์ ๋ฅ๋ ฅ์ ์๋กญ๊ฒ ๋์์ธ'
|
701 |
+
)
|
702 |
+
str_mask = gr.Textbox(
|
703 |
+
label='๊ตฌ์กฐ ์ฌ์ค๊ณ',
|
704 |
+
lines=1,
|
705 |
+
placeholder='์ ํํ ์์ญ์ ๊ตฌ์กฐ๋ฅผ ์๋กญ๊ฒ ๋์์ธ'
|
706 |
+
)
|
707 |
+
|
708 |
preview_viewer = gr.HTML()
|
709 |
+
rewrite_pdb = gr.File(label='ํ์ด๋ก DNA ํ์ผ')
|
710 |
+
preview_btn = gr.Button("๐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ", variant="secondary")
|
711 |
+
|
712 |
+
with gr.TabItem("๐ ํ์ด๋ก ๊ฐ๋ฌธ"):
|
713 |
+
gr.Markdown("""
|
714 |
+
### ๐ฐ ์๋ํ ํ์ด๋ก ๊ฐ๋ฌธ์ ์ ์ฐ
|
715 |
+
๊ฐ๋ ฅํ ํ์ด๋ก ๊ฐ๋ฌธ์ ํน์ฑ์ ๊ณ์นํ์ฌ ์๋ก์ด ํ์ด๋ก๋ฅผ ๋ง๋ญ๋๋ค.
|
716 |
+
""")
|
717 |
+
|
718 |
with gr.Row():
|
719 |
+
fasta_msa = gr.File(
|
720 |
+
label='๊ฐ๋ฌธ DNA ๋ฐ์ดํฐ',
|
721 |
+
info="ํ์ด๋ก ๊ฐ๋ฌธ์ DNA ์ ๋ณด๊ฐ ๋ด๊ธด ํ์ผ์ ์
๋ก๋ํ์ธ์"
|
722 |
+
)
|
723 |
+
input_pssm = gr.File(
|
724 |
+
label='๊ฐ๋ฌธ ํน์ฑ ๋ฐ์ดํฐ',
|
725 |
+
info="์ด๋ฏธ ๋ถ์๋ ๊ฐ๋ฌธ ํน์ฑ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ์
๋ก๋ํ์ธ์"
|
726 |
+
)
|
727 |
+
|
728 |
+
pssm = gr.File(label='๋ถ์๋ ๊ฐ๋ฌธ ํน์ฑ')
|
729 |
+
pssm_view = gr.Plot(label='๊ฐ๋ฌธ ํน์ฑ ๋ถ์ ๊ฒฐ๊ณผ')
|
730 |
+
pssm_gen_btn = gr.Button("โจ ๊ฐ๋ฌธ ํน์ฑ ๋ถ์", variant="secondary")
|
731 |
|
732 |
with gr.Column():
|
733 |
gr.Markdown("## ๐ฆธโโ๏ธ ํ์ด๋ก ํ๋กํ")
|
|
|
737 |
|
738 |
# ํ์ด๋ก ์ค๋ช
|
739 |
hero_description = gr.Textbox(label="ํ์ด๋ก ํน์ฑ", lines=3)
|
|
|
740 |
|
741 |
+
gr.Markdown("## ๐งฌ ํ์ด๋ก DNA ๋ถ์ ๊ฒฐ๊ณผ")
|
742 |
+
gr.Markdown("#### โก DNA ์์ ์ฑ ์ ์")
|
743 |
+
plddt_plot = gr.Plot(label='์์ ์ฑ ๋ถ์')
|
744 |
+
gr.Markdown("#### ๐ DNA ์ํ์ค")
|
745 |
+
output_seq = gr.Textbox(label="DNA ์์ด")
|
746 |
+
gr.Markdown("#### ๐พ DNA ๋ฐ์ดํฐ")
|
747 |
+
output_pdb = gr.File(label="DNA ํ์ผ")
|
748 |
+
gr.Markdown("#### ๐ฌ DNA ๊ตฌ์กฐ")
|
749 |
output_viewer = gr.HTML()
|
750 |
|
751 |
+
# ์ด๋ฒคํธ ์ฐ๊ฒฐ ๋ถ๋ถ์ ๋์ผํ๊ฒ ์ ์ง
|
752 |
+
|
753 |
+
|
754 |
+
|
755 |
# ์ด๋ฒคํธ ์ฐ๊ฒฐ
|
756 |
preview_btn.click(get_motif_preview,[pdb_id_code, contigs],[preview_viewer, rewrite_pdb])
|
757 |
pssm_gen_btn.click(get_pssm,[fasta_msa,input_pssm],[pssm_view, pssm])
|