Skip to content

Commit 72989d9

Browse files
authored
#2893 Reaction data support in KET-format (#3104)
1 parent bd35def commit 72989d9

29 files changed

+8367
-97
lines changed

api/c/indigo/src/indigo.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ void Indigo::init()
131131
molfile_saving_add_stereo_desc = false;
132132

133133
json_saving_add_stereo_desc = false;
134+
json_saving_add_reaction_data = false;
134135
json_saving_pretty = false;
135136
json_use_native_precision = false;
136137

@@ -213,6 +214,7 @@ void Indigo::initMoleculeJsonSaver(MoleculeJsonSaver& saver)
213214
void Indigo::initReactionJsonSaver(ReactionJsonSaver& saver) const
214215
{
215216
saver.add_stereo_desc = json_saving_add_stereo_desc;
217+
saver.add_reaction_data = json_saving_add_reaction_data;
216218
saver.pretty_json = json_saving_pretty;
217219
saver.ket_version = ket_saving_version;
218220
saver.layout_options = layout_options;
@@ -222,6 +224,7 @@ void Indigo::initReactionJsonSaver(ReactionJsonSaver& saver) const
222224
void Indigo::initReactionJsonSaver(PathwayReactionJsonSaver& saver)
223225
{
224226
saver.add_stereo_desc = json_saving_add_stereo_desc;
227+
saver.add_reaction_data = json_saving_add_reaction_data;
225228
saver.pretty_json = json_saving_pretty;
226229
saver.use_native_precision = json_use_native_precision;
227230
}

api/c/indigo/src/indigo_internal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ class DLLEXPORT Indigo
334334
bool molfile_saving_add_implicit_h;
335335
bool molfile_saving_add_mrv_sma;
336336
bool json_saving_add_stereo_desc;
337+
bool json_saving_add_reaction_data;
337338
bool json_saving_pretty;
338339
bool json_use_native_precision;
339340
bool smiles_saving_write_name;

api/c/indigo/src/indigo_options.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ void IndigoOptionHandlerSetter::setBasicOptionHandlers(const qword id)
349349
mgr->setOptionHandlerBool("molfile-saving-skip-date", SETTER_GETTER_BOOL_OPTION(indigo.molfile_saving_skip_date));
350350
mgr->setOptionHandlerBool("molfile-saving-add-stereo-desc", SETTER_GETTER_BOOL_OPTION(indigo.molfile_saving_add_stereo_desc));
351351
mgr->setOptionHandlerBool("json-saving-add-stereo-desc", SETTER_GETTER_BOOL_OPTION(indigo.json_saving_add_stereo_desc));
352+
mgr->setOptionHandlerBool("json-saving-add-reaction-data", SETTER_GETTER_BOOL_OPTION(indigo.json_saving_add_reaction_data));
352353
mgr->setOptionHandlerBool("json-saving-pretty", SETTER_GETTER_BOOL_OPTION(indigo.json_saving_pretty));
353354
mgr->setOptionHandlerBool("json-use-native-precision", SETTER_GETTER_BOOL_OPTION(indigo.json_use_native_precision));
354355
mgr->setOptionHandlerBool("molfile-saving-add-implicit-h", SETTER_GETTER_BOOL_OPTION(indigo.molfile_saving_add_implicit_h));

api/tests/integration/ref/formats/ket_to_ket.py.out

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,8 @@ monomer_transform.ket mol loadQueryMolecule: SUCCEED
2222
2707_subst_count.ket mol: SUCCEED
2323
3069-reaction.ket:SUCCEED
2424
multi_merge4.ket:SUCCEED
25+
mixed_reaction.ket:SUCCEED
26+
multi1.ket:SUCCEED
27+
multi_reaction.ket:SUCCEED
28+
special_condition.ket:SUCCEED
29+
two_pathways.ket:SUCCEED

api/tests/integration/tests/formats/ket_to_ket.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,32 @@ def check_res(filename, format, ket_ref, ket):
119119
else:
120120
print(filename + ".ket:FAILED")
121121
print(diff)
122+
123+
# reaction data
124+
files = [
125+
"mixed_reaction",
126+
"two_pathways",
127+
"multi_reaction",
128+
"multi1",
129+
"special_condition",
130+
]
131+
132+
indigo.setOption("json-saving-add-reaction-data", True)
133+
134+
files.sort()
135+
for filename in files:
136+
rea = indigo.loadReactionFromFile(
137+
os.path.join(root_rea, filename + ".ket")
138+
)
139+
140+
# with open(os.path.join(ref_path, filename) + ".ket", "w") as file:
141+
# file.write(rea.json())
142+
with open(os.path.join(ref_path, filename) + ".ket", "r") as file:
143+
ket_ref = file.read()
144+
ket = rea.json()
145+
diff = find_diff(ket_ref, ket)
146+
if not diff:
147+
print(filename + ".ket:SUCCEED")
148+
else:
149+
print(filename + ".ket:FAILED")
150+
print(diff)

0 commit comments

Comments
 (0)