Spaces:
Running
Running
Update
Browse files- .ipynb_checkpoints/app-checkpoint.py +7 -25
- app.py +7 -25
.ipynb_checkpoints/app-checkpoint.py
CHANGED
@@ -177,45 +177,28 @@ def extract_protein_sequence(pdb_path):
|
|
177 |
longest_sequence = one_letter_sequence
|
178 |
longest_chain = chain
|
179 |
|
180 |
-
return longest_sequence, longest_chain
|
181 |
|
182 |
def process_pdb(pdb_id):
|
183 |
# Fetch PDB file
|
184 |
pdb_path = fetch_pdb(pdb_id)
|
185 |
|
186 |
if not pdb_path:
|
187 |
-
return "Failed to fetch PDB file",
|
188 |
|
189 |
# Extract protein sequence and chain
|
190 |
-
protein_sequence, chain = extract_protein_sequence(pdb_path)
|
191 |
|
192 |
if not protein_sequence:
|
193 |
-
return "No suitable protein sequence found",
|
194 |
-
|
195 |
# Predict binding sites
|
196 |
sequence, normalized_scores = predict_protein_sequence(protein_sequence)
|
197 |
|
198 |
-
# Prepare representations for coloring residues
|
199 |
-
reps = [
|
200 |
-
{
|
201 |
-
"model": 0,
|
202 |
-
"chain": chain.id,
|
203 |
-
"resname": res,
|
204 |
-
"resnum": i+1,
|
205 |
-
"style": "cartoon",
|
206 |
-
"color": f'rgb({int(score * 255)}, 0, {int(255 - score * 255)})',
|
207 |
-
"residue_range": f"{i+1}-{i+1}",
|
208 |
-
"around": 0,
|
209 |
-
"byres": True,
|
210 |
-
"visible": True
|
211 |
-
}
|
212 |
-
for i, (res, score) in enumerate(zip(sequence, normalized_scores))
|
213 |
-
]
|
214 |
-
|
215 |
# Prepare result string
|
216 |
result_str = "\n".join([f"{aa}: {score:.2f}" for aa, score in zip(sequence, normalized_scores)])
|
217 |
|
218 |
-
return result_str,
|
219 |
|
220 |
# Create Gradio interface
|
221 |
with gr.Blocks() as demo:
|
@@ -241,8 +224,7 @@ with gr.Blocks() as demo:
|
|
241 |
|
242 |
# 3D Molecule visualization
|
243 |
molecule_output = Molecule3D(
|
244 |
-
label="Protein Structure"
|
245 |
-
reps=[] # Start with empty representations
|
246 |
)
|
247 |
|
248 |
# Prediction logic
|
|
|
177 |
longest_sequence = one_letter_sequence
|
178 |
longest_chain = chain
|
179 |
|
180 |
+
return longest_sequence, longest_chain, pdb_path
|
181 |
|
182 |
def process_pdb(pdb_id):
|
183 |
# Fetch PDB file
|
184 |
pdb_path = fetch_pdb(pdb_id)
|
185 |
|
186 |
if not pdb_path:
|
187 |
+
return "Failed to fetch PDB file", pdb_path
|
188 |
|
189 |
# Extract protein sequence and chain
|
190 |
+
protein_sequence, chain, pdb_file = extract_protein_sequence(pdb_path)
|
191 |
|
192 |
if not protein_sequence:
|
193 |
+
return "No suitable protein sequence found", pdb_file
|
194 |
+
|
195 |
# Predict binding sites
|
196 |
sequence, normalized_scores = predict_protein_sequence(protein_sequence)
|
197 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
# Prepare result string
|
199 |
result_str = "\n".join([f"{aa}: {score:.2f}" for aa, score in zip(sequence, normalized_scores)])
|
200 |
|
201 |
+
return result_str, pdb_file
|
202 |
|
203 |
# Create Gradio interface
|
204 |
with gr.Blocks() as demo:
|
|
|
224 |
|
225 |
# 3D Molecule visualization
|
226 |
molecule_output = Molecule3D(
|
227 |
+
label="Protein Structure"
|
|
|
228 |
)
|
229 |
|
230 |
# Prediction logic
|
app.py
CHANGED
@@ -177,45 +177,28 @@ def extract_protein_sequence(pdb_path):
|
|
177 |
longest_sequence = one_letter_sequence
|
178 |
longest_chain = chain
|
179 |
|
180 |
-
return longest_sequence, longest_chain
|
181 |
|
182 |
def process_pdb(pdb_id):
|
183 |
# Fetch PDB file
|
184 |
pdb_path = fetch_pdb(pdb_id)
|
185 |
|
186 |
if not pdb_path:
|
187 |
-
return "Failed to fetch PDB file",
|
188 |
|
189 |
# Extract protein sequence and chain
|
190 |
-
protein_sequence, chain = extract_protein_sequence(pdb_path)
|
191 |
|
192 |
if not protein_sequence:
|
193 |
-
return "No suitable protein sequence found",
|
194 |
-
|
195 |
# Predict binding sites
|
196 |
sequence, normalized_scores = predict_protein_sequence(protein_sequence)
|
197 |
|
198 |
-
# Prepare representations for coloring residues
|
199 |
-
reps = [
|
200 |
-
{
|
201 |
-
"model": 0,
|
202 |
-
"chain": chain.id,
|
203 |
-
"resname": res,
|
204 |
-
"resnum": i+1,
|
205 |
-
"style": "cartoon",
|
206 |
-
"color": f'rgb({int(score * 255)}, 0, {int(255 - score * 255)})',
|
207 |
-
"residue_range": f"{i+1}-{i+1}",
|
208 |
-
"around": 0,
|
209 |
-
"byres": True,
|
210 |
-
"visible": True
|
211 |
-
}
|
212 |
-
for i, (res, score) in enumerate(zip(sequence, normalized_scores))
|
213 |
-
]
|
214 |
-
|
215 |
# Prepare result string
|
216 |
result_str = "\n".join([f"{aa}: {score:.2f}" for aa, score in zip(sequence, normalized_scores)])
|
217 |
|
218 |
-
return result_str,
|
219 |
|
220 |
# Create Gradio interface
|
221 |
with gr.Blocks() as demo:
|
@@ -241,8 +224,7 @@ with gr.Blocks() as demo:
|
|
241 |
|
242 |
# 3D Molecule visualization
|
243 |
molecule_output = Molecule3D(
|
244 |
-
label="Protein Structure"
|
245 |
-
reps=[] # Start with empty representations
|
246 |
)
|
247 |
|
248 |
# Prediction logic
|
|
|
177 |
longest_sequence = one_letter_sequence
|
178 |
longest_chain = chain
|
179 |
|
180 |
+
return longest_sequence, longest_chain, pdb_path
|
181 |
|
182 |
def process_pdb(pdb_id):
|
183 |
# Fetch PDB file
|
184 |
pdb_path = fetch_pdb(pdb_id)
|
185 |
|
186 |
if not pdb_path:
|
187 |
+
return "Failed to fetch PDB file", pdb_path
|
188 |
|
189 |
# Extract protein sequence and chain
|
190 |
+
protein_sequence, chain, pdb_file = extract_protein_sequence(pdb_path)
|
191 |
|
192 |
if not protein_sequence:
|
193 |
+
return "No suitable protein sequence found", pdb_file
|
194 |
+
|
195 |
# Predict binding sites
|
196 |
sequence, normalized_scores = predict_protein_sequence(protein_sequence)
|
197 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
# Prepare result string
|
199 |
result_str = "\n".join([f"{aa}: {score:.2f}" for aa, score in zip(sequence, normalized_scores)])
|
200 |
|
201 |
+
return result_str, pdb_file
|
202 |
|
203 |
# Create Gradio interface
|
204 |
with gr.Blocks() as demo:
|
|
|
224 |
|
225 |
# 3D Molecule visualization
|
226 |
molecule_output = Molecule3D(
|
227 |
+
label="Protein Structure"
|
|
|
228 |
)
|
229 |
|
230 |
# Prediction logic
|