Skip to content

Commit 885a405

Browse files
committed
property failure handling
1 parent 4abdcf3 commit 885a405

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

chebai_graph/preprocessing/datasets/chebi.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
RandomFeatureInitializationReader,
4343
)
4444

45-
from .utils import resolve_property
45+
from chebai_graph.preprocessing.datasets.utils import resolve_property
4646

4747

4848
class ChEBI50GraphData(ChEBIOver50):
@@ -142,9 +142,8 @@ def enc_if_not_none(encode, value):
142142
r = None
143143
returned_results.append(r)
144144
mols = [
145-
augmented_mol[1]
145+
augmented_mol[1] if augmented_mol is not None else None
146146
for augmented_mol in returned_results
147-
if augmented_mol is not None
148147
]
149148
else:
150149
mols = features
@@ -155,7 +154,7 @@ def enc_if_not_none(encode, value):
155154
# read all property values first, then encode
156155
rank_zero_info(f"\tReading property values of {property.name}...")
157156
property_values = [
158-
self.reader.read_property(mol, property)
157+
self.reader.read_property(mol, property) if mol is not None else None
159158
for mol in tqdm.tqdm(mols)
160159
]
161160
rank_zero_info(f"\tEncoding property values of {property.name}...")
@@ -610,14 +609,7 @@ def _merge_props_into_base(
610609
enc_len = property_values.shape[1]
611610
# -------------- Node properties ---------------
612611
if isinstance(property, AllNodeTypeProperty):
613-
try:
614-
x[:, atom_offset : atom_offset + enc_len] = property_values
615-
except Exception as e:
616-
raise ValueError(
617-
f"Error assigning property '{property.name}' values to node features: {e}\n"
618-
f"Property values shape: {property_values.shape}, expected (num_nodes, {enc_len})\n"
619-
f"Node feature matrix shape: {x.shape}"
620-
)
612+
x[:, atom_offset : atom_offset + enc_len] = property_values
621613
atom_offset += enc_len
622614
fg_offset += enc_len
623615
graph_offset += enc_len
@@ -855,3 +847,9 @@ class ChEBI25_WFGE_WGN_AsPerNodeType(GraphPropAsPerNodeType, ChEBIOverX):
855847
READER = AtomFGReader_WithFGEdges_WithGraphNode
856848

857849
THRESHOLD = 25
850+
851+
852+
if __name__ == "__main__":
853+
dataset = ChEBI25_WFGE_WGN_AsPerNodeType(chebi_version=248, subset="3_STAR")
854+
dataset.prepare_data()
855+
dataset.setup()

chebai_graph/preprocessing/properties/properties.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,13 @@ def get_property_value(self, mol: Chem.rdchem.Mol) -> list[np.ndarray]:
292292
Returns:
293293
list[np.ndarray]: List containing the descriptor numpy array (excluding first element).
294294
"""
295+
if mol is None:
296+
raise ValueError("Input molecule is None.")
297+
smiles = Chem.MolToSmiles(mol)
298+
if smiles is None:
299+
raise ValueError("Could not convert molecule to SMILES.")
295300
features_normalized = self.generator_normalized.processMol(
296-
mol, Chem.MolToSmiles(mol)
301+
mol, smiles
297302
)
298303
features_normalized = np.nan_to_num(features_normalized)
299304
return [features_normalized[1:]]

0 commit comments

Comments
 (0)