RNApolis 0.3.14__py3-none-any.whl → 0.3.16__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.14.dist-info → RNApolis-0.3.16.dist-info}/METADATA +1 -1
- {RNApolis-0.3.14.dist-info → RNApolis-0.3.16.dist-info}/RECORD +8 -8
- rnapolis/common.py +22 -18
- rnapolis/parser.py +12 -0
- {RNApolis-0.3.14.dist-info → RNApolis-0.3.16.dist-info}/LICENSE +0 -0
- {RNApolis-0.3.14.dist-info → RNApolis-0.3.16.dist-info}/WHEEL +0 -0
- {RNApolis-0.3.14.dist-info → RNApolis-0.3.16.dist-info}/entry_points.txt +0 -0
- {RNApolis-0.3.14.dist-info → RNApolis-0.3.16.dist-info}/top_level.txt +0 -0
@@ -1,17 +1,17 @@
|
|
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
|
7
|
-
rnapolis/parser.py,sha256=
|
7
|
+
rnapolis/parser.py,sha256=6xEeQghil0eXIzi0bNUkebknfqIxx9EfOfT9q33eN4A,12666
|
8
8
|
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.16.dist-info/LICENSE,sha256=ZGRu12MzCgbYA-Lt8MyBlmjvPZh7xfiD5u5wBx0enq4,1066
|
13
|
+
RNApolis-0.3.16.dist-info/METADATA,sha256=k4D9WCUq94R1lGhWmYJqTjfh9ww8RPRjxg_IOHiPEcg,54301
|
14
|
+
RNApolis-0.3.16.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
15
|
+
RNApolis-0.3.16.dist-info/entry_points.txt,sha256=foN2Pn5e-OzEz0fFmNoX6PnFSZFQntOlY8LbognP5F0,308
|
16
|
+
RNApolis-0.3.16.dist-info/top_level.txt,sha256=LcO18koxZcWoJ21KDRRRo_tyIbmXL5z61dPitZpy8yc,9
|
17
|
+
RNApolis-0.3.16.dist-info/RECORD,,
|
rnapolis/common.py
CHANGED
@@ -900,33 +900,37 @@ class BpSeq:
|
|
900
900
|
else:
|
901
901
|
stack.pop()
|
902
902
|
|
903
|
-
#
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
solutions = set()
|
903
|
+
# find unique orders for each component
|
904
|
+
unique = []
|
905
|
+
for component in components:
|
906
|
+
unique.append(set())
|
908
907
|
|
909
|
-
|
910
|
-
|
908
|
+
for permutation in itertools.permutations(component):
|
909
|
+
orders = {region: 0 for region in component}
|
911
910
|
|
912
|
-
|
913
|
-
|
914
|
-
region_i = component[i]
|
915
|
-
available = [True for _ in range(len(graph))]
|
911
|
+
for i in range(1, len(permutation)):
|
912
|
+
available = [True for _ in range(len(component))]
|
916
913
|
|
917
914
|
for j in range(i):
|
918
|
-
|
919
|
-
|
920
|
-
if region_j in graph[region_i]:
|
921
|
-
available[orders[region_j]] = False
|
915
|
+
if permutation[j] in graph[permutation[i]]:
|
916
|
+
available[orders[permutation[j]]] = False
|
922
917
|
|
923
918
|
order = next(
|
924
|
-
filter(lambda
|
919
|
+
filter(lambda k: available[k] is True, range(len(available)))
|
925
920
|
)
|
926
|
-
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))}
|
927
929
|
|
928
|
-
|
930
|
+
for order in assignment:
|
931
|
+
orders.update(order)
|
929
932
|
|
933
|
+
solutions.add(self.__make_dot_bracket(regions, orders))
|
930
934
|
return list(solutions)
|
931
935
|
|
932
936
|
|
rnapolis/parser.py
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import logging
|
1
2
|
from typing import IO, Dict, List, Optional, Tuple, Union
|
2
3
|
|
3
4
|
from mmcif.io.IoAdapterPy import IoAdapterPy
|
@@ -5,6 +6,9 @@ from mmcif.io.IoAdapterPy import IoAdapterPy
|
|
5
6
|
from rnapolis.common import ResidueAuth, ResidueLabel
|
6
7
|
from rnapolis.tertiary import BASE_ATOMS, Atom, Residue3D, Structure3D
|
7
8
|
|
9
|
+
logging.basicConfig(level=logging.INFO)
|
10
|
+
logger = logging.getLogger(__name__)
|
11
|
+
|
8
12
|
|
9
13
|
def read_3d_structure(
|
10
14
|
cif_or_pdb: IO[str], model: Optional[int] = None, nucleic_acid_only: bool = False
|
@@ -104,6 +108,14 @@ def parse_cif(
|
|
104
108
|
auth_residue_name,
|
105
109
|
)
|
106
110
|
|
111
|
+
if label is None and auth is None:
|
112
|
+
# this should not happen in a valid mmCIF file
|
113
|
+
# skipping the line
|
114
|
+
logger.debug(
|
115
|
+
f"Cannot parse an atom line without chain name, residue number, and residue name: {row}"
|
116
|
+
)
|
117
|
+
continue
|
118
|
+
|
107
119
|
model = int(row_dict.get("pdbx_PDB_model_num", "1"))
|
108
120
|
atom_name = row_dict["label_atom_id"]
|
109
121
|
x = float(row_dict["Cartn_x"])
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|