ChemPer was created to generate hierarchical SMIRKS patterns. These can be used when parameterizing SMIRNOFFs. We assume the SMIRKS patterns will be applied in order, that is the last pattern to match a fragment will determine which force field parameter will be assigned. Starting with molecular fragments, ChemPer generates SMIRKS in a series of steps The primary input for ChemPer is clustered molecular fragments. This requires a series of internal steps which are described in detail in the subsections below. Wrappers around established cheminformatics toolkits are used to extract atom and bond properties corresponding to SMIRKS decorators (Section 3.1). Atoms and bonds are stored in a graph in order to track which SMIRKS decorators could be applied to each (Sections 3.2 and 3.3). SMIRKS are generated for each input cluster of molecular fragments storing all possible decorators (Section 3.4). More general patterns are created by stochastically removing decorators from atoms and bonds while maintaining the input clusters (Section 3.5). This modular arrangement will allow for experimentation in the clustering and ordering of molecular fragments during force field parameterization.