The first one, as described above, is to decompose it into the constituting building blocks, i.e. rings and linkers. Another option is the enumerative removal that generates all possible parent scaffolds. At every iteration step, each ring adhering to the criteria listed above is removed separately to produce the resulting parent scaffold. This is repeated until only single-ring scaffolds remain, or no ring is removable anymore. These final scaffolds are called the root scaffolds. All generated parent scaffolds are substructures of the original scaffold. An example for the enumerative removal is shown in Figure . This routine can be applied to a given molecule and it returns a list with all possible parent scaffolds plus the original scaffold of the molecule. Parent scaffolds generated multiple times in the enumerative removal are returned only once. This scaffold dissection routine is the basis for generating scaffold networks. The dissection result of a single molecule can already be represented as a scaffold network by returning it as the corresponding data structure instead of a list. Scaffold Generator implements the 13 chemical prioritisation rules that are applied in the original scaffold tree publication to specifically select only one parent scaffold at every scaffold dissection step . In principle, these rules are applied to select only one ring removal path from all possible ones that are pursued in the enumerative removal (compare Figure ). Only a few minor changes have been done to the original rules and underlying routines as reported above. Additionally, the final tie-breaking rule has been adapted to use unique SMILES representations as produced by the CDK, instead of canonical ones. From a given molecular structure, Scaffold Generator can generate a list of all parent scaffolds resulting from the Schuffenhauer dissection routine, plus the original scaffold (Figure ). It produces the structures that can be used to build a scaffold tree in the second step. As with scaffold networks, a scaffold tree can already be constructed from a single molecule as well. The main functionality of Scaffold Generator is the construction of scaffold trees and networks from given molecule collections (Figure ). In the first step, the first molecule in the given collection is dissected into its parent scaffolds and the result is used to build the starting point of the desired structure. One by one, the remaining molecules are decomposed as well and their original scaffolds and parent scaffolds added to the tree or network if they are not already part of it. Scaffold Generator implements data structures that manage the graph nodes representing scaffolds and their parent-child connections as edges in scaffold trees and networks. Both graphs are subdivided into levels with the root scaffolds on level 0 and their child scaffolds on the consecutive levels. The leaves are formed by the original scaffolds of the given molecules. But it is important to note that lower levels down to the roots can contain original scaffolds as well, e.g. when single-ring molecules are part of the given molecular set.