RNApolis 0.3.13__py3-none-any.whl → 0.3.15__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- {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
|