Files
rdkit/Code/GraphMol/FindRings.cpp
Rachel Walker e1322f73c6 Sped up SSSR by not storing every path back to root (#3333)
* Sped up SSSR by not storing every path back to root

This change speeds up ring performance by not storing
every path back to the root. Instead, it keeps track of
parents and rebuilds paths from the parents once a cycle
is found. It also stops the BFS once the depth of the BFS
is larger than the smallest ring (i.e., we found a path
that is longer than the smallest ring).

Before this commit:

3EOH: 0.72s
2J3N: 0.26s
1NKS: 0.018s

After this commit:
3EOH: 0.35s
2J3N: 0.07s
1NKS: 0.007s

* Fixed ordering of atoms within SSSR rings

Co-authored-by: Rachel Walker <rachel.walker@schrodinger.com>
2020-08-15 06:00:40 +02:00

46 KiB