Skip to content

Commit 6c174d5

Browse files
committed
Added filter 3D structures and fixed SG bug NO_JIRA
1 parent 744874f commit 6c174d5

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

scripts/refcodes_with_properties/entry_property_calculator.py

+25-3
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,10 @@ class _ValueFilter(_Filter):
8989
def __init__(self, args):
9090
values = [p for p in args.split()]
9191
#To do: add option for two values?
92-
self.expected_value = values[0]
92+
if values[0] == 'None':
93+
self.expected_value = None
94+
else:
95+
self.expected_value = values[0]
9396

9497
def value(self, theobject):
9598
raise NotImplementedError # override this
@@ -214,6 +217,25 @@ def value(self, entry):
214217
register(AllHaveSitesFilter)
215218

216219

220+
class Has3DStructure(_ComparativeFilter):
221+
def __init__(self, args):
222+
super().__init__(args)
223+
224+
@staticmethod
225+
def name():
226+
return "has 3D structure"
227+
228+
@staticmethod
229+
def helptext():
230+
return "whether 3D coordinates have been determined for the structure"
231+
232+
def value(self, entry):
233+
return entry.has_3d_structure
234+
235+
236+
register(Has3DStructure)
237+
238+
217239
class DisorderedFilter(_ComparativeFilter):
218240
def __init__(self, args):
219241
super().__init__(args)
@@ -445,7 +467,7 @@ def value(self, entry):
445467
chirality = next((atom.chirality for atom in molecule.atoms if atom.is_chiral), None)
446468
return chirality
447469
except TypeError:
448-
return 0
470+
return None
449471

450472

451473
register(ChiralityFilter)
@@ -463,7 +485,7 @@ def evaluate(self, entry):
463485
try:
464486
if not method(entry):
465487
return False
466-
except TypeError:
488+
except (TypeError, RuntimeError):
467489
return False
468490

469491
return True

scripts/refcodes_with_properties/refcodes_with_properties.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,4 @@
7373
else:
7474
for entry in reader:
7575
if filterer.evaluate(entry):
76-
outfile.write(entry.identifier + "\n")
76+
outfile.write(entry.identifier + "\n")

0 commit comments

Comments
 (0)