RNApolis 0.4.8__py3-none-any.whl → 0.4.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: RNApolis
3
- Version: 0.4.8
3
+ Version: 0.4.10
4
4
  Summary: A Python library containing RNA-related bioinformatics functions and classes
5
5
  Home-page: https://github.com/tzok/rnapolis-py
6
6
  Author: Tomasz Zok
@@ -0,0 +1,17 @@
1
+ rnapolis/annotator.py,sha256=_hsSX2VHFvIQ47l_EA7lwGFXLiVLbhFPEsOQzBKbjRk,22100
2
+ rnapolis/clashfinder.py,sha256=i95kp0o6OWNqmJDBr-PbsZd7RY2iJtBDr7QqolJSuAQ,8513
3
+ rnapolis/common.py,sha256=LY6Uz96Br8ki_gA8LpfatgtvVbt9jOTkwgagayqTgf8,31251
4
+ rnapolis/metareader.py,sha256=I1-cXc2YNBPwa3zihAnMTjEsAo79tEKzSmWu5yvN1Pk,2071
5
+ rnapolis/molecule_filter.py,sha256=hB6-nXgjmw7FAsQ3bj0cZ2FvuW2I1PXunEfcdwEUB1o,7389
6
+ rnapolis/motif_extractor.py,sha256=Lfn1iEkhkP9eZD3GPEWNAfy00QO7QPCc8wM_XS1ory8,1147
7
+ rnapolis/parser.py,sha256=2pQYy0sh8TCpeluMmmSJ7C5dudK_bsfstTWCdpwwpNU,15193
8
+ rnapolis/rfam_folder.py,sha256=SjiiyML_T1__saruFwSMJEoQ7Y55GIU8ktS8ZUn5-fw,11111
9
+ rnapolis/tertiary.py,sha256=6t9ZB4w33-5n_M3sns1RoFXCOTgVAgGH4WDNG5OG9Kg,23426
10
+ rnapolis/transformer.py,sha256=V9nOQvdq4-p7yUWo0vQg0CDQMpmyxz9t4TMSRVEKHnw,1817
11
+ rnapolis/util.py,sha256=IdquFO3PV1_KDqodjupzm0Rqvgy0CeSzxGHaGEHYXVU,543
12
+ RNApolis-0.4.10.dist-info/LICENSE,sha256=ZGRu12MzCgbYA-Lt8MyBlmjvPZh7xfiD5u5wBx0enq4,1066
13
+ RNApolis-0.4.10.dist-info/METADATA,sha256=AiTwfWTRaaJ_Zd_E1UIYMu54Hi0vu9WN8dYA67x3SLk,54323
14
+ RNApolis-0.4.10.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
15
+ RNApolis-0.4.10.dist-info/entry_points.txt,sha256=foN2Pn5e-OzEz0fFmNoX6PnFSZFQntOlY8LbognP5F0,308
16
+ RNApolis-0.4.10.dist-info/top_level.txt,sha256=LcO18koxZcWoJ21KDRRRo_tyIbmXL5z61dPitZpy8yc,9
17
+ RNApolis-0.4.10.dist-info/RECORD,,
rnapolis/annotator.py CHANGED
@@ -9,6 +9,7 @@ from typing import Dict, List, Optional, Set, Tuple
9
9
 
10
10
  import numpy
11
11
  import numpy.typing
12
+ import orjson
12
13
  from ordered_set import OrderedSet
13
14
  from rnapolis.common import (
14
15
  BR,
rnapolis/common.py CHANGED
@@ -940,6 +940,27 @@ class BpSeq:
940
940
  solutions.add(self.__make_dot_bracket(regions, orders))
941
941
  return list(solutions)
942
942
 
943
+ def without_pseudoknots(self):
944
+ return BpSeq.from_dotbracket(self.dot_bracket.without_pseudoknots())
945
+
946
+ def without_isolated(self):
947
+ stems, _, _, _ = self.elements
948
+ to_unpair = []
949
+
950
+ for stem in stems:
951
+ if stem.strand5p.first == stem.strand5p.last:
952
+ to_unpair.append(stem.strand5p.first - 1)
953
+ to_unpair.append(stem.strand3p.first - 1)
954
+
955
+ if not to_unpair:
956
+ return self
957
+
958
+ entries = self.entries.copy()
959
+ for i in to_unpair:
960
+ entries[i].pair = 0
961
+
962
+ return BpSeq(entries)
963
+
943
964
 
944
965
  @dataclass
945
966
  class DotBracket:
@@ -990,6 +1011,10 @@ class DotBracket:
990
1011
  def __hash__(self) -> int:
991
1012
  return hash((self.sequence, self.structure))
992
1013
 
1014
+ def without_pseudoknots(self):
1015
+ structure = re.sub(r"[\[\]\{\}\<\>A-Za-z]", ".", self.structure)
1016
+ return DotBracket(self.sequence, structure)
1017
+
993
1018
 
994
1019
  @dataclass
995
1020
  class MultiStrandDotBracket(DotBracket):
@@ -9,6 +9,12 @@ def main():
9
9
  parser = argparse.ArgumentParser()
10
10
  parser.add_argument("--dbn", help="path to DotBracket file")
11
11
  parser.add_argument("--bpseq", help="path to BpSeq file")
12
+ parser.add_argument(
13
+ "--remove-pseudoknots", action="store_true", help="remove pseudoknots"
14
+ )
15
+ parser.add_argument(
16
+ "--remove-isolated", action="store_true", help="remove isolated base pairs"
17
+ )
12
18
  args = parser.parse_args()
13
19
 
14
20
  if args.dbn:
@@ -19,6 +25,12 @@ def main():
19
25
  parser.print_help()
20
26
  return
21
27
 
28
+ if args.remove_isolated:
29
+ bpseq = bpseq.without_isolated()
30
+
31
+ if args.remove_pseudoknots:
32
+ bpseq = bpseq.without_pseudoknots()
33
+
22
34
  print(f"Full dot-bracket:\n{bpseq.dot_bracket}")
23
35
  stems, single_strands, hairpins, loops = bpseq.elements
24
36
 
@@ -1,17 +0,0 @@
1
- rnapolis/annotator.py,sha256=7U3f0gchKdIGc6FwJx0UAc_95HJI5SgECj-b7-1yBhc,22086
2
- rnapolis/clashfinder.py,sha256=i95kp0o6OWNqmJDBr-PbsZd7RY2iJtBDr7QqolJSuAQ,8513
3
- rnapolis/common.py,sha256=7KSWZzqR7ntpaS6VRDYgpP2pC1dnBttOzYB06hQzWEI,30499
4
- rnapolis/metareader.py,sha256=I1-cXc2YNBPwa3zihAnMTjEsAo79tEKzSmWu5yvN1Pk,2071
5
- rnapolis/molecule_filter.py,sha256=hB6-nXgjmw7FAsQ3bj0cZ2FvuW2I1PXunEfcdwEUB1o,7389
6
- rnapolis/motif_extractor.py,sha256=duHvpi9Ulcny9K60E6VBpz5RpJZw-KdTB4_Ph0iP478,774
7
- rnapolis/parser.py,sha256=2pQYy0sh8TCpeluMmmSJ7C5dudK_bsfstTWCdpwwpNU,15193
8
- rnapolis/rfam_folder.py,sha256=SjiiyML_T1__saruFwSMJEoQ7Y55GIU8ktS8ZUn5-fw,11111
9
- rnapolis/tertiary.py,sha256=6t9ZB4w33-5n_M3sns1RoFXCOTgVAgGH4WDNG5OG9Kg,23426
10
- rnapolis/transformer.py,sha256=V9nOQvdq4-p7yUWo0vQg0CDQMpmyxz9t4TMSRVEKHnw,1817
11
- rnapolis/util.py,sha256=IdquFO3PV1_KDqodjupzm0Rqvgy0CeSzxGHaGEHYXVU,543
12
- RNApolis-0.4.8.dist-info/LICENSE,sha256=ZGRu12MzCgbYA-Lt8MyBlmjvPZh7xfiD5u5wBx0enq4,1066
13
- RNApolis-0.4.8.dist-info/METADATA,sha256=FZsizaaGYKRz7ndlAySWt8mPfpjjHUoP-OzXaO3LBv8,54322
14
- RNApolis-0.4.8.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
15
- RNApolis-0.4.8.dist-info/entry_points.txt,sha256=foN2Pn5e-OzEz0fFmNoX6PnFSZFQntOlY8LbognP5F0,308
16
- RNApolis-0.4.8.dist-info/top_level.txt,sha256=LcO18koxZcWoJ21KDRRRo_tyIbmXL5z61dPitZpy8yc,9
17
- RNApolis-0.4.8.dist-info/RECORD,,