The project is split into the main psm_utils package and the psm_utils.io subpackage. The former provides the main API for peptidoforms, PSMs, and PSM lists; the latter provides modules for reading and writing various PSM file formats (Figure ). More specifically, in the main psm_utils package, PSM information is represented by three distinct classes. (1) The Peptidoform class accepts a combination of peptide sequence, residue modifications, and optionally charge state, represented in the HUPO-PSI ProForma 2.0 notation. Through the proforma and mass modules of Pyteomics, this permits a direct implementation of useful methods, such as the calculation of theoretical mass or fragmentation spectrum, while considering any resolvable residue modification.