Spaces:
Running
Running
ThorbenFroehlking
commited on
Commit
·
c5bfc38
1
Parent(s):
4db400d
Updated
Browse files- .ipynb_checkpoints/app-checkpoint.py +40 -38
- .ipynb_checkpoints/requirements-checkpoint.txt +0 -2
- app.py +40 -38
- requirements.txt +0 -2
.ipynb_checkpoints/app-checkpoint.py
CHANGED
@@ -7,7 +7,8 @@ from Bio.SeqUtils import seq1
|
|
7 |
from typing import Optional, Tuple
|
8 |
import numpy as np
|
9 |
import os
|
10 |
-
|
|
|
11 |
|
12 |
from model_loader import load_model
|
13 |
|
@@ -411,19 +412,7 @@ def molecule(input_pdb, residue_scores=None, segment='A'):
|
|
411 |
return f'<iframe width="100%" height="700" srcdoc="{html_content.replace(chr(34), """).replace(chr(39), "'")}"></iframe>'
|
412 |
|
413 |
# Gradio UI
|
414 |
-
with gr.Blocks(
|
415 |
-
/* Customize Gradio button colors */
|
416 |
-
#visualize-btn, #predict-btn {
|
417 |
-
background-color: #FF7300; /* Deep orange */
|
418 |
-
color: white;
|
419 |
-
border-radius: 5px;
|
420 |
-
padding: 10px;
|
421 |
-
font-weight: bold;
|
422 |
-
}
|
423 |
-
#visualize-btn:hover, #predict-btn:hover {
|
424 |
-
background-color: #CC5C00; /* Darkened orange on hover */
|
425 |
-
}
|
426 |
-
""") as demo:
|
427 |
gr.Markdown("# Protein Binding Site Prediction")
|
428 |
|
429 |
# Mode selection
|
@@ -437,23 +426,15 @@ with gr.Blocks(css="""
|
|
437 |
# Input components based on mode
|
438 |
pdb_input = gr.Textbox(value="2F6V", label="PDB ID", placeholder="Enter PDB ID here...")
|
439 |
pdb_file = gr.File(label="Upload PDB/CIF File", visible=False)
|
440 |
-
visualize_btn = gr.Button("Visualize Structure"
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
"model": 0,
|
445 |
-
"style": "cartoon",
|
446 |
-
"color": "whiteCarbon",
|
447 |
-
"residue_range": "",
|
448 |
-
"around": 0,
|
449 |
-
#"byres": False,
|
450 |
-
}
|
451 |
-
])
|
452 |
|
453 |
with gr.Row():
|
454 |
segment_input = gr.Textbox(value="A", label="Chain ID (protein)", placeholder="Enter Chain ID here...",
|
455 |
info="Choose in which chain to predict binding sites.")
|
456 |
-
prediction_btn = gr.Button("Predict Binding Site"
|
457 |
|
458 |
molecule_output = gr.HTML(label="Protein Structure")
|
459 |
explanation_vis = gr.Markdown("""
|
@@ -472,29 +453,50 @@ with gr.Blocks(css="""
|
|
472 |
if mode == "PDB ID":
|
473 |
return process_pdb(pdb_id, chain_id)
|
474 |
elif mode == "Upload File":
|
475 |
-
|
476 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
477 |
if ext == '.cif':
|
478 |
pdb_path = convert_cif_to_pdb(file_path)
|
479 |
else:
|
480 |
-
pdb_path= file_path
|
481 |
return process_pdb(pdb_path, chain_id)
|
482 |
else:
|
483 |
return "Error: Invalid mode selected", None, None
|
484 |
|
485 |
def fetch_interface(mode, pdb_id, pdb_file):
|
486 |
if mode == "PDB ID":
|
487 |
-
|
|
|
|
|
|
|
|
|
488 |
elif mode == "Upload File":
|
489 |
-
|
490 |
-
|
491 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
492 |
if ext == '.cif':
|
493 |
pdb_path = convert_cif_to_pdb(file_path)
|
494 |
else:
|
495 |
-
pdb_path= file_path
|
496 |
-
|
497 |
-
return
|
498 |
else:
|
499 |
return "Error: Invalid mode selected"
|
500 |
|
@@ -533,4 +535,4 @@ with gr.Blocks(css="""
|
|
533 |
outputs=[predictions_output, molecule_output, download_output]
|
534 |
)
|
535 |
|
536 |
-
demo.launch(
|
|
|
7 |
from typing import Optional, Tuple
|
8 |
import numpy as np
|
9 |
import os
|
10 |
+
# Remove the gradio_molecule3d import as it may be incompatible
|
11 |
+
# from gradio_molecule3d import Molecule3D
|
12 |
|
13 |
from model_loader import load_model
|
14 |
|
|
|
412 |
return f'<iframe width="100%" height="700" srcdoc="{html_content.replace(chr(34), """).replace(chr(39), "'")}"></iframe>'
|
413 |
|
414 |
# Gradio UI
|
415 |
+
with gr.Blocks() as demo:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
416 |
gr.Markdown("# Protein Binding Site Prediction")
|
417 |
|
418 |
# Mode selection
|
|
|
426 |
# Input components based on mode
|
427 |
pdb_input = gr.Textbox(value="2F6V", label="PDB ID", placeholder="Enter PDB ID here...")
|
428 |
pdb_file = gr.File(label="Upload PDB/CIF File", visible=False)
|
429 |
+
visualize_btn = gr.Button("Visualize Structure")
|
430 |
+
|
431 |
+
# Replace Molecule3D with HTML component
|
432 |
+
molecule_output2 = gr.HTML(label="Protein Structure")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
433 |
|
434 |
with gr.Row():
|
435 |
segment_input = gr.Textbox(value="A", label="Chain ID (protein)", placeholder="Enter Chain ID here...",
|
436 |
info="Choose in which chain to predict binding sites.")
|
437 |
+
prediction_btn = gr.Button("Predict Binding Site")
|
438 |
|
439 |
molecule_output = gr.HTML(label="Protein Structure")
|
440 |
explanation_vis = gr.Markdown("""
|
|
|
453 |
if mode == "PDB ID":
|
454 |
return process_pdb(pdb_id, chain_id)
|
455 |
elif mode == "Upload File":
|
456 |
+
try:
|
457 |
+
# Handle new Gradio file format
|
458 |
+
file_path = pdb_file.name
|
459 |
+
except AttributeError:
|
460 |
+
# For older Gradio versions that provided a tuple
|
461 |
+
if isinstance(pdb_file, tuple):
|
462 |
+
file_path = pdb_file[0]
|
463 |
+
else:
|
464 |
+
file_path = pdb_file
|
465 |
+
|
466 |
+
_, ext = os.path.splitext(file_path)
|
467 |
if ext == '.cif':
|
468 |
pdb_path = convert_cif_to_pdb(file_path)
|
469 |
else:
|
470 |
+
pdb_path = file_path
|
471 |
return process_pdb(pdb_path, chain_id)
|
472 |
else:
|
473 |
return "Error: Invalid mode selected", None, None
|
474 |
|
475 |
def fetch_interface(mode, pdb_id, pdb_file):
|
476 |
if mode == "PDB ID":
|
477 |
+
pdb_path = fetch_pdb(pdb_id)
|
478 |
+
if pdb_path:
|
479 |
+
mol_html = molecule(pdb_path)
|
480 |
+
return mol_html
|
481 |
+
return "Failed to fetch PDB"
|
482 |
elif mode == "Upload File":
|
483 |
+
try:
|
484 |
+
# Handle new Gradio file format
|
485 |
+
file_path = pdb_file.name
|
486 |
+
except AttributeError:
|
487 |
+
# For older Gradio versions that provided a tuple
|
488 |
+
if isinstance(pdb_file, tuple):
|
489 |
+
file_path = pdb_file[0]
|
490 |
+
else:
|
491 |
+
file_path = pdb_file
|
492 |
+
|
493 |
+
_, ext = os.path.splitext(file_path)
|
494 |
if ext == '.cif':
|
495 |
pdb_path = convert_cif_to_pdb(file_path)
|
496 |
else:
|
497 |
+
pdb_path = file_path
|
498 |
+
mol_html = molecule(pdb_path)
|
499 |
+
return mol_html
|
500 |
else:
|
501 |
return "Error: Invalid mode selected"
|
502 |
|
|
|
535 |
outputs=[predictions_output, molecule_output, download_output]
|
536 |
)
|
537 |
|
538 |
+
demo.launch()
|
.ipynb_checkpoints/requirements-checkpoint.txt
CHANGED
@@ -9,6 +9,4 @@ scikit-learn>=0.24.0
|
|
9 |
sentencepiece
|
10 |
huggingface_hub>=0.15.0
|
11 |
requests
|
12 |
-
gradio>=4.0,<5.0
|
13 |
-
gradio-molecule3d==0.0.1
|
14 |
biopython>=1.81
|
|
|
9 |
sentencepiece
|
10 |
huggingface_hub>=0.15.0
|
11 |
requests
|
|
|
|
|
12 |
biopython>=1.81
|
app.py
CHANGED
@@ -7,7 +7,8 @@ from Bio.SeqUtils import seq1
|
|
7 |
from typing import Optional, Tuple
|
8 |
import numpy as np
|
9 |
import os
|
10 |
-
|
|
|
11 |
|
12 |
from model_loader import load_model
|
13 |
|
@@ -411,19 +412,7 @@ def molecule(input_pdb, residue_scores=None, segment='A'):
|
|
411 |
return f'<iframe width="100%" height="700" srcdoc="{html_content.replace(chr(34), """).replace(chr(39), "'")}"></iframe>'
|
412 |
|
413 |
# Gradio UI
|
414 |
-
with gr.Blocks(
|
415 |
-
/* Customize Gradio button colors */
|
416 |
-
#visualize-btn, #predict-btn {
|
417 |
-
background-color: #FF7300; /* Deep orange */
|
418 |
-
color: white;
|
419 |
-
border-radius: 5px;
|
420 |
-
padding: 10px;
|
421 |
-
font-weight: bold;
|
422 |
-
}
|
423 |
-
#visualize-btn:hover, #predict-btn:hover {
|
424 |
-
background-color: #CC5C00; /* Darkened orange on hover */
|
425 |
-
}
|
426 |
-
""") as demo:
|
427 |
gr.Markdown("# Protein Binding Site Prediction")
|
428 |
|
429 |
# Mode selection
|
@@ -437,23 +426,15 @@ with gr.Blocks(css="""
|
|
437 |
# Input components based on mode
|
438 |
pdb_input = gr.Textbox(value="2F6V", label="PDB ID", placeholder="Enter PDB ID here...")
|
439 |
pdb_file = gr.File(label="Upload PDB/CIF File", visible=False)
|
440 |
-
visualize_btn = gr.Button("Visualize Structure"
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
"model": 0,
|
445 |
-
"style": "cartoon",
|
446 |
-
"color": "whiteCarbon",
|
447 |
-
"residue_range": "",
|
448 |
-
"around": 0,
|
449 |
-
#"byres": False,
|
450 |
-
}
|
451 |
-
])
|
452 |
|
453 |
with gr.Row():
|
454 |
segment_input = gr.Textbox(value="A", label="Chain ID (protein)", placeholder="Enter Chain ID here...",
|
455 |
info="Choose in which chain to predict binding sites.")
|
456 |
-
prediction_btn = gr.Button("Predict Binding Site"
|
457 |
|
458 |
molecule_output = gr.HTML(label="Protein Structure")
|
459 |
explanation_vis = gr.Markdown("""
|
@@ -472,29 +453,50 @@ with gr.Blocks(css="""
|
|
472 |
if mode == "PDB ID":
|
473 |
return process_pdb(pdb_id, chain_id)
|
474 |
elif mode == "Upload File":
|
475 |
-
|
476 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
477 |
if ext == '.cif':
|
478 |
pdb_path = convert_cif_to_pdb(file_path)
|
479 |
else:
|
480 |
-
pdb_path= file_path
|
481 |
return process_pdb(pdb_path, chain_id)
|
482 |
else:
|
483 |
return "Error: Invalid mode selected", None, None
|
484 |
|
485 |
def fetch_interface(mode, pdb_id, pdb_file):
|
486 |
if mode == "PDB ID":
|
487 |
-
|
|
|
|
|
|
|
|
|
488 |
elif mode == "Upload File":
|
489 |
-
|
490 |
-
|
491 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
492 |
if ext == '.cif':
|
493 |
pdb_path = convert_cif_to_pdb(file_path)
|
494 |
else:
|
495 |
-
pdb_path= file_path
|
496 |
-
|
497 |
-
return
|
498 |
else:
|
499 |
return "Error: Invalid mode selected"
|
500 |
|
@@ -533,4 +535,4 @@ with gr.Blocks(css="""
|
|
533 |
outputs=[predictions_output, molecule_output, download_output]
|
534 |
)
|
535 |
|
536 |
-
demo.launch(
|
|
|
7 |
from typing import Optional, Tuple
|
8 |
import numpy as np
|
9 |
import os
|
10 |
+
# Remove the gradio_molecule3d import as it may be incompatible
|
11 |
+
# from gradio_molecule3d import Molecule3D
|
12 |
|
13 |
from model_loader import load_model
|
14 |
|
|
|
412 |
return f'<iframe width="100%" height="700" srcdoc="{html_content.replace(chr(34), """).replace(chr(39), "'")}"></iframe>'
|
413 |
|
414 |
# Gradio UI
|
415 |
+
with gr.Blocks() as demo:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
416 |
gr.Markdown("# Protein Binding Site Prediction")
|
417 |
|
418 |
# Mode selection
|
|
|
426 |
# Input components based on mode
|
427 |
pdb_input = gr.Textbox(value="2F6V", label="PDB ID", placeholder="Enter PDB ID here...")
|
428 |
pdb_file = gr.File(label="Upload PDB/CIF File", visible=False)
|
429 |
+
visualize_btn = gr.Button("Visualize Structure")
|
430 |
+
|
431 |
+
# Replace Molecule3D with HTML component
|
432 |
+
molecule_output2 = gr.HTML(label="Protein Structure")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
433 |
|
434 |
with gr.Row():
|
435 |
segment_input = gr.Textbox(value="A", label="Chain ID (protein)", placeholder="Enter Chain ID here...",
|
436 |
info="Choose in which chain to predict binding sites.")
|
437 |
+
prediction_btn = gr.Button("Predict Binding Site")
|
438 |
|
439 |
molecule_output = gr.HTML(label="Protein Structure")
|
440 |
explanation_vis = gr.Markdown("""
|
|
|
453 |
if mode == "PDB ID":
|
454 |
return process_pdb(pdb_id, chain_id)
|
455 |
elif mode == "Upload File":
|
456 |
+
try:
|
457 |
+
# Handle new Gradio file format
|
458 |
+
file_path = pdb_file.name
|
459 |
+
except AttributeError:
|
460 |
+
# For older Gradio versions that provided a tuple
|
461 |
+
if isinstance(pdb_file, tuple):
|
462 |
+
file_path = pdb_file[0]
|
463 |
+
else:
|
464 |
+
file_path = pdb_file
|
465 |
+
|
466 |
+
_, ext = os.path.splitext(file_path)
|
467 |
if ext == '.cif':
|
468 |
pdb_path = convert_cif_to_pdb(file_path)
|
469 |
else:
|
470 |
+
pdb_path = file_path
|
471 |
return process_pdb(pdb_path, chain_id)
|
472 |
else:
|
473 |
return "Error: Invalid mode selected", None, None
|
474 |
|
475 |
def fetch_interface(mode, pdb_id, pdb_file):
|
476 |
if mode == "PDB ID":
|
477 |
+
pdb_path = fetch_pdb(pdb_id)
|
478 |
+
if pdb_path:
|
479 |
+
mol_html = molecule(pdb_path)
|
480 |
+
return mol_html
|
481 |
+
return "Failed to fetch PDB"
|
482 |
elif mode == "Upload File":
|
483 |
+
try:
|
484 |
+
# Handle new Gradio file format
|
485 |
+
file_path = pdb_file.name
|
486 |
+
except AttributeError:
|
487 |
+
# For older Gradio versions that provided a tuple
|
488 |
+
if isinstance(pdb_file, tuple):
|
489 |
+
file_path = pdb_file[0]
|
490 |
+
else:
|
491 |
+
file_path = pdb_file
|
492 |
+
|
493 |
+
_, ext = os.path.splitext(file_path)
|
494 |
if ext == '.cif':
|
495 |
pdb_path = convert_cif_to_pdb(file_path)
|
496 |
else:
|
497 |
+
pdb_path = file_path
|
498 |
+
mol_html = molecule(pdb_path)
|
499 |
+
return mol_html
|
500 |
else:
|
501 |
return "Error: Invalid mode selected"
|
502 |
|
|
|
535 |
outputs=[predictions_output, molecule_output, download_output]
|
536 |
)
|
537 |
|
538 |
+
demo.launch()
|
requirements.txt
CHANGED
@@ -9,6 +9,4 @@ scikit-learn>=0.24.0
|
|
9 |
sentencepiece
|
10 |
huggingface_hub>=0.15.0
|
11 |
requests
|
12 |
-
gradio>=4.0,<5.0
|
13 |
-
gradio-molecule3d==0.0.1
|
14 |
biopython>=1.81
|
|
|
9 |
sentencepiece
|
10 |
huggingface_hub>=0.15.0
|
11 |
requests
|
|
|
|
|
12 |
biopython>=1.81
|