SMIRKY uses the same general move set as SMARTY; that is, a fragment type A is chosen and then either deleted or used as the starting point for a child fragment type A' (Figure ). The input odds files for SMIRKY allow the user to customize sampling for a specific fragment type, but the probabilities determining which type of move, for example adding or removing a non-indexed atom, are set internally. When creating a child fragment type, the first choice made is whether to change an atom or a bond. If an atom is chosen, then decorators on the atom can be added, swapped, or removed; a new connected atom can be added as a neighbor; or if the atom selected is not an indexed atom it can be removed (indexed atoms must be retained in order for the fragment to be fully defined). An atom can be removed from a fragment definition only if it is connected to just one other atom; the associated bond is removed at the same time. If a bond is chosen instead of an atom, either type of decorator can be added, swapped, or removed. As with SMARTY, we only consider substructures that extend to the beta position of any indexed atom. Because there are more SMIRKS decorators available for atoms than bonds, the move set is weighted to choose atom moves more often than bond moves.