Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Andrew Stirn
commited on
Commit
·
2e86d75
1
Parent(s):
c2e1605
cleanup
Browse files
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,
|
| 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
|
| 187 |
-
|
| 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,
|
| 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
|
| 265 |
-
|
| 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,
|
| 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,
|
| 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,
|
| 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
|