Skip to content
Snippets Groups Projects
Commit 510a8c82 authored by Remi  PLANEL's avatar Remi PLANEL
Browse files

Rename off-target feature keys

parent 5b5aa399
No related branches found
No related tags found
1 merge request!4Multi seed size
Pipeline #24818 passed with stage
in 45 seconds
......@@ -71,11 +71,12 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
for i, target in enumerate(alltargets):
target_id = i + 1
target.update({"id": target_id})
target.update({"target_id": target_id})
target.update({"pred": preds[i]})
if genome:
off_targets_per_seed = []
for seed_size in seed_sizes:
# off-target found for a guide
off_target_df = compute_off_target_df(
target["guide"], seed_size, records, genome_features
)
......@@ -87,7 +88,7 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
]
for j, off_t in enumerate(off_targets.values.tolist()):
off_target_dict = {
"id": str(target_id)
"off_target_id": str(target_id)
+ "-"
+ str(seed_size)
+ "-"
......@@ -98,7 +99,8 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
"off_target_strand": off_t[3],
"off_target_recid": off_t[4],
}
# Filter the off targets if the strand
# is not the opposite of the feature
off_t[5] = list(
filter(
lambda feat: get_strand_value(
......@@ -108,6 +110,7 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
off_t[5],
)
)
# Loop through features associated to an off-target position
if len(off_t[5]) > 0:
# Loop for each feature
for feat in off_t[5]:
......@@ -119,7 +122,9 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
}
for k, feat in feat.qualifiers.items():
if k != "translation":
feature_dict[k] = "::".join(feat)
feature_dict["off_target_" + k] = "::".join(
feat
)
off_targets_list.append(
{**feature_dict, **off_target_dict}
)
......@@ -137,7 +142,7 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
{
"id": str(i) + "-" + str(seed_size),
"seed_size": seed_size,
"off_targets": off_targets_list,
"off_targets": [],
}
)
# target.update({"off_targets": off_targets_list})
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment