here called the branched SMARTS (see Sec. III for definitions of A, Q 0 , and S 0 ). This is in contrast to using T † in the previous section, which would result in a graph that has the same topology as S 0 and therefore offer no information on how to extend S 0 . Due to T ‡ , this operation produces a larger, more complicated pattern, and generally would not work as a useful SMARTS pattern since it no longer describes a typical molecular substructure. See Fig. for an example. Instead, the branched SMARTS is a graph where all chemical environments SMARTS are subsets of the branched SMARTS, ∀a ∈ A, a (Q ‡ ∩ † a) = 0 where ∩ † is used to show that a is not modified when intersecting with Q ‡ and the symmetric difference indicates that all bits in a were kept and there are no extra bits. This form of subset is used due to the constraint that the graph of a is not modified. Additionally, to be as strict as possible, the ∩ † operation should create empty nodes rather than full nodes as its primary purpose is to remove nodes rather than create them. Because Q ‡ should already contain every graph a, adding new nodes during ∩ † should mean that a is not a subset. We can see this from the equation since any intersection with an empty node, z = 0, is always 0 and therefore the proceeding symmetric difference will give 1, i.e. not a subset. From this computation, the branched graph will potentially have nodes extending (branching) beyond the parameter S 0 and we can extend S 0 by adding new nodes from the branched SMARTS. In the results, we refer to this as the hyperparameter n. For each branch, a unique subgraph is generated which has exactly one node that extends beyond S 0 , and the depth of this new node is controlled by the graph depth hyperparameter d. Each of these new graphs will have |S 0 | + 1 nodes, where | • | is the number of nodes in the graph. The hyperparameters exist to control the complexity of new SMARTS patterns since adding new nodes to SMARTS graphs increases the cost of mapping, specifically during calculating the required unions (Eqn. 13). After all of the unique branched subgraphs have been formed, they are collected into isomorphic groups. The graphs have the same nodes but different SMARTS information. Then, each isomorphic group is unioned to produce a single branching point at the unique location in S 0 . Only branched subgraphs which are isomorphic are combined together, such that all of the SMARTS information from all branches are condensed to one node. Bonds (2 atoms) only have 1 branch point, and the other valence types have 2 branch points, but this number will increase as S 0 becomes more complex. The newly formed branched graph now has bits in the branched node that can be enumerated and combined with other bits to determine more complex splits. We refer to the bits here as b ‡ j , similar to b j in the previous section. The remaining issue is that in order to create a new SMARTS, we need to rewrite Eqn. 12 as