From 9b768d05c882f79279a09564eecc07bf217debde Mon Sep 17 00:00:00 2001
From: Remi Planel <rplanel@pasteur.fr>
Date: Wed, 18 Mar 2020 14:57:00 +0100
Subject: [PATCH] Add the off-target PAM seq

---
 crisprbact/predict.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/crisprbact/predict.py b/crisprbact/predict.py
index 5609a91..90bd810 100644
--- a/crisprbact/predict.py
+++ b/crisprbact/predict.py
@@ -31,10 +31,11 @@ def find_targets(seq):
     seq_revcomp = rev_comp(seq)
     matching_target = re.finditer("(?=([ATGC]{6}" + repam + "[ATGC]{16}))", seq_revcomp)
     for target in matching_target:
+        matching_target = target.group(1)
         yield dict(
             [
-                ("target", target.group(1)),
-                ("guide", target.group(1)[:20]),
+                ("target", matching_target),
+                ("guide", matching_target[:20]),
                 ("start", L - target.start() - 20),
                 ("stop", L - target.start()),
                 ("pam", L - target.start() - 22),
@@ -97,6 +98,7 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
                                 "recid",
                                 "max_matching_len",
                                 "max_matching_seq",
+                                "pam_seq",
                                 "features",
                             ],
                         ]
@@ -113,9 +115,10 @@ 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],
                                 "off_target_max_matching_seq": off_t[6],
+                                "off_target_pam_seq": off_t[7],
                                 "off_target_good_orientation": None,
                             }
-                            index_features = 7
+                            index_features = 8
                             # Loop through features associated to an off-target position
                             if len(off_t[index_features]) > 0:
                                 # Loop for each feature
@@ -145,8 +148,6 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
                                     off_targets_list.append(
                                         {**feature_dict, **off_target_dict}
                                     )
-                            # elif not has_feature:
-                            #     off_targets_list.append(off_target_dict)
                             else:
                                 off_targets_list.append(off_target_dict)
                         off_targets_per_seed.append(
@@ -164,7 +165,6 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
                                 "off_targets": [],
                             }
                         )
-                        # target.update({"off_targets": off_targets_list})
                 target.update({"off_targets_per_seed": off_targets_per_seed})
             else:
                 target.update({"off_targets_per_seed": []})
-- 
GitLab