yashm commited on
Commit
d3184b9
·
verified ·
1 Parent(s): 1a77f6d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -3
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 a GenBank content."""
17
- record = SeqIO.read(genbank_content, "genbank")
 
 
 
 
 
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
- features, record = extract_features_from_genbank(uploaded_file)
 
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