yashm commited on
Commit
77940de
·
verified ·
1 Parent(s): 467d1e3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -6
app.py CHANGED
@@ -25,7 +25,6 @@ def extract_features_from_genbank(genbank_content, feature_types=['CDS', 'tRNA',
25
 
26
  def design_primers_for_region(sequence, product_size_range, num_to_return=10):
27
  """Design primers for a specific sequence."""
28
- # Parse the product size range
29
  size_min, size_max = map(int, product_size_range.split('-'))
30
  return primer3.bindings.designPrimers(
31
  {
@@ -59,15 +58,13 @@ if uploaded_file is not None:
59
  st.text(str(feature_sequence))
60
 
61
  product_size_range = st.text_input("Enter desired PCR product size range (e.g., 150-500):", value="150-500")
62
-
63
- # Let users specify the minimum number of primer pairs to return, ensuring it's at least 5
64
  min_num_primers = st.number_input("Enter minimum number of primer pairs to return:", min_value=5, value=5, step=1)
65
 
66
  if st.button(f'Design Primers for selected {feature_type}'):
67
  primers = design_primers_for_region(feature_sequence, product_size_range, num_to_return=min_num_primers)
68
 
69
  primer_data = []
70
- for i in range(min_num_primers): # Collect data for the specified number of primer pairs
71
  left_sequence = primers.get(f'PRIMER_LEFT_{i}_SEQUENCE', 'N/A')
72
  right_sequence = primers.get(f'PRIMER_RIGHT_{i}_SEQUENCE', 'N/A')
73
  if left_sequence != 'N/A' and right_sequence != 'N/A':
@@ -77,8 +74,8 @@ if uploaded_file is not None:
77
  'Right Sequence': right_sequence,
78
  'Left TM (°C)': primers.get(f'PRIMER_LEFT_{i}_TM', 'N/A'),
79
  'Right TM (°C)': primers.get(f'PRIMER_RIGHT_{i}_TM', 'N/A'),
80
- 'Left Length': primers.get(f'PRIMER_LEFT_{i}_SIZE', 'N/A'),
81
- 'Right Length': primers.get(f'PRIMER_RIGHT_{i}_SIZE', 'N/A'),
82
  'PCR Product Size (bp)': primers.get(f'PRIMER_PAIR_{i}_PRODUCT_SIZE', 'N/A')
83
  }
84
  primer_data.append(primer_info)
 
25
 
26
  def design_primers_for_region(sequence, product_size_range, num_to_return=10):
27
  """Design primers for a specific sequence."""
 
28
  size_min, size_max = map(int, product_size_range.split('-'))
29
  return primer3.bindings.designPrimers(
30
  {
 
58
  st.text(str(feature_sequence))
59
 
60
  product_size_range = st.text_input("Enter desired PCR product size range (e.g., 150-500):", value="150-500")
 
 
61
  min_num_primers = st.number_input("Enter minimum number of primer pairs to return:", min_value=5, value=5, step=1)
62
 
63
  if st.button(f'Design Primers for selected {feature_type}'):
64
  primers = design_primers_for_region(feature_sequence, product_size_range, num_to_return=min_num_primers)
65
 
66
  primer_data = []
67
+ for i in range(min_num_primers):
68
  left_sequence = primers.get(f'PRIMER_LEFT_{i}_SEQUENCE', 'N/A')
69
  right_sequence = primers.get(f'PRIMER_RIGHT_{i}_SEQUENCE', 'N/A')
70
  if left_sequence != 'N/A' and right_sequence != 'N/A':
 
74
  'Right Sequence': right_sequence,
75
  'Left TM (°C)': primers.get(f'PRIMER_LEFT_{i}_TM', 'N/A'),
76
  'Right TM (°C)': primers.get(f'PRIMER_RIGHT_{i}_TM', 'N/A'),
77
+ 'Left Length': len(left_sequence), # Get the length of the left primer
78
+ 'Right Length': len(right_sequence), # Get the length of the right primer
79
  'PCR Product Size (bp)': primers.get(f'PRIMER_PAIR_{i}_PRODUCT_SIZE', 'N/A')
80
  }
81
  primer_data.append(primer_info)