Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -3,6 +3,7 @@ import pandas as pd
|
|
| 3 |
import primer3
|
| 4 |
from Bio import SeqIO
|
| 5 |
import os
|
|
|
|
| 6 |
|
| 7 |
# Ensure the 'temp' directory exists for saving temporary files
|
| 8 |
temp_dir = "temp"
|
|
@@ -13,8 +14,13 @@ st.set_page_config(page_title="PCR Primer Design", page_icon="🧬", layout="wid
|
|
| 13 |
uploaded_file = st.file_uploader("Upload a GenBank file", type=['gb', 'gbk'])
|
| 14 |
|
| 15 |
def extract_features_from_genbank(genbank_content, feature_types=['CDS', 'tRNA', 'gene']):
|
| 16 |
-
"""Extracts specified features from
|
| 17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
features = {ftype: [] for ftype in feature_types}
|
| 19 |
for feature in record.features:
|
| 20 |
if feature.type in feature_types:
|
|
@@ -43,7 +49,8 @@ def design_primers_for_region(sequence, start, end, num_to_return=5):
|
|
| 43 |
)
|
| 44 |
|
| 45 |
if uploaded_file is not None:
|
| 46 |
-
|
|
|
|
| 47 |
feature_type = st.selectbox('Select feature type:', ['CDS', 'tRNA', 'gene'])
|
| 48 |
|
| 49 |
# Create a selection box for genes based on chosen feature
|
|
|
|
| 3 |
import primer3
|
| 4 |
from Bio import SeqIO
|
| 5 |
import os
|
| 6 |
+
from io import StringIO
|
| 7 |
|
| 8 |
# Ensure the 'temp' directory exists for saving temporary files
|
| 9 |
temp_dir = "temp"
|
|
|
|
| 14 |
uploaded_file = st.file_uploader("Upload a GenBank file", type=['gb', 'gbk'])
|
| 15 |
|
| 16 |
def extract_features_from_genbank(genbank_content, feature_types=['CDS', 'tRNA', 'gene']):
|
| 17 |
+
"""Extracts specified features from GenBank content."""
|
| 18 |
+
# Convert binary stream (if present) to a StringIO object for text handling
|
| 19 |
+
if isinstance(genbank_content, bytes):
|
| 20 |
+
text_stream = StringIO(genbank_content.decode("utf-8"))
|
| 21 |
+
else:
|
| 22 |
+
text_stream = genbank_content
|
| 23 |
+
record = SeqIO.read(text_stream, "genbank")
|
| 24 |
features = {ftype: [] for ftype in feature_types}
|
| 25 |
for feature in record.features:
|
| 26 |
if feature.type in feature_types:
|
|
|
|
| 49 |
)
|
| 50 |
|
| 51 |
if uploaded_file is not None:
|
| 52 |
+
genbank_content = StringIO(uploaded_file.getvalue().decode("utf-8"))
|
| 53 |
+
features, record = extract_features_from_genbank(genbank_content)
|
| 54 |
feature_type = st.selectbox('Select feature type:', ['CDS', 'tRNA', 'gene'])
|
| 55 |
|
| 56 |
# Create a selection box for genes based on chosen feature
|