gemmi-protools 1.0.1__py3-none-any.whl → 1.0.3__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.

Potentially problematic release.


This version of gemmi-protools might be problematic. Click here for more details.

@@ -111,6 +111,23 @@ def parse_cif(path: str) -> dict:
111
111
 
112
112
  info_map = dict(st.info)
113
113
  pdb_code = info_map.get("_entry.id", "").lower()
114
+
115
+ v1 = block.find_value("_refine.ls_d_res_high")
116
+ v2 = block.find_value("_em_3d_reconstruction.resolution")
117
+
118
+ resolution = 0.0
119
+ if v1 not in [".", "?", None]:
120
+ resolution = v1
121
+ elif v2 not in [".", "?", None]:
122
+ resolution = v2
123
+
124
+ try:
125
+ resolution = float(resolution)
126
+ except:
127
+ resolution = 0.0
128
+
129
+ st.resolution = resolution
130
+
114
131
  info = dict(description={k: v for k, v in entityid2description.items() if v and v != "?"},
115
132
  source=entityid2src,
116
133
  resolution=st.resolution,
@@ -364,13 +381,24 @@ class StructureParser(object):
364
381
  return out
365
382
 
366
383
  def polymer_sequences(self, pdbx: bool = False):
384
+ """
385
+ entity sequences for polymers
386
+ :param pdbx:
387
+ :return:
388
+ """
367
389
  out = dict()
390
+ subchain_id2entity_id = self.subchain_id_to_entity_id
391
+ entity_dict = {ent.name: ent for ent in self.STRUCT.entities}
392
+
368
393
  for ch, polymer_type in self.polymer_types.items():
369
394
  polymer = self.get_chain(ch).get_polymer()
395
+ entity_id = subchain_id2entity_id[polymer.subchain_id()]
396
+ ent = entity_dict[entity_id]
397
+
370
398
  if pdbx:
371
- s = gemmi.pdbx_one_letter_code(polymer.extract_sequence(), gemmi.sequence_kind(polymer_type))
399
+ s = gemmi.pdbx_one_letter_code(ent.full_sequence, gemmi.sequence_kind(polymer_type))
372
400
  else:
373
- s = polymer.make_one_letter_sequence().replace("-", "")
401
+ s = "".join([gemmi.find_tabulated_residue(r).one_letter_code for r in ent.full_sequence]).upper()
374
402
  out[ch] = s
375
403
  return out
376
404
 
@@ -660,15 +688,18 @@ class StructureParser(object):
660
688
  raise ValueError("Chain %s not in found" % chain_name_2)
661
689
 
662
690
  flag = True
691
+ sw_name = ""
692
+
663
693
  while flag:
664
694
  characters = string.ascii_letters + string.digits
665
695
  sw_name = ''.join(random.choices(characters, k=4))
666
696
  if sw_name not in self.chain_ids:
667
697
  flag = False
668
698
 
669
- self.rename_chain(chain_name_1, sw_name)
670
- self.rename_chain(chain_name_2, chain_name_1)
671
- self.rename_chain(sw_name, chain_name_2)
699
+ if sw_name != "":
700
+ self.rename_chain(chain_name_1, sw_name)
701
+ self.rename_chain(chain_name_2, chain_name_1)
702
+ self.rename_chain(sw_name, chain_name_2)
672
703
 
673
704
  def make_one_letter_chain(self, only_uppercase: bool = True):
674
705
  uppercase_letters = list(string.ascii_uppercase)
@@ -695,7 +726,6 @@ class StructureParser(object):
695
726
 
696
727
  # not use yet
697
728
  letters_valid = [l for l in letters if l not in self.chain_ids]
698
- chains2rename = [ch for ch in self.chain_ids if ch not in letters]
699
729
  mapper = {ch: letters_valid.pop() for ch in self.chain_ids if ch not in letters}
700
730
 
701
731
  for origin_name, target_name in mapper.items():
@@ -205,10 +205,7 @@ def annotate_pdb(struct_file: str):
205
205
  st.load_from_file(struct_file)
206
206
  st.clean_structure()
207
207
 
208
- subchain_id2entity_id = dict()
209
- for ent in st.STRUCT.entities:
210
- for ch in ent.subchains:
211
- subchain_id2entity_id[ch] = ent.name
208
+ subchain_id2entity_id = st.subchain_id_to_entity_id
212
209
 
213
210
  # Merge sequences
214
211
  polymers = dict()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gemmi_protools
3
- Version: 1.0.1
3
+ Version: 1.0.3
4
4
  Summary: An Enhanced tool to process PDB structures based on Gemmi
5
5
  Author: Luo Jiejian
6
6
  Author-email: Luo Jiejian <luojiejian12@mails.ucas.ac.cn>
@@ -6,14 +6,14 @@ gemmi_protools/data/MHC/MHC_combined.hmm.h3m,sha256=CvNMCsobQiX-wL7iB4CreNcbpnEl
6
6
  gemmi_protools/data/MHC/MHC_combined.hmm.h3p,sha256=-mK278pRedG3-KL-DtuVAQy7La9DgXg5FcP89D6X3Ck,78325
7
7
  gemmi_protools/io/__init__.py,sha256=F6e1xNT_7lZAWQgNIneH06o2qtWYrHNr_xPUPTwwx5E,29
8
8
  gemmi_protools/io/convert.py,sha256=A1i1vPgxG1LqMSUvWtegLl9LipgUQbfmKeGJ_f00UYo,3781
9
- gemmi_protools/io/reader.py,sha256=joQr_glerss3QcfIJGr0O6lw8Mc4N1-pVobMHqY1zi0,33255
9
+ gemmi_protools/io/reader.py,sha256=-O9h5CIGPDnE1rDGMZqfApXk3_LRacNt_DaQ0zACkto,33992
10
10
  gemmi_protools/tools/__init__.py,sha256=F6e1xNT_7lZAWQgNIneH06o2qtWYrHNr_xPUPTwwx5E,29
11
11
  gemmi_protools/tools/align.py,sha256=oKHvpeDa62zEjLkPmuyBM6avYDl3HFeJVHeRX62I2f4,7085
12
12
  gemmi_protools/tools/dockq.py,sha256=baCuO5-GZCwrlS59T5UIXogpM44OIFIfXqksqRBAb0A,4428
13
13
  gemmi_protools/tools/mesh.py,sha256=73MuJYwS_ACJI15OsrooAAhB1Ti4fM8CJSBqFOBR7LU,6537
14
- gemmi_protools/tools/pdb_annot.py,sha256=EzgcntlERR04TfN0dIhf_GM9UCXEvUaH60Xohmbx_do,8253
15
- gemmi_protools-1.0.1.dist-info/licenses/LICENSE,sha256=JuQvKcgj6n11y5y6nXr9rABv3gJSswc4eTCd5WZBtSY,1062
16
- gemmi_protools-1.0.1.dist-info/METADATA,sha256=cdKO7zuEv4ZwwCrcBZcprXmDtLB4AbEFDKH887JRcTI,1034
17
- gemmi_protools-1.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
18
- gemmi_protools-1.0.1.dist-info/top_level.txt,sha256=P12mYJi5O5EKIn5u-RFaWxuix431CgLacSRD7rBid_U,15
19
- gemmi_protools-1.0.1.dist-info/RECORD,,
14
+ gemmi_protools/tools/pdb_annot.py,sha256=enATyAHq0dE8TMsKQhsSbYj-baGrI33iviJdW2R7Hv8,8157
15
+ gemmi_protools-1.0.3.dist-info/licenses/LICENSE,sha256=JuQvKcgj6n11y5y6nXr9rABv3gJSswc4eTCd5WZBtSY,1062
16
+ gemmi_protools-1.0.3.dist-info/METADATA,sha256=mfEiC_hb27lnZzrW5f3EMpuEi_ri81w0xNsl1PXqVLE,1034
17
+ gemmi_protools-1.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
18
+ gemmi_protools-1.0.3.dist-info/top_level.txt,sha256=P12mYJi5O5EKIn5u-RFaWxuix431CgLacSRD7rBid_U,15
19
+ gemmi_protools-1.0.3.dist-info/RECORD,,