Spectral preprocessing. Preprocessing logic in RamanSPy is defined by the PreprocessingStep class, which defines most of the necessary preprocessing infrastructure in the background to ensure a smooth, data-agnostic experience via a single point of contact specified through their apply() method. Yet, as with data loading, for the most part, users are not expected to use this class to manually implement and optimise such preprocessing methods themselves. Instead, the RamanSPy package provides a comprehensive toolbox of ready-to-use preprocessing methods, which users can access, customise and employ to compile a wide variety of preprocessing procedures. These preprocessing procedures are given as predefined classes within ramanspy.preprocessing which extend the PreprocessingStep class. To use these built-in methods, users need to create an instance of the selected technique. Note that RamanSPy offers full control over relevant parameters, which can be supplied during initialisation via the *args and **kwargs arguments.