modelcraft 4.0.0__tar.gz → 4.0.2__tar.gz

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.
Files changed (93) hide show
  1. {modelcraft-4.0.0/modelcraft.egg-info → modelcraft-4.0.2}/PKG-INFO +1 -1
  2. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/__init__.py +1 -1
  3. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/modelcraftxray.py +8 -2
  4. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/monlib.py +6 -4
  5. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_monlib.py +4 -0
  6. {modelcraft-4.0.0 → modelcraft-4.0.2/modelcraft.egg-info}/PKG-INFO +1 -1
  7. {modelcraft-4.0.0 → modelcraft-4.0.2}/setup.py +1 -1
  8. {modelcraft-4.0.0 → modelcraft-4.0.2}/LICENSE +0 -0
  9. {modelcraft-4.0.0 → modelcraft-4.0.2}/MANIFEST.in +0 -0
  10. {modelcraft-4.0.0 → modelcraft-4.0.2}/README.md +0 -0
  11. {modelcraft-4.0.0 → modelcraft-4.0.2}/docs/css/custom.css +0 -0
  12. {modelcraft-4.0.0 → modelcraft-4.0.2}/docs/css/milligram.min.css +0 -0
  13. {modelcraft-4.0.0 → modelcraft-4.0.2}/docs/css/normalize.min.css +0 -0
  14. {modelcraft-4.0.0 → modelcraft-4.0.2}/docs/img/modelcraft.png +0 -0
  15. {modelcraft-4.0.0 → modelcraft-4.0.2}/docs/index.html +0 -0
  16. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/__main__.py +0 -0
  17. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/arguments.py +0 -0
  18. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/cell.py +0 -0
  19. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/combine.py +0 -0
  20. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/contents.py +0 -0
  21. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/coot/prune.py +0 -0
  22. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/coot/sidechains.py +0 -0
  23. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/environ.py +0 -0
  24. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/geometry.py +0 -0
  25. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/job.py +0 -0
  26. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/__init__.py +0 -0
  27. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/acedrg.py +0 -0
  28. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/acorn.py +0 -0
  29. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/buccaneer.py +0 -0
  30. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/comit.py +0 -0
  31. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/coot.py +0 -0
  32. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/ctruncate.py +0 -0
  33. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/emda.py +0 -0
  34. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/findwaters.py +0 -0
  35. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/freerflag.py +0 -0
  36. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/libg.py +0 -0
  37. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/molrep.py +0 -0
  38. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/nautilus.py +0 -0
  39. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/parrot.py +0 -0
  40. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/phasematch.py +0 -0
  41. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/refmac.py +0 -0
  42. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/servalcat.py +0 -0
  43. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/jobs/sheetbend.py +0 -0
  44. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/maps.py +0 -0
  45. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/modelcraftem.py +0 -0
  46. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/pipeline.py +0 -0
  47. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/reflections.py +0 -0
  48. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/scripts/__init__.py +0 -0
  49. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/scripts/contents.py +0 -0
  50. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/scripts/copies.py +0 -0
  51. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/scripts/modelcraft.py +0 -0
  52. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/solvent.py +0 -0
  53. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/structure.py +0 -0
  54. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/__init__.py +0 -0
  55. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/__init__.py +0 -0
  56. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_acedrg.py +0 -0
  57. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_arguments.py +0 -0
  58. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_buccaneer.py +0 -0
  59. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_cell.py +0 -0
  60. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_comit.py +0 -0
  61. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_contents.py +0 -0
  62. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_coot.py +0 -0
  63. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_copies.py +0 -0
  64. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_ctruncate.py +0 -0
  65. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_findwaters.py +0 -0
  66. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_freerflag.py +0 -0
  67. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_geometry.py +0 -0
  68. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_libg.py +0 -0
  69. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_molrep.py +0 -0
  70. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_nautilus.py +0 -0
  71. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_parrot.py +0 -0
  72. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_phasematch.py +0 -0
  73. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_reflections.py +0 -0
  74. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_refmac.py +0 -0
  75. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_sheetbend.py +0 -0
  76. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_solvent.py +0 -0
  77. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_structure.py +0 -0
  78. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccp4/test_xray.py +0 -0
  79. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccpem/__init__.py +0 -0
  80. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccpem/test_em.py +0 -0
  81. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccpem/test_emda.py +0 -0
  82. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccpem/test_refmac.py +0 -0
  83. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/ccpem/test_servalcat.py +0 -0
  84. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/unittests/__init__.py +0 -0
  85. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/unittests/test_contents.py +0 -0
  86. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/tests/unittests/test_reflections.py +0 -0
  87. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft/utils.py +0 -0
  88. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft.egg-info/SOURCES.txt +0 -0
  89. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft.egg-info/dependency_links.txt +0 -0
  90. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft.egg-info/entry_points.txt +0 -0
  91. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft.egg-info/requires.txt +0 -0
  92. {modelcraft-4.0.0 → modelcraft-4.0.2}/modelcraft.egg-info/top_level.txt +0 -0
  93. {modelcraft-4.0.0 → modelcraft-4.0.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modelcraft
3
- Version: 4.0.0
3
+ Version: 4.0.2
4
4
  Summary: Automated model building pipeline for X-ray crystallography
5
5
  Home-page: https://github.com/paulsbond/modelcraft
6
6
  Author: Paul Bond
@@ -1,4 +1,4 @@
1
- __version__ = "4.0.0"
1
+ __version__ = "4.0.2"
2
2
 
3
3
  from .cell import max_distortion as max_cell_distortion
4
4
  from .cell import remove_scale
@@ -123,6 +123,8 @@ class ModelCraftXray(Pipeline):
123
123
  def run_buccaneer_and_nautilus(self):
124
124
  buccaneer = self.buccaneer()
125
125
  nautilus = self.nautilus()
126
+ if buccaneer is None and nautilus is None:
127
+ self.terminate(reason="No residues built")
126
128
  if buccaneer is None or nautilus is None:
127
129
  self.update_current_from_refmac_result(buccaneer or nautilus)
128
130
  else:
@@ -132,7 +134,7 @@ class ModelCraftXray(Pipeline):
132
134
 
133
135
  def buccaneer(self):
134
136
  if not self.args.contents.proteins:
135
- return
137
+ return None
136
138
  result = Buccaneer(
137
139
  contents=self.args.contents,
138
140
  fsigf=self.args.fmean,
@@ -147,12 +149,14 @@ class ModelCraftXray(Pipeline):
147
149
  cycles=3 if self.cycle == 1 else 2,
148
150
  threads=self.args.threads,
149
151
  ).run(self)
152
+ if result.structure is None or ModelStats(result.structure).residues == 0:
153
+ return None
150
154
  write_mmcif(self.path("current.cif"), result.structure)
151
155
  return self.run_refmac(result.structure, cycles=10)
152
156
 
153
157
  def nautilus(self):
154
158
  if not (self.args.contents.rnas or self.args.contents.dnas):
155
- return
159
+ return None
156
160
  result = Nautilus(
157
161
  contents=self.args.contents,
158
162
  fsigf=self.args.fmean,
@@ -161,6 +165,8 @@ class ModelCraftXray(Pipeline):
161
165
  freer=self.args.freer,
162
166
  structure=self.current_structure,
163
167
  ).run(self)
168
+ if result.structure is None or ModelStats(result.structure).residues == 0:
169
+ return None
164
170
  write_mmcif(self.path("current.cif"), result.structure)
165
171
  return self.run_refmac(result.structure, cycles=10)
166
172
 
@@ -29,10 +29,12 @@ def in_library(code: str) -> bool:
29
29
 
30
30
  @functools.lru_cache(maxsize=None)
31
31
  def group(code: str) -> gemmi.ChemComp.Group:
32
- doc = gemmi.cif.read(_path(code))
33
- monlib = gemmi.MonLib()
34
- monlib.read_monomer_doc(doc)
35
- return monlib.monomers[code].group
32
+ if in_library(code):
33
+ doc = gemmi.cif.read(_path(code))
34
+ monlib = gemmi.MonLib()
35
+ monlib.read_monomer_doc(doc)
36
+ return monlib.monomers[code].group
37
+ return None
36
38
 
37
39
 
38
40
  @functools.lru_cache(maxsize=None)
@@ -26,6 +26,7 @@ def test_in_library():
26
26
  assert in_library(code)
27
27
  for code in RNA_CODES.values():
28
28
  assert in_library(code)
29
+ assert not in_library("NOT_IN_MONLIB")
29
30
 
30
31
 
31
32
  def test_group():
@@ -36,6 +37,7 @@ def test_group():
36
37
  assert group("U") == gemmi.ChemComp.Group.Rna
37
38
  assert group("DT") == gemmi.ChemComp.Group.Dna
38
39
  assert group("HOH") == gemmi.ChemComp.Group.NonPolymer
40
+ assert group("NOT_IN_MONLIB") is None
39
41
 
40
42
 
41
43
  def test_protein():
@@ -46,6 +48,7 @@ def test_protein():
46
48
  assert not is_protein("U")
47
49
  assert not is_protein("DT")
48
50
  assert not is_protein("HOH")
51
+ assert not is_protein("NOT_IN_MONLIB")
49
52
 
50
53
 
51
54
  def test_nucleic():
@@ -55,3 +58,4 @@ def test_nucleic():
55
58
  assert is_nucleic("U")
56
59
  assert is_nucleic("DT")
57
60
  assert not is_nucleic("HOH")
61
+ assert not is_nucleic("NOT_IN_MONLIB")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modelcraft
3
- Version: 4.0.0
3
+ Version: 4.0.2
4
4
  Summary: Automated model building pipeline for X-ray crystallography
5
5
  Home-page: https://github.com/paulsbond/modelcraft
6
6
  Author: Paul Bond
@@ -5,7 +5,7 @@ with open("README.md", "r") as f:
5
5
 
6
6
  setuptools.setup(
7
7
  name="modelcraft",
8
- version="4.0.0",
8
+ version="4.0.2",
9
9
  author="Paul Bond",
10
10
  author_email="paul.bond@york.ac.uk",
11
11
  description="Automated model building pipeline for X-ray crystallography",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes