diff --git a/crisprbact/cli.py b/crisprbact/cli.py index ffa0946daa0521c7efcb1eb4fe5a876abe4f4b1a..4eeaebd2e2700a0dd9450dcef52143d77f21264b 100644 --- a/crisprbact/cli.py +++ b/crisprbact/cli.py @@ -1,6 +1,6 @@ -from crisprbact.predict import on_target_predict from Bio import SeqIO import click +from crisprbact.predict import on_target_predict class Config(object): diff --git a/crisprbact/predict.py b/crisprbact/predict.py index 5b88c378304036f285b656717ed4ce7082e40ba4..265a7f0b0285b9dde85242f32f953ff4178a50d0 100644 --- a/crisprbact/predict.py +++ b/crisprbact/predict.py @@ -71,16 +71,29 @@ def on_target_predict(seq, genome=None, seed_size=7): off_target_df = compute_off_target_df( target["guide"], seed_size, records, genome_features ) - off_target_list = [] - features = off_target_df.loc[0:, "features"] - for feat in features: - for x in feat: - features_dict = {} - for k, feat in x.qualifiers.items(): + off_targets_list = [] + off_targets = off_target_df.loc[ + 0:, ["start", "end", "pampos", "features"] + ] + for index, off_t in enumerate(off_targets.values.tolist()): + + off_target_dict = { + "off_target_start": off_t[0], + "off_target_end": off_t[1], + "pampos": off_t[2], + } + for feat in off_t[3]: + feature_dict = { + "feat_strand": feat.location.strand, + "feat_start": feat.location.start, + "feat_end": feat.location.end, + "feat_type": feat.type, + } + for k, feat in feat.qualifiers.items(): if k != "translation": - features_dict[k] = " :: ".join(feat) - off_target_list.append(features_dict) - target.update({"off_targets": off_target_list}) + feature_dict[k] = " :: ".join(feat) + off_targets_list.append({**feature_dict, **off_target_dict}) + target.update({"off_targets": off_targets_list}) else: target.update({"off_targets": []}) return alltargets diff --git a/pyproject.toml b/pyproject.toml index 12da22efc64bdadd0b7a0e7702de8129695efe4c..7e03c6a403e0f97d2a648369db41df18f257a276 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "crisprbact" -version = "0.2.1" +version = "0.3.0" license = "GPL-3.0" description = "Tools to design and analyse CRISPRi experiments" authors = ["David Bikard <david.bikard@pasteur.fr>", "Remi Planel <rplanel@pasteur.fr>"]