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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -23
app.py CHANGED
@@ -66,27 +66,44 @@ if uploaded_file is not None:
66
  if st.button(f'Design Primers for {feature_type}'):
67
  size_range = [tuple(map(int, r.split('-'))) for r in product_size_range.split(',')]
68
  primers = design_primers_for_region(record.seq, start, end, num_to_return=5)
69
- primer_df = pd.DataFrame({
70
- 'Primer': ['Left Primer'] * 5 + ['Right Primer'] * 5,
71
- 'Sequence': [primers[f'PRIMER_LEFT_{i}_SEQUENCE'] for i in range(5)] +
72
- [primers[f'PRIMER_RIGHT_{i}_SEQUENCE'] for i in range(5)],
73
- 'Tm (°C)': [primers[f'PRIMER_LEFT_{i}_TM'] for i in range(5)] +
74
- [primers[f'PRIMER_RIGHT_{i}_TM'] for i in range(5)],
75
- 'Length': [primers[f'PRIMER_LEFT_{i}_SIZE'] for i in range(5)] +
76
- [primers[f'PRIMER_RIGHT_{i}_SIZE'] for i in range(5)],
77
- 'GC%': [primers[f'PRIMER_LEFT_{i}_GC_PERCENT'] for i in range(5)] +
78
- [primers[f'PRIMER_RIGHT_{i}_GC_PERCENT'] for i in range(5)],
79
- })
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
- st.write('### Designed Primers')
82
- st.dataframe(primer_df)
83
- csv = primer_df.to_csv(index=False).encode('utf-8')
84
- st.download_button(
85
- "Download Primers as CSV",
86
- csv,
87
- "primers.csv",
88
- "text/csv",
89
- key='download-csv'
90
- )
91
- else:
92
- st.warning("Please upload a GenBank file.")
 
66
  if st.button(f'Design Primers for {feature_type}'):
67
  size_range = [tuple(map(int, r.split('-'))) for r in product_size_range.split(',')]
68
  primers = design_primers_for_region(record.seq, start, end, num_to_return=5)
69
+
70
+ # Initialize lists to hold primer details
71
+ sequences, tm_values, lengths, gc_percents = [], [], [], []
72
+
73
+ # Check if primer keys exist and add their details to the lists
74
+ for i in range(5): # Assuming we are looking for 5 primer pairs
75
+ left_key = f'PRIMER_LEFT_{i}_SEQUENCE'
76
+ right_key = f'PRIMER_RIGHT_{i}_SEQUENCE'
77
+ if left_key in primers and right_key in primers:
78
+ sequences.append(primers[left_key])
79
+ sequences.append(primers[right_key])
80
+ tm_values.append(primers[f'PRIMER_LEFT_{i}_TM'])
81
+ tm_values.append(primers[f'PRIMER_RIGHT_{i}_TM'])
82
+ lengths.append(primers[f'PRIMER_LEFT_{i}_SIZE'])
83
+ lengths.append(primers[f'PRIMER_RIGHT_{i}_SIZE'])
84
+ gc_percents.append(primers[f'PRIMER_LEFT_{i}_GC_PERCENT'])
85
+ gc_percents.append(primers[f'PRIMER_RIGHT_{i}_GC_PERCENT'])
86
+
87
+ # Check if any primers were found
88
+ if sequences:
89
+ # Construct the DataFrame using the collected primer details
90
+ primer_df = pd.DataFrame({
91
+ 'Primer': ['Left Primer'] * len(sequences) // 2 + ['Right Primer'] * len(sequences) // 2,
92
+ 'Sequence': sequences,
93
+ 'Tm (°C)': tm_values,
94
+ 'Length': lengths,
95
+ 'GC%': gc_percents,
96
+ })
97
 
98
+ st.write('### Designed Primers')
99
+ st.dataframe(primer_df)
100
+ csv = primer_df.to_csv(index=False).encode('utf-8')
101
+ st.download_button(
102
+ "Download Primers as CSV",
103
+ csv,
104
+ "primers.csv",
105
+ "text/csv",
106
+ key='download-csv'
107
+ )
108
+ else:
109
+ st.error('No primers were found. Please adjust your parameters and try again.')