yashm commited on
Commit
c27b0ea
·
verified ·
1 Parent(s): ca323e3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -6
app.py CHANGED
@@ -1,18 +1,26 @@
1
  import streamlit as st
2
  import primer3
3
- from Bio.Seq import Seq
 
4
 
5
  # Streamlit app layout
6
  st.title('PCR Primer Design Tool')
7
- st.write('Enter your DNA sequence and target region to design PCR primers.')
8
 
9
- # User input for DNA sequence and target region
10
- user_sequence = st.text_area("Enter DNA sequence:", height=150).upper() # Ensure sequence is uppercase
 
 
11
  target_start = st.number_input("Target start position:", min_value=0, value=0, step=1)
12
  target_length = st.number_input("Target length:", min_value=1, value=20, step=1)
13
 
14
  if st.button('Design Primers'):
15
- if user_sequence and target_length > 0:
 
 
 
 
 
16
  # Remove non-sequence characters (e.g., spaces, line breaks)
17
  clean_sequence = ''.join(user_sequence.split())
18
 
@@ -61,4 +69,4 @@ if st.button('Design Primers'):
61
  except Exception as e:
62
  st.error(f"An error occurred while designing primers: {e}")
63
  else:
64
- st.error('Please input a valid DNA sequence and specify a target region.')
 
1
  import streamlit as st
2
  import primer3
3
+ from Bio import SeqIO
4
+ from io import StringIO
5
 
6
  # Streamlit app layout
7
  st.title('PCR Primer Design Tool')
8
+ st.write('Upload a FASTA file with your DNA sequence to design PCR primers.')
9
 
10
+ # User input for DNA sequence via file upload
11
+ fasta_file = st.file_uploader("Upload DNA sequence (FASTA format):", type=['fasta', 'fa'])
12
+
13
+ # Input for target region
14
  target_start = st.number_input("Target start position:", min_value=0, value=0, step=1)
15
  target_length = st.number_input("Target length:", min_value=1, value=20, step=1)
16
 
17
  if st.button('Design Primers'):
18
+ if fasta_file and target_length > 0:
19
+ # Read the sequence from the FASTA file
20
+ sequence_data = StringIO(fasta_file.getvalue().decode("utf-8"))
21
+ record = next(SeqIO.parse(sequence_data, "fasta"))
22
+ user_sequence = str(record.seq).upper() # Ensure sequence is uppercase
23
+
24
  # Remove non-sequence characters (e.g., spaces, line breaks)
25
  clean_sequence = ''.join(user_sequence.split())
26
 
 
69
  except Exception as e:
70
  st.error(f"An error occurred while designing primers: {e}")
71
  else:
72
+ st.error('Please upload a valid FASTA file and specify a target region.')