Andrew Stirn commited on
Commit
2e86d75
·
1 Parent(s): c2e1605
Files changed (1) hide show
  1. tiger.py +9 -13
tiger.py CHANGED
@@ -161,7 +161,7 @@ def prediction_transform(predictions: np.array, **params):
161
  raise NotImplementedError
162
 
163
 
164
- def get_on_target_predictions(transcripts: pd.DataFrame, model: tf.keras.Model, status=None, progress_bar=None):
165
 
166
  # loop over transcripts
167
  predictions = pd.DataFrame()
@@ -183,10 +183,8 @@ def get_on_target_predictions(transcripts: pd.DataFrame, model: tf.keras.Model,
183
  percent_complete = 100 * min((i + 1) / len(transcripts), 1)
184
  update_text = 'Evaluating on-target guides for each transcript: {:.2f}%'.format(percent_complete)
185
  print('\r' + update_text, end='')
186
- if status is not None:
187
- status.text(update_text)
188
- if progress_bar is not None:
189
- progress_bar.progress(percent_complete / 100)
190
  print('')
191
 
192
  return predictions
@@ -204,7 +202,7 @@ def top_guides_per_transcript(predictions: pd.DataFrame):
204
  return top_guides.reset_index(drop=True)
205
 
206
 
207
- def find_off_targets(top_guides: pd.DataFrame, status=None):
208
 
209
  # load reference transcripts
210
  reference_transcripts = load_transcripts([os.path.join('transcripts', f) for f in REFERENCE_TRANSCRIPTS])
@@ -261,10 +259,8 @@ def find_off_targets(top_guides: pd.DataFrame, status=None):
261
  percent_complete = 100 * min((i + 1) / len(reference_transcripts), 1)
262
  update_text = 'Scanning for off-targets: {:.2f}%'.format(percent_complete)
263
  print('\r' + update_text, end='')
264
- if status is not None:
265
- with status:
266
- st.text(update_text)
267
- st.progress(percent_complete / 100)
268
  print('')
269
 
270
  return off_targets
@@ -288,7 +284,7 @@ def predict_off_target(off_targets: pd.DataFrame, model: tf.keras.Model):
288
  return off_targets.sort_values(SCORE_COL, ascending=False).reset_index(drop=True)
289
 
290
 
291
- def tiger_exhibit(transcripts: pd.DataFrame, mode: str, check_off_targets: bool, status=None, progress_bar=None):
292
 
293
  # load model
294
  if os.path.exists('model'):
@@ -298,7 +294,7 @@ def tiger_exhibit(transcripts: pd.DataFrame, mode: str, check_off_targets: bool,
298
  exit()
299
 
300
  # evaluate all on-target guides per transcript
301
- on_target_predictions = get_on_target_predictions(transcripts, tiger, status, progress_bar)
302
 
303
  # initialize other outputs
304
  off_target_predictions = None
@@ -316,7 +312,7 @@ def tiger_exhibit(transcripts: pd.DataFrame, mode: str, check_off_targets: bool,
316
 
317
  # check off-target effects for top guides
318
  if check_off_targets:
319
- off_targets = find_off_targets(on_target_predictions, status, progress_bar)
320
  off_target_predictions = predict_off_target(off_targets, model=tiger)
321
 
322
  # reverse guide sequences
 
161
  raise NotImplementedError
162
 
163
 
164
+ def get_on_target_predictions(transcripts: pd.DataFrame, model: tf.keras.Model, status_update_fn=None):
165
 
166
  # loop over transcripts
167
  predictions = pd.DataFrame()
 
183
  percent_complete = 100 * min((i + 1) / len(transcripts), 1)
184
  update_text = 'Evaluating on-target guides for each transcript: {:.2f}%'.format(percent_complete)
185
  print('\r' + update_text, end='')
186
+ if status_update_fn is not None:
187
+ status_update_fn(update_text, percent_complete)
 
 
188
  print('')
189
 
190
  return predictions
 
202
  return top_guides.reset_index(drop=True)
203
 
204
 
205
+ def find_off_targets(top_guides: pd.DataFrame, status_update_fn=None):
206
 
207
  # load reference transcripts
208
  reference_transcripts = load_transcripts([os.path.join('transcripts', f) for f in REFERENCE_TRANSCRIPTS])
 
259
  percent_complete = 100 * min((i + 1) / len(reference_transcripts), 1)
260
  update_text = 'Scanning for off-targets: {:.2f}%'.format(percent_complete)
261
  print('\r' + update_text, end='')
262
+ if status_update_fn is not None:
263
+ status_update_fn(update_text, percent_complete)
 
 
264
  print('')
265
 
266
  return off_targets
 
284
  return off_targets.sort_values(SCORE_COL, ascending=False).reset_index(drop=True)
285
 
286
 
287
+ def tiger_exhibit(transcripts: pd.DataFrame, mode: str, check_off_targets: bool, status_update_fn=None):
288
 
289
  # load model
290
  if os.path.exists('model'):
 
294
  exit()
295
 
296
  # evaluate all on-target guides per transcript
297
+ on_target_predictions = get_on_target_predictions(transcripts, tiger, status_update_fn)
298
 
299
  # initialize other outputs
300
  off_target_predictions = None
 
312
 
313
  # check off-target effects for top guides
314
  if check_off_targets:
315
+ off_targets = find_off_targets(on_target_predictions, status_update_fn)
316
  off_target_predictions = predict_off_target(off_targets, model=tiger)
317
 
318
  # reverse guide sequences