Closed SGenheden closed 3 years ago
Sorry for the late reply, I did not notice this thread before. The rationale here is to avoid expanding the tree in a loop, i.e., molecule A -> molecule B -> A -> B -> A -> B -> ... without ending. It makes no sense to synthesize A using A as one of the precursors.
Thanks @binghong-ml ! That was my guess.
In the
_add_reaction_and_mol_nodes
method of theretro_star.alg.mol_tree.MolTree
class there is the following lines of code:that seems to stop the expansion if any of the molecules in the new stub is already among the ancestors of the molecule node being expanded.
What is the rationale behind this logic? I can't seem to find this piece explained in your paper.