astirn commited on
Commit
806fad9
·
1 Parent(s): c73ab10

race condition solved

Browse files
Files changed (1) hide show
  1. app.py +18 -12
app.py CHANGED
@@ -36,11 +36,13 @@ def progress_update(update_text, percent_complete):
36
 
37
 
38
  def initiate_run():
39
- st.session_state.running = True
40
- st.session_state.input_error = st.session_state.on_target = st.session_state.off_target = None
41
 
 
 
 
 
 
42
 
43
- def run():
44
  # initialize transcript DataFrame
45
  transcripts = pd.DataFrame(columns=[tiger.ID_COL, tiger.SEQ_COL])
46
 
@@ -76,12 +78,8 @@ def run():
76
 
77
  # run model if we have any transcripts
78
  elif len(transcripts) > 0:
79
- st.session_state.on_target, st.session_state.off_target = tiger.tiger_exhibit(
80
- transcripts=transcripts,
81
- mode={v: k for k, v in tiger.RUN_MODES.items()}[st.session_state.mode],
82
- check_off_targets=st.session_state.check_off_targets,
83
- status_update_fn=progress_update
84
- )
85
 
86
 
87
  if __name__ == '__main__':
@@ -94,6 +92,8 @@ if __name__ == '__main__':
94
  st.session_state.entry_method = ENTRY_METHODS['manual']
95
  if 'running' not in st.session_state:
96
  st.session_state.running = False
 
 
97
  if 'input_error' not in st.session_state:
98
  st.session_state.input_error = None
99
  if 'on_target' not in st.session_state:
@@ -180,8 +180,14 @@ if __name__ == '__main__':
180
  else:
181
  st.write('We did not find any off-target effects!')
182
 
183
- # run model if signalled to do so
184
- if st.session_state.running:
185
- run()
 
 
 
 
 
186
  st.session_state.running = False
 
187
  st.experimental_rerun()
 
36
 
37
 
38
  def initiate_run():
 
 
39
 
40
+ # initialize state variables
41
+ st.session_state.transcripts = None
42
+ st.session_state.input_error = None
43
+ st.session_state.on_target = None
44
+ st.session_state.off_target = None
45
 
 
46
  # initialize transcript DataFrame
47
  transcripts = pd.DataFrame(columns=[tiger.ID_COL, tiger.SEQ_COL])
48
 
 
78
 
79
  # run model if we have any transcripts
80
  elif len(transcripts) > 0:
81
+ st.session_state.running = True
82
+ st.session_state.transcripts = transcripts
 
 
 
 
83
 
84
 
85
  if __name__ == '__main__':
 
92
  st.session_state.entry_method = ENTRY_METHODS['manual']
93
  if 'running' not in st.session_state:
94
  st.session_state.running = False
95
+ if 'transcripts' not in st.session_state:
96
+ st.session_state.transcripts = None
97
  if 'input_error' not in st.session_state:
98
  st.session_state.input_error = None
99
  if 'on_target' not in st.session_state:
 
180
  else:
181
  st.write('We did not find any off-target effects!')
182
 
183
+ # run model until we clear inputs
184
+ if st.session_state.transcripts is not None:
185
+ st.session_state.on_target, st.session_state.off_target = tiger.tiger_exhibit(
186
+ transcripts=st.session_state.transcripts,
187
+ mode={v: k for k, v in tiger.RUN_MODES.items()}[st.session_state.mode],
188
+ check_off_targets=st.session_state.check_off_targets,
189
+ status_update_fn=progress_update
190
+ )
191
  st.session_state.running = False
192
+ st.session_state.transcripts = None
193
  st.experimental_rerun()