RNApolis 0.3.13__py3-none-any.whl → 0.3.15__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.
- {RNApolis-0.3.13.dist-info → RNApolis-0.3.15.dist-info}/METADATA +1 -1
- {RNApolis-0.3.13.dist-info → RNApolis-0.3.15.dist-info}/RECORD +7 -7
- rnapolis/common.py +27 -19
- {RNApolis-0.3.13.dist-info → RNApolis-0.3.15.dist-info}/LICENSE +0 -0
- {RNApolis-0.3.13.dist-info → RNApolis-0.3.15.dist-info}/WHEEL +0 -0
- {RNApolis-0.3.13.dist-info → RNApolis-0.3.15.dist-info}/entry_points.txt +0 -0
- {RNApolis-0.3.13.dist-info → RNApolis-0.3.15.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
rnapolis/annotator.py,sha256=XnjFBeu3P_2UMdkD4Ao7m7K6JfeqYa-13xRzghrLvt8,22086
|
2
2
|
rnapolis/clashfinder.py,sha256=jD3s_UovygWi01NUbQNeAeRRFkARTSRraLXUV43UbAA,8514
|
3
|
-
rnapolis/common.py,sha256=
|
3
|
+
rnapolis/common.py,sha256=tbmKV64nLClmzNN0HyKnvWA0-5aSyf4x8CGpBjpIJ4M,30290
|
4
4
|
rnapolis/metareader.py,sha256=4qtMKRvww2sUStLeV8WVrLEt-ScydHUv4Gxx96tnf-M,1683
|
5
5
|
rnapolis/molecule_filter.py,sha256=NhjuqdCRnXgPefWZPeTq77tifmnAzamQtA0ODqPPG9k,6918
|
6
6
|
rnapolis/motif_extractor.py,sha256=duHvpi9Ulcny9K60E6VBpz5RpJZw-KdTB4_Ph0iP478,774
|
@@ -9,9 +9,9 @@ rnapolis/rfam_folder.py,sha256=3rgXEJR16uPFy_BOo8qkdClOAOQDVOkidnLE-yoRbeI,11112
|
|
9
9
|
rnapolis/tertiary.py,sha256=VuATTN2SD7lBL9iUgT-doDwuEYsLodgV2u-SwQsyQcU,19658
|
10
10
|
rnapolis/transformer.py,sha256=V9nOQvdq4-p7yUWo0vQg0CDQMpmyxz9t4TMSRVEKHnw,1817
|
11
11
|
rnapolis/util.py,sha256=IdquFO3PV1_KDqodjupzm0Rqvgy0CeSzxGHaGEHYXVU,543
|
12
|
-
RNApolis-0.3.
|
13
|
-
RNApolis-0.3.
|
14
|
-
RNApolis-0.3.
|
15
|
-
RNApolis-0.3.
|
16
|
-
RNApolis-0.3.
|
17
|
-
RNApolis-0.3.
|
12
|
+
RNApolis-0.3.15.dist-info/LICENSE,sha256=ZGRu12MzCgbYA-Lt8MyBlmjvPZh7xfiD5u5wBx0enq4,1066
|
13
|
+
RNApolis-0.3.15.dist-info/METADATA,sha256=JINDTFBZOiXrJUB3-jnBW8YIHcRUc3mQ2EKoaFDS5zE,54301
|
14
|
+
RNApolis-0.3.15.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
15
|
+
RNApolis-0.3.15.dist-info/entry_points.txt,sha256=foN2Pn5e-OzEz0fFmNoX6PnFSZFQntOlY8LbognP5F0,308
|
16
|
+
RNApolis-0.3.15.dist-info/top_level.txt,sha256=LcO18koxZcWoJ21KDRRRo_tyIbmXL5z61dPitZpy8yc,9
|
17
|
+
RNApolis-0.3.15.dist-info/RECORD,,
|
rnapolis/common.py
CHANGED
@@ -869,8 +869,12 @@ class BpSeq:
|
|
869
869
|
graph[i].add(j)
|
870
870
|
graph[j].add(i)
|
871
871
|
|
872
|
-
#
|
872
|
+
# early exit for non-pseudoknotted structures
|
873
873
|
vertices = list(graph.keys())
|
874
|
+
if not vertices:
|
875
|
+
return [self.fcfs]
|
876
|
+
|
877
|
+
# find all connected components
|
874
878
|
visited = {vertex: False for vertex in vertices}
|
875
879
|
components = []
|
876
880
|
|
@@ -896,33 +900,37 @@ class BpSeq:
|
|
896
900
|
else:
|
897
901
|
stack.pop()
|
898
902
|
|
899
|
-
#
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
solutions = set()
|
903
|
+
# find unique orders for each component
|
904
|
+
unique = []
|
905
|
+
for component in components:
|
906
|
+
unique.append(set())
|
904
907
|
|
905
|
-
|
906
|
-
|
908
|
+
for permutation in itertools.permutations(component):
|
909
|
+
orders = {region: 0 for region in component}
|
907
910
|
|
908
|
-
|
909
|
-
|
910
|
-
region_i = component[i]
|
911
|
-
available = [True for _ in range(len(graph))]
|
911
|
+
for i in range(1, len(permutation)):
|
912
|
+
available = [True for _ in range(len(component))]
|
912
913
|
|
913
914
|
for j in range(i):
|
914
|
-
|
915
|
-
|
916
|
-
if region_j in graph[region_i]:
|
917
|
-
available[orders[region_j]] = False
|
915
|
+
if permutation[j] in graph[permutation[i]]:
|
916
|
+
available[orders[permutation[j]]] = False
|
918
917
|
|
919
918
|
order = next(
|
920
|
-
filter(lambda
|
919
|
+
filter(lambda k: available[k] is True, range(len(available)))
|
921
920
|
)
|
922
|
-
orders[
|
921
|
+
orders[permutation[i]] = order
|
922
|
+
|
923
|
+
unique[-1].add(frozenset(orders.items()))
|
924
|
+
|
925
|
+
# generate all possible dot-brackets
|
926
|
+
solutions = set()
|
927
|
+
for assignment in itertools.product(*unique):
|
928
|
+
orders = {region: 0 for region in range(len(regions))}
|
923
929
|
|
924
|
-
|
930
|
+
for order in assignment:
|
931
|
+
orders.update(order)
|
925
932
|
|
933
|
+
solutions.add(self.__make_dot_bracket(regions, orders))
|
926
934
|
return list(solutions)
|
927
935
|
|
928
936
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|