<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-18-9189-2025</article-id><title-group><article-title>VaPOrS v1.0.1: an automated model for functional group detection and property prediction of organic compounds via SMILES notation</article-title><alt-title>VaPOrS v1.0.1: an automated model for functional group detection</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Bezaatpour</surname><given-names>Mojtaba</given-names></name>
          <email>mojtaba.bezaatpour@tuni.fi</email>
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Dal Maso</surname><given-names>Miikka</given-names></name>
          
        <ext-link>https://orcid.org/0000-0003-3040-3612</ext-link></contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Rissanen</surname><given-names>Matti</given-names></name>
          <email>matti.rissanen@tuni.fi</email>
        <ext-link>https://orcid.org/0000-0003-0463-8098</ext-link></contrib>
        <aff id="aff1"><label>1</label><institution>Aerosol Physics Laboratory, Tampere University, 33720 Tampere, Finland</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Department of Chemistry, University of Helsinki, 00014 Helsinki, Finland</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Mojtaba Bezaatpour (mojtaba.bezaatpour@tuni.fi) and Matti Rissanen (matti.rissanen@tuni.fi)</corresp></author-notes><pub-date><day>28</day><month>November</month><year>2025</year></pub-date>
      
      <volume>18</volume>
      <issue>22</issue>
      <fpage>9189</fpage><lpage>9217</lpage>
      <history>
        <date date-type="received"><day>31</day><month>May</month><year>2025</year></date>
           <date date-type="rev-request"><day>26</day><month>June</month><year>2025</year></date>
           <date date-type="rev-recd"><day>21</day><month>October</month><year>2025</year></date>
           <date date-type="accepted"><day>26</day><month>October</month><year>2025</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2025 Mojtaba Bezaatpour et al.</copyright-statement>
        <copyright-year>2025</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025.html">This article is available from https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e107">Volatile organic compounds play a significant role in atmospheric chemistry, influencing air quality and climate change. Accurate prediction of their physical properties is essential for understanding their behavior. This paper introduces VaPOrS (Vapor Pressure in Organics via SMILES) as a comprehensive tool designed to process SMILES notation of organic compounds, identify key functional groups, and apply group-contribution methods for property estimation. The core innovation of VaPOrS lies in its self-contained functional group recognition algorithm, which eliminates dependence on external cheminformatics libraries. The current approach enables fully auditable, easily modifiable, and computationally efficient detection of 30 functional groups required by the SIMPOL method. Compared to existing tools, VaPOrS avoids heavy SMILES-to-graph conversions and can obviate interface overhead, providing orders-of-magnitude speedups for large-scale atmospheric modeling scenarios. While this first implementation focuses on the SIMPOL method for estimating saturation vapor pressure and enthalpy of vaporization, the framework is readily extendable to other group-contribution schemes and thermodynamic properties (e.g., partition coefficients, volatility basis set models, solubility, Henry's law constants). The tool has been validated against manually counted functional groups and experimental saturation vapor pressure data for a diverse set of compounds. Results demonstrate excellent agreement with both the original SIMPOL model and experimental observations, while comparisons with existing tools highlight the robustness and accuracy of the new parsing functions. VaPOrS thus provides a generalizable and computationally efficient platform for property prediction of large molecular datasets, facilitating integration into chemical transport and climate models and streamlining the analysis of thousands of organic compounds in atmospheric science applications.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>H2020 European Research Council</funding-source>
<award-id>101002728</award-id>
</award-group>
<award-group id="gs2">
<funding-source>Horizon 2020</funding-source>
<award-id>101096133</award-id>
</award-group>
<award-group id="gs3">
<funding-source>Research Council of Finland</funding-source>
<award-id>331207</award-id>
<award-id>336531</award-id>
<award-id>346373</award-id>
<award-id>353836</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e119">Volatile organic compounds (VOCs) are a diverse group of organic chemicals that significantly impact atmospheric chemistry. Their volatility allows them to easily enter the atmosphere, where they participate in complex chemical reactions that influence air quality, climate, and human health (Mellouki et al., 2015). VOCs are key precursors to both ground-level ozone and secondary organic aerosols (SOA). Ground-level ozone, a harmful air pollutant, forms through the photochemical reactions of VOCs with nitrogen oxides (NO<sub><italic>x</italic></sub>) in the presence of sunlight (Atkinson, 2000). Ozone is a major component of urban smog and poses serious health risks, including respiratory problems and cardiovascular disease (WHO, 2006). Secondary organic aerosols, on the other hand, result from the oxidation of VOCs, leading to the formation of particulate matter that can scatter sunlight and affect the Earth's radiative balance (Jimenez et al., 2009). These particles contribute to atmospheric haze, impact visibility, and have been linked to adverse health effects, including lung and heart diseases. Understanding the formation, transformation, and fate of VOCs is thus crucial for predicting their impact on both air quality and climate.</p>
      <p id="d2e131">VOCs originate from a variety of sources, both natural and anthropogenic. Natural sources include biogenic emissions from vegetation, such as isoprene and monoterpenes, which are released in large quantities, especially in forested areas (Guenther et al., 1995). Anthropogenic sources are primarily related to industrial activities, transportation, fuel combustion, and the use of solvents and consumer products (Goldstein and Galbally, 2007; McDonald et al., 2018). The structural diversity of VOCs poses a challenge for their classification and analysis. They can range from simple hydrocarbons like methane to complex multifunctional molecules containing oxygen, nitrogen, sulfur, and, for example, halogens. This diversity affects their physical properties, reactivity, and environmental behavior, making it necessary to study their properties comprehensively.</p>
      <p id="d2e134">The physical properties of VOCs, particularly saturation vapor pressure and enthalpy of vaporization, play a critical role in determining their volatility and phase behavior in the atmosphere. Saturation vapor pressure is a measure of a substance's tendency to evaporate, and it directly influences the distribution of VOCs between the gas and particulate phases (Mattila et al., 1997). Compounds with high saturation vapor pressure are more likely to remain in the gas phase, whereas those with lower saturation vapor pressure can condense onto particulate matter, contributing to SOA formation (Donahue et al., 2006). Enthalpy of vaporization, the energy required to convert a substance from liquid to vapor, is an important property that influences the temperature dependence of saturation vapor pressure. Accurate knowledge of these properties is essential for modeling VOC emissions, their transport, and their transformation in the atmosphere.</p>
      <p id="d2e137">The oxidation of VOCs significantly changes their chemical properties. An extreme example is provided by autoxidation, a chain-like oxidation process that propagates by sequential additions of molecular oxygen and resulting peroxy radical rearrangement reactions, which infuses multiple oxygen molecules to the hydrocarbon backbone. This process plummets the saturation vapor pressures of the participating VOC and ultimately forms so-called Highly Oxygenated organic Molecules (HOMs as expressed by Bianchi et al., 2019; Crounse et al., 2013), crucial intermediates in the formation of SOA. HOM formation is a common property of VOCs and is thus initiated by all common oxidants capable of forming alkyl radicals, including hydroxyl radicals (OH), ozone (O<sub>3</sub>), and nitrate radicals (NO<sub>3</sub>) (Zhao et al., 2021; Luo et al., 2023; Rissanen et al., 2014; Berndt et al., 2016) as well as by direct UV photolysis. The resulting HOMs can rapidly condense onto existing particles or sometime even form new particles through nucleation processes, thus contributing to the formation and growth of SOA. The formation of HOMs is heavily influenced by the structure of the precursor VOCs (Ehn et al., 2014). Recent advancements in mass spectrometry and atmospheric simulation techniques have provided valuable insights into the chemical pathways leading to HOMs formation and their role in atmospheric chemistry (Iyer et al., 2023; Bianchi et al., 2019; Vereecken et al., 2018; Jenkin et al., 2019; Iyer et al., 2021). Understanding the volatility of VOCs, and especially HOMs, is therefore essential for improving models of SOA formation.</p>
      <p id="d2e159">Traditionally, the determination of saturation vapor pressure and enthalpy of vaporization has relied on experimental methods, such as gas chromatography-mass spectrometry (GC-MS) (Epping and Koch, 2023). While these methods provide accurate measurements, they are time-consuming, expensive, and often impractical for large-scale studies involving thousands of compounds. Moreover, many of the condensable chemicals relevant to atmospheric SOA formation are challenging to measure because their parent molecules are unstable, have never been synthesized, or, importantly, cannot be synthesized due to their inherent instability. These limitations highlight the critical need for approximative methods to estimate the physical properties of these compounds, as direct measurements are often unfeasible.</p>
      <p id="d2e162">Given the limitations of experimental approaches, there is an obvious need for computational tools that can predict these properties efficiently. Such tools can complement experimental methods by providing rapid estimates for a wide range of compounds, facilitating large-scale atmospheric modeling studies. Various computational methods have been developed to estimate the saturation vapor pressure of organic compounds, complementing or replacing traditional experimental approaches. Among these, predictive models like COSMO-RS (COnductor-like Screening MOdel for Real Solvents) use quantum chemistry calculations to estimate thermodynamic properties, including saturation vapor pressure. COSMO-RS simulates the solvent environment and molecular interactions, providing a theoretical basis for property estimation. However, its computational intensity can be a drawback for large-scale applications (Klamt, 1995; Eckert and Klamt, 2004; Klamt et al., 1998). On the other hand, group contribution methods estimate saturation vapor pressure based on the contribution of structural groups within a molecule. These methods leverage empirical correlations derived from extensive datasets but often lack precision for complex or highly functionalized molecules (Joback and Reid, 1987; Myrdal and Yalkowsky, 1997). The Nannoolal method is a computational approach used to estimate the boiling points and saturation vapor pressures of organic compounds based on their molecular structure. This method utilizes group contribution techniques, where the overall properties of a molecule are determined by summing the contributions of its individual structural groups, such as functional groups and bonding patterns (Nannoolal et al., 2008). The EVAPORATION method is a tool designed for estimating the saturation vapor pressure of organic molecules, accounting for contributions from the carbon skeleton, functional groups, and their interactions, and it adjusts for functionalized diacids with empirical modifications. It predicts the saturation vapor pressure of various compounds using only molecular structure as input, making it applicable to a wide range of molecules (Compernolle et al., 2011). The SIMPOL method, developed by Pankow and Asher (2008), is a widely used group contribution method that correlates the presence of specific functional groups in a molecule to its vapor pressure. By summing the contributions of individual functional groups, the method provides an estimate of the compound's vapor pressure. The SIMPOL method has been validated against experimental data and is recognized for its accuracy and applicability to a wide range of organic compounds. Importantly, since all these methods employ group contribution techniques, they could potentially be integrated into automated tools, enabling the efficient handling of large datasets and complex compounds with minimal manual effort.</p>
      <p id="d2e165">Despite the usefulness of existing tools such as UManSysProp (Topping et al., 2016) for vapor pressure estimation, they show limitations in correctly identifying functional groups in a range of organic molecules (see Sect. 4.3). These shortcomings can lead to significant deviations in predicted vapor pressures, particularly for multifunctional species relevant to atmospheric oxidation and SOA formation. Our observations of such discrepancies provided the main motivation for this work. To address these deficiencies, we developed a Python-based computational framework named VaPOrS (Vapor Pressure in Organics via SMILES) to process SMILES (Simplified Molecular Input Line Entry System) notation of VOCs, automatically identify functional groups, and apply group-contribution methods for property estimation.</p>
      <p id="d2e168">The core innovation of VaPOrS lies in its self-contained SMILES parsing and group recognition algorithm, which eliminates reliance on external cheminformatics libraries such as OpenBabel. Instead of depending on SMARTS-based pattern matching, VaPOrS explicitly searches for all possible patterns of each functional group directly from the SMILES string, ensuring full control over the detection logic. This approach makes the tool both transparent and adaptable, enabling straightforward extension to new group definitions and methods without external dependencies. In its current version, VaPOrS implements the SIMPOL method by detecting 30 functional groups required for estimating pure-component (sub-cooled) liquid saturation vapor pressure and the corresponding enthalpy of vaporization, without accounting for Raoult's law effects. However, this is only the first demonstration of the framework: the same group recognition functions can be applied to other parameterization schemes (e.g., group additivity, volatility basis set (VBS) models, partition coefficients, Henry's law constants), making VaPOrS a general platform for group-contribution modeling rather than a tool restricted to vapor pressure prediction. Therefore, the development of VaPOrS addresses several challenges: <list list-type="order"><list-item>
      <p id="d2e173">Automated and auditable functional group detection: eliminating manual identification, reducing error potential, and providing full transparency in detection logic.</p></list-item><list-item>
      <p id="d2e177">Computational efficiency: by bypassing Pybel's SMILES-to-graph conversions, VaPOrS reduces overhead, enabling much faster execution for large-scale atmospheric simulations involving thousands of compounds across many steps and grid cells.</p></list-item><list-item>
      <p id="d2e181">Scalability and flexibility: capable of processing thousands of SMILES strings within seconds, with design features that make it portable to high-performance computing (HPC) environments and easily translatable to compiled languages such as Fortran for integration into large-scale chemical transport and climate models.</p></list-item></list> The potential applications of VaPOrS extend well beyond SIMPOL. As an instance, Pichelstorfer et al. (2024) recently introduced the auto-APRAM-fw framework for predicting the molecular structures of highly oxygenated organic molecules (HOMs) generated during autoxidation, outputting results in SMILES notation. Integrating these HOMs into atmospheric models requires both functional group identification and vapor pressure estimation, a process that becomes resource-intensive if performed manually or through non-specialized methods. VaPOrS provides an automated and efficient solution to this challenge by detecting functional groups directly from the SMILES strings and applying parameterizations such as SIMPOL for vapor pressure. More generally, the framework can facilitate integration of large molecular datasets into existing atmospheric databases and simulation platforms, advancing the predictive capability of SOA formation models. Some of the key atmospheric databases and models that could benefit from this tool are discussed in the results and discussion section.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Methodology</title>
      <p id="d2e193">The developed VaPOrS begins by processing the SMILES notation of the target chemical compounds. SMILES strings are used as inputs to identify the molecular components most relevant to volatility predictions, such as number of carbon atoms, functional groups, and cyclic structures. Altogether 30 functional groups parameterized in the SIMPOL method are identified. Several functions are required to efficiently parse and interpret the structure of each compound. The model consists of two main parts. The first part is dedicated to identifying and counting the number of functional groups within the target while the second part focuses on calculating the saturation vapor pressure as a function of temperature and providing the corresponding Antoine equation parameters.</p>

      <fig id="F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e198">Overview of chemical functional groups identified and analyzed by the VaPOrS, including number of <bold>(a)</bold> carbon atoms, <bold>(b)</bold> aromatic and <bold>(c)</bold> non-aromatic rings, <bold>(d)</bold> non-aromatic double bonds (C–C), <bold>(e)</bold> hydroxyl – alkyl <bold>(e1)</bold> and aromatic <bold>(e2)</bold> –, <bold>(f)</bold> hydroperoxide, <bold>(g)</bold> aldehyde, <bold>(h)</bold> carboxylic acid, <bold>(i)</bold> peroxy acid, <bold>(j)</bold> ketone, <bold>(k)</bold> ethers – open-chain <bold>(k1)</bold>, alicyclic <bold>(k2)</bold>, and aromatic <bold>(k3)</bold> –, <bold>(l)</bold> ester, <bold>(m)</bold> nitroester, <bold>(n)</bold> C<inline-formula><mml:math id="M4" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>CC<inline-formula><mml:math id="M5" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O in non-aromatic rings, <bold>(o)</bold> nitrate, <bold>(p)</bold> nitro, <bold>(q)</bold> acylperoxynitrate, <bold>(r)</bold> peroxide, <bold>(s)</bold> nitrophenol, <bold>(t)</bold> amines – primary <bold>(t1)</bold>, secondary <bold>(t2)</bold>, tertiary <bold>(t3)</bold> , and aromatic <bold>(t4)</bold> –, and <bold>(u)</bold> amides – primary <bold>(u1)</bold>, secondary <bold>(u2)</bold>, and tertiary <bold>(u3)</bold>.</p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f01.png"/>

      </fig>

<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Functional group identification</title>
      <p id="d2e332">The first part of the model identifies and counts 30 distinct structural groups in organic compounds that are recognized by the SIMPOL method as influential on saturation vapor pressure. These groups include functional components like carbonyl groups (<inline-formula><mml:math id="M6" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>C<inline-formula><mml:math id="M7" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O), hydroxyl groups (<inline-formula><mml:math id="M8" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>OH), amines (<inline-formula><mml:math id="M9" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>NR<sub>3</sub>), ethers (<inline-formula><mml:math id="M11" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>R–O–R<inline-formula><mml:math id="M12" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>), and several others (see Fig. 1). The model processes the SMILES string of each compound and applies functions to detect the presence and quantity of these groups. To achieve this, the SMILES string is parsed by several dedicated functions, each corresponding to a specific functional group (e.g., O-atom in a carbonyl or hydroxyl). The results are stored as variables that represent the number of occurrences of each group within the molecule. These counts are then used as input parameters in the saturation vapor pressure calculation. This identification process is critical, as the functional groups detected are the most impactful to the molecule's saturation vapor pressure. By systematically identifying the relevant groups for each compound, the model prepares the necessary data for the next phase of thermodynamic calculations. At the current stage, VaPOrS operates using canonical SMILES as input. This choice was made because canonical SMILES are the most common representation in chemical databases and provide a standardized representation of each molecule, which simplifies functional group detection and validation. Although alternative SMILES forms (e.g., kekulized or non-canonical variations) can represent the same molecule, these are not yet supported in the present version. To maintain consistency, users should therefore provide canonical SMILES when running VaPOrS. The following Sect. 2.1.1 to 2.1.19 provide detailed descriptions of the first steps of the model computations.</p>
<sec id="Ch1.S2.SS1.SSS1">
  <label>2.1.1</label><title>Carbon atoms</title>
      <p id="d2e394">Carbon atoms are an essential component in all organic molecules, and their number forms the basis for the calculations of molecular properties utilizing group additivity. The <monospace>carbon_number(s)</monospace> function counts the occurrences of both uppercase (“C”, representing carbon atoms in alkyl chains) and lowercase (“c”, representing carbon atoms in aromatic rings) characters in the SMILES string. The total number of carbon atoms is then calculated by summing these occurrences.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS2">
  <label>2.1.2</label><title>Identification of branches and rings in SMILES</title>
      <p id="d2e408">Since SMILES notation uses parentheses to denote branching in molecular structures, and numeric indicators to specify ring closure, the model incorporates specialized functions to handle these aspects. <list list-type="bullet"><list-item>
      <p id="d2e413">The function <monospace>find_closing_parenthesis(s, open_index)</monospace> is designed to locate the corresponding closing parenthesis for a given open parenthesis in the SMILES string. This is crucial for identifying the boundaries of branched substructures. Similarly, <monospace>find_opening_parenthesis(s, close_index)</monospace> identifies the opening parenthesis corresponding to a closing parenthesis, enabling proper identification of substructures. These functions ensure that the branching parts of the molecules are accurately interpreted, which is essential for correctly assigning functional groups.</p></list-item><list-item>
      <p id="d2e423">The function <monospace>find_cycle_number(s)</monospace> is developed to parse through the SMILES string and identify the largest numeric index used for ring closure. This index represents the total number of rings in the compound. For example, if a compound contains three rings, its SMILES notation will include ring closure indicators numbered 1, 2, and 3. Each ring is assigned a specific index sequentially as it is encountered while writing the SMILES. Therefore, the largest numeric index in the SMILES indicates the total number of rings present in the structure.</p></list-item></list> To illustrate the importance of correctly matching parentheses in the algorithm, consider the following example. The pattern <monospace>O=C1C(=C...1...)...</monospace> at the beginning of a SMILES notation may suggest the presence of a C<inline-formula><mml:math id="M13" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C<inline-formula><mml:math id="M14" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>C<inline-formula><mml:math id="M15" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O group within a non-aromatic ring (such as in cyclohex-2-enone, see example (<inline-formula><mml:math id="M16" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>) in Fig. 1). The parentheses must correspond to each other in the above-mentioned pattern, enclosing the second occurrence of <monospace>'1'</monospace>. For instance, in the SMILES string <monospace><bold>O=C1C(=C</bold>C)CC(CC<bold>1)</bold>C</monospace>, although it initially appears to match the pattern, the second <monospace>'1'</monospace> does not reside between the matching parentheses. As depicted in Fig. 2a, this structure places the C<inline-formula><mml:math id="M17" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C bond outside the ring, diverging from the characteristics of the intended functional group. By contrast, in the strings <monospace><bold>O=C1C(=C</bold>CCC<bold>1)</bold>C</monospace> and <monospace><bold>O=C1C(=C</bold>(C(C)C(C)C)CCC<bold>1)</bold>C</monospace>, the second <monospace>'1'</monospace> is properly enclosed within the matching parentheses (highlighted in bold), adhering to the pattern and satisfying the criteria for detecting the C<inline-formula><mml:math id="M18" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C–C<inline-formula><mml:math id="M19" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O group within a non-aromatic ring. Notably, the latter example contains more carbon atoms, making it easier to count and visually distinguish the structure's complexity. This highlights the versatility of the algorithm in handling SMILES strings of varying complexity, even when the carbon atom count increases.</p>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e519">Structural representations of SMILES strings demonstrating the importance of correct parenthesis matching for the identification of C<inline-formula><mml:math id="M20" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C<inline-formula><mml:math id="M21" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>C<inline-formula><mml:math id="M22" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O groups in non-aromatic rings. Structure <bold>(a)</bold> (<monospace>O=C1C(=CC)CC(CC1)C</monospace>) incorrectly places the C<inline-formula><mml:math id="M23" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C bond outside the ring, while structures <bold>(b)</bold> and <bold>(c)</bold> <monospace>(O=C1C(=CCCC1)C</monospace> and <monospace>O=C1C(=C(C(C)C(C)C)CCC1)C)</monospace> adhere to the correct pattern.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f02.png"/>

          </fig>

</sec>
<sec id="Ch1.S2.SS1.SSS3">
  <label>2.1.3</label><title>Aromatic and non-aromatic rings</title>
      <p id="d2e583">Organic molecules often contain cyclic structures, which can either be aromatic (such as benzene rings) or non-aromatic (such as cyclohexane). The model uses two specific functions, <monospace>aromatic_ring(s)</monospace> and <monospace>non_aromatic_ring(s)</monospace>, to identify and quantify these rings based on the SMILES notation. The function <monospace>aromatic_ring(s)</monospace> utilizes the previously described <monospace>find_cycle_number(s)</monospace> function to identify the largest ring number within the SMILES string. This number represents the highest numeric indicator for cyclic structures (e.g., c1ccccc1 in SMILES denotes a benzene ring with the digit <monospace>'1'</monospace> marking the ring). The function then constructs a list of potential aromatic ring representations, such as <monospace>'c1'</monospace>, <monospace>'c2'</monospace>, …, <monospace>'cn'</monospace>, where <monospace>'n'</monospace> is the index of the last detected ring showing how many rings are in the structure. It then iterates over the SMILES string, counting the occurrences of these aromatic rings. To avoid double-counting, the final count is halved, since each ring closure is represented by two digits (e.g., <monospace>c1...c1</monospace>). The function returns the total number of aromatic rings present in the molecule.</p>
      <p id="d2e617">Similarly, the <monospace>non_aromatic_ring(s)</monospace> function detects non-aromatic cyclic structures. Like the aromatic ring detection, the function constructs list of possible ring representations, including combinations such as <monospace>'C1'</monospace>, <monospace>'N1'</monospace>, <monospace>'O1'</monospace> and so on, based on the largest ring index. The function returns the total number of non-aromatic rings detected in the molecule.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS4">
  <label>2.1.4</label><title>Non-aromatic double-bonded carbon atoms</title>
      <p id="d2e641">In addition to identifying cyclic structures, the model also detects non-aromatic double bonds between two carbon atoms, a common feature in organic molecules that strongly influences their chemical and physical properties. The function <monospace>double_bound_nonaromatic_carbons(s)</monospace> is designed to identify occurrences of double-bonded carbon atoms in non-aromatic structures. This function operates by scanning the SMILES string for occurrences of <monospace>=C</monospace>, which indicates a double bond involving a carbon atom. The following steps are used to ensure accurate detection of non-aromatic double bonds: <list list-type="bullet"><list-item>
      <p id="d2e652">Ring number detection: as with previous functions, <monospace>find__number(s)</monospace> is employed to identify the largest numeric ring closure indicator, which is used to distinguish between ring-bound and non-ring-bound carbons.</p></list-item><list-item>
      <p id="d2e659">Pattern matching: the function scans the SMILES string for <inline-formula><mml:math id="M24" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> C, which denotes a double bond with a carbon atom. Upon finding such occurrences, additional checks are performed to ensure the carbon atoms involved in the double bond are not part of an aromatic system: <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e671">Straight chains: if the string preceding the double bond (<monospace>=C</monospace>) contains another capital <monospace>C</monospace>, it is counted as a non-aromatic double bond (e.g., <monospace>C=C</monospace> in <monospace>CC=CCCC</monospace>).</p></list-item><list-item><label>ii.</label>
      <p id="d2e687">Ring systems: if the string preceding the double bond contains a numeric ring closure indicator (e.g., <monospace>C1=C</monospace> in <monospace>C1=CCCC1</monospace>), it is also recognized as part of a non-aromatic ring structure.</p></list-item><list-item><label>iii.</label>
      <p id="d2e697">Parentheses handling: the function is equipped to handle more complex structures, such as those involving nested parentheses (e.g., <monospace>C(...(...(...)...)...)=C</monospace> in <monospace>CC(C(C(CC)C)C)=CC</monospace>). In SMILES, nested parentheses represent branching in a molecule occurring when an atom in the main chain of the molecule is connected to one or more side chains. The parentheses indicate the start and end of each branch, and nesting occurs when a branch contains another branch. It uses the <monospace>find_opening_parenthesis</monospace> function to locate the corresponding opening parenthesis and verify that the bond belongs to a non-aromatic system.</p></list-item></list></p></list-item></list> This approach ensures that double bonds within non-aromatic systems are accurately counted, even in cases where the SMILES notation involves branching or ring structures.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS5">
  <label>2.1.5</label><title>Alkyl hydroxyl and hydroperoxide groups</title>
      <p id="d2e718">The function <monospace>hydroxyl_group(s)</monospace> is designed to identify hydroxyl groups (<inline-formula><mml:math id="M25" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>OH) present in the SMILES representation of a compound. To ensure accurate detection, the function incorporates specific conditions to avoid miscounting hydroxyl groups that are in specific arrangements that do not denote targeted simple hydroxyl groups. For example, it ensures that carboxylic acids with hydroxyl groups connected to carbonyls (<monospace>C=O</monospace>) are not mistakenly counted as plain hydroxyls. One important condition is that the <monospace>C(O)</monospace> pattern (a hydroxyl group in SMILES) must not be followed by <monospace>=O</monospace> or <monospace>(=O)</monospace>, which would indicate a carboxylic acid rather than a hydroxyl group. The following steps outline how this function operates to ensure accurate detection of hydroxyl groups: <list list-type="bullet"><list-item>
      <p id="d2e746">Ring number detection: the <monospace>find_cycle_number(s)</monospace> is utilized to determine the presence of cyclic structures to establish whether the hydroxyl group is part of a ring or a straight-chain structure.</p></list-item><list-item>
      <p id="d2e753">Pattern matching: the function examines the SMILES string for various patterns that denote hydroxyl groups, primarily focusing on terminal hydroxyls, where the function checks if the hydroxyl group appears at the end of the SMILES string, represented as “O” or “C–O” configurations (e.g., <monospace>CCCCO</monospace>) or branching with parenthesis (e.g., <monospace>CCC(C)O</monospace>). It evaluates whether the hydroxyl group appears within a branching structure or a cyclic component, recognizing patterns such as <monospace>C(...)O</monospace> or <monospace>C1(...)O</monospace>. Moreover, the function is equipped to deal with complex SMILES representations involving nested parentheses, ensuring that all possible hydroxyl configurations are evaluated (e.g., <monospace>(O)</monospace> in <monospace>CC(O)CC</monospace> and <monospace>CC(C)(O)CC)</monospace>.</p></list-item><list-item>
      <p id="d2e779">Conditions for counting: specific conditions are implemented to avoid miscounting hydroxyl groups that are either in specific arrangements that do not denote targeted hydroxyl group or are redundant in cyclic structures. In this regard, the function ensures that carboxylic acids with hydroxyl groups connected to carbonyls (C<inline-formula><mml:math id="M26" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O) are not mistakenly counted as plain hydroxyls. For example, in the SMILES representation <monospace>C(O)=O</monospace>, the hydroxyl group is not counted because it is directly bonded to a carbonyl group. As an example, one condition to take into consideration is that the <monospace>C(O)</monospace> pattern (a hydroxyl group in SMILES) does not proceed with <monospace>=O</monospace> and <monospace>(=O)</monospace>. Additional criteria influencing this classification are embedded in the code.</p></list-item></list> It is important to note that the detection of hydroperoxide groups (<inline-formula><mml:math id="M27" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>OOH) in VaPOrS follows a similar pattern as that used for hydroxyl groups (<inline-formula><mml:math id="M28" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>OH). The key difference in recognizing hydroperoxide groups is that instead of detecting single oxygen atoms (O), the algorithm would look for two consecutive oxygen atoms (OO). This adjustment is made throughout the function <monospace>hydroxyl_group(s)</monospace> and is provided in a new function as <monospace>hydroperoxide_group(s)</monospace> to recognize and count hydroperoxide groups in addition to hydroxyl groups.</p>
      <p id="d2e822">In cyclic structures, hydroxyl groups are excluded if they are connected directly to aromatic rings (e.g., <monospace>c1ccc(O)cc1</monospace>). This is due to them being considered as another essential functional group called aromatic hydroxyl in the SIMPOL method. The sequential subsection explains how this functionality is described and detected by the developed algorithm.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS6">
  <label>2.1.6</label><title>Aromatic hydroxyl group</title>
      <p id="d2e836">The function <monospace>aromatic_hydroxyl_group(s)</monospace> scans the SMILES string for the presence of hydroxyl groups attached to aromatic systems. The function looks for specific patterns that indicate an aromatic hydroxyl group, focusing on the position of the hydroxyl group in the SMILES string: <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e844">Hydroxyl at the end: the function checks if the SMILES string ends with <monospace>O</monospace>, ensuring that the preceding character(s) form part of an aromatic ring. For the SMILES string such as <monospace>c1cccc1O</monospace>, where the hydroxyl group is at the end of the SMILES, it detects the hydroxyl group attached to an aromatic ring <monospace>(c1)</monospace>.</p></list-item><list-item><label>ii.</label>
      <p id="d2e857">Hydroxyl at the start: the function checks if the SMILES starts with the <monospace>Oc1</monospace> pattern, indicating a hydroxyl group attached to the first aromatic ring in the compound. <monospace>Oc1cc</monospace> would be recognized as having an aromatic hydroxyl group at the start. </p></list-item><list-item><label>iii.</label>
      <p id="d2e868">Hydroxyl in the middle: the function searches for occurrences of the pattern <monospace>c(O)</monospace> or <monospace>c(...O)</monospace> where a hydroxyl group is attached to an aromatic ring somewhere in the middle of the SMILES. For the SMILES <monospace>c1cc(O)cc1</monospace>, the hydroxyl group is identified within the ring. In strings such as <monospace>c1c(c...c1O)C</monospace>, the hydroxyl group connected to the aromatic ring <monospace>c1</monospace> is correctly identified.</p></list-item><list-item><label>iv.</label>
      <p id="d2e887">Hydroxyl at the end of a branch: the function checks for cases where a hydroxyl group is part of a branch but still attached to an aromatic ring. For example, in <monospace>c1c(c...)O</monospace>, where the hydroxyl group is at the end of a branch attached to an aromatic ring, it detects the correct structure.</p></list-item><list-item><label>v.</label>
      <p id="d2e894">Handling nested parentheses: if multiple parentheses are involved, the function ensures that the correct ring and attachment points are identified. For example, the pattern <monospace>...c1...(...c1)...)O)...</monospace> appearing in SMILES like <monospace>CC(c1cc(c(cc1)CC(C=O)C)O)C</monospace> identifies the aromatic hydroxyl correctly.</p></list-item><list-item><label>vi.</label>
      <p id="d2e904">Hydroxyl connected to the index of aromatic carbon: the function ensures that hydroxyl groups are also counted if they are directly attached to index of carbon atom in an aromatic ring (represented by <monospace>c</monospace> in SMILES notation). In <monospace>c1(O)cccc1</monospace>, the hydroxyl group attached to <monospace>c1</monospace> is correctly counted.</p></list-item></list> As the final filtration step, after identifying a hydroxyl group in the aromatic ring, the algorithm also checks for the presence of a nitro group within the same aromatic ring. If a nitro group is found in addition to the hydroxyl group, the compound is no longer classified as an aromatic hydroxyl group; instead, it is categorized as a nitrophenol compound. A detailed explanation of this functional group is provided in a subsequent subsection.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS7">
  <label>2.1.7</label><title>Aldehyde group</title>
      <p id="d2e925">The function <monospace>aldehyde_group(s)</monospace> is tasked with locating aldehyde groups (i.e., terminal carbonyl groups) within a given SMILES string. The following steps illustrate how this function operates: <list list-type="bullet"><list-item>
      <p id="d2e933">Pattern matching: the function checks the SMILES string for various patterns that indicate the presence of aldehyde groups, focusing on: <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e938">Aldehyde at the beginning: the function checks if the SMILES starts with common aldehyde patterns. For instance, In <monospace>O=CC</monospace>, <monospace>C(=O)C</monospace>, <monospace>O=Cc</monospace>, and <monospace>C(=O)c</monospace> patterns appearing in the SMILES, the function counts these as aldehydes.</p></list-item><list-item><label>ii.</label>
      <p id="d2e954">Aldehyde at the end: the function checks if the SMILES ends with the characteristic <monospace>C=O</monospace> pattern. For example, the last three characters are checked to be <monospace>C=O</monospace>. If preceded by a <monospace>C</monospace>, such as in <monospace>CC=O</monospace>, it counts as an aldehyde. As another example with cyclic structures, for <monospace>C1C=O</monospace> as the last characters of a string where the aldehyde is linked to a cyclic structure, this is also counted.</p></list-item><list-item><label>iii.</label>
      <p id="d2e973">Aldehyde in the middle of the SMILES notation (not structure): the function scans for <monospace>C=O</monospace> patterns within the SMILES string. For the structure such as <monospace>C(C=O)...</monospace>, the carbonyl group may appear in the middle of the SMILES string. However, this still corresponds to a terminal carbonyl group in the molecular structure, i.e., an aldehyde and not a ketone. This distinction is important: while the SMILES position may suggest a non-terminal group, the actual bonding context in the molecular structure confirms its identity as an aldehyde.</p></list-item><list-item><label>iv.</label>
      <p id="d2e983">Aldehyde at the end of a branch: The function examines occurrences of <monospace>C=O)</monospace> at the end of branches. For example, the appearance of <monospace>CC=O)...</monospace> pattern in the SMILES counts it as an aldehyde.</p></list-item></list></p></list-item><list-item>
      <p id="d2e993">Conditions for counting: specific conditions are established to ensure accurate counting and avoid misidentification of aldehyde groups: <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e998">Connected to carbon atoms: the function ensures that aldehydes are counted only if they are connected to carbon atoms directly. In <monospace>C(C=O)...</monospace> pattern, for example, the C preceding the <monospace>C=O</monospace> indicates a valid aldehyde.</p></list-item><list-item><label>ii.</label>
      <p id="d2e1008">Handling cyclic structures: the function accounts for rings, ensuring that aldehydes connected to cyclic structures are counted appropriately. For example, in <monospace>C1(...)C=O</monospace>, the presence of <monospace>C1</monospace> before the aldehyde indicates a connection to a ring, thus counting it as an aldehyde.</p></list-item><list-item><label>iii.</label>
      <p id="d2e1018">Parentheses handling: the function effectively manages nested structures, checking for relevant connections before counting. As an instance, if <monospace>C=O</monospace> is branched from a carbon e.g., in <monospace>C(...)(C=O)...</monospace> pattern, it counts as an aldehyde.</p></list-item></list></p></list-item></list></p>
</sec>
<sec id="Ch1.S2.SS1.SSS8">
  <label>2.1.8</label><title>Carboxylic and peroxy acid groups</title>
      <p id="d2e1035">The function <monospace>carboxylic_acid_group(s)</monospace> is designed to identify the presence of carboxylic acid groups within a compound. The detection is briefly broken down into the following steps: <list list-type="bullet"><list-item>
      <p id="d2e1043">Carboxylic acid at the beginning: the function begins by checking if the SMILES string starts with the characteristic patterns for a carboxylic acid group. Allowed prefixes are <monospace>O=C(O)</monospace> or <monospace>OC(=O)</monospace>. For example, in the SMILES string <monospace>O=C(O)CC</monospace>, the carboxyl group <monospace>O=C(O)</monospace> at the beginning of the molecule is detected.</p></list-item><list-item>
      <p id="d2e1059">Carboxylic acid as the last characters: the function checks if the SMILES string ends with patterns such as <monospace>C(=O)O</monospace> and <monospace>C(O)=O</monospace>, indicating a carboxylic acid group at the end of the molecule. As an instance, for the compound <monospace>CCC(=O)O</monospace>, the carboxylic acid group at the end is correctly identified as <monospace>C(=O)O</monospace>.</p></list-item><list-item>
      <p id="d2e1075">Carboxylic acid in the middle of the SMILES: the function searches for occurrences of the carboxylic acid group in the middle of the SMILES string using the patterns like <monospace>C(=O)O)</monospace> and <monospace>C(O)=O)</monospace>. Each time one of these patterns is found, the function increases the count of carboxylic acid groups. For instance, in the SMILES <monospace>CC(C(=O)O)C(C(O)=O)C</monospace>, the carboxylic acid groups <monospace>C(=O)O</monospace> and <monospace>C(O)=O</monospace> in the middle are detected.</p></list-item></list> The detection of peroxy acid groups follows a similar pattern to that used for carboxylic acid groups within the model. The key difference in recognizing peroxy acid groups lies in the algorithm's adjustment to look for two consecutive oxygen atoms e.g., <monospace>C(=O)OO</monospace> and <monospace>C(OO)=O</monospace> instead of single oxygen atoms found in carboxylic acids e.g., <monospace>C(=O)O</monospace> and <monospace>C(O)=O</monospace>. By implementing this modification throughout the model, peroxy acid functional groups can be counted as well.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS9">
  <label>2.1.9</label><title>Ketone group</title>
      <p id="d2e1115">The function <monospace>ketone_group(s)</monospace> is designed to identify and count the presence of ketone groups in the SMILES string of a compound. These patterns can be located at the start, middle, or end of the SMILES string, as well as within rings. The detection process is divided into several steps: <list list-type="bullet"><list-item>
      <p id="d2e1123">Ketone as the first characters: the function checks if the SMILES string begins with a ketone pattern (e.g., <monospace>O=C(C...)C</monospace> in <monospace>O=C(CCC)C</monospace> or <monospace>O=C(c...)C...</monospace> in <monospace>O=C(c1ccccc1)CCO</monospace>). These patterns represent the ketone group at the beginning of the SMILES string, followed by either a non-aromatic or aromatic carbon. The function also handles ketones connected to rings, such as <monospace>O=C1...</monospace> in <monospace>O=C1CCCC1</monospace> indicating a carbonyl group attached to the first position of a ring. Note that although the ketone group appears at the start of the SMILES string, it may not be at the beginning of the molecular structure itself. The pattern is recognized based on bonding context, not string position.</p></list-item><list-item>
      <p id="d2e1146">Ketone as the last characters: the function checks if the SMILES string ends with <monospace>=O</monospace>, indicating a ketone group at the end of the molecule. If the ketone is ring-connected (e.g., <monospace>C1CCCC1=O</monospace>), additional checks ensure the presence of a carbonyl group within the ring. Similarly, the ketone group may appear at the end of the SMILES notation, but in the molecular structure, it could be part of a cyclic or internal configuration. The detection logic is based on chemical connectivity, not linear SMILES order.</p></list-item><list-item>
      <p id="d2e1156">Ketone in the middle of the SMILES: the function searches for ketone groups within the middle of the SMILES string using patterns such as <monospace>C(=O)</monospace>, representing a carbonyl group between two carbons. Also, the function carefully checks if the ketone is branched, ensuring accurate identification of the ketone group in the middle. As an example, in the SMILES string <monospace>CC(=O)C</monospace>, the middle ketone group <monospace>C(=O)</monospace> is detected between two carbon atoms.</p></list-item><list-item>
      <p id="d2e1169">Handling parentheses: the function accounts for complex SMILES structures that contain nested parentheses. It ensures that ketone groups within branches (e.g., <monospace>...C(C(C...)=O)...</monospace> in <monospace>CC(C(CCC)=O)CC</monospace>) are properly identified by finding the matching opening and closing parentheses.</p></list-item></list></p>
</sec>
<sec id="Ch1.S2.SS1.SSS10">
  <label>2.1.10</label><title>Open-chain, alicyclic, and aromatic ether groups</title>
      <p id="d2e1187">Three functions <monospace>open_chain_ether(s)</monospace>, <monospace>alicyclic_ether(s)</monospace>, and <monospace>aromatic_ether(s)</monospace> are defined to distinguish between ethers present in the SMILES notation (open-chain, alicyclic, and aromatic ethers). Below is a breakdown of the major components and logical flow within this algorithm.</p>
      <p id="d2e1199">A key part of the function's operation involves detecting in-ring ethers. The function starts by searching for the sequence <monospace>"OC"</monospace> within the SMILES string, which is the primary sequence of the ether functional group. The other carbon atom bonded to the oxygen atom of the <monospace>"OC"</monospace> sequence (e.g., <monospace>COC</monospace> or <monospace>C(OC...)</monospace>) is then searched to identify if the ether function is alicyclic or open-chain. For each occurrence, the algorithm checks if the sequence is part of a non-aromatic ring by comparing its position relative to the numerical ring indicators. This is done by locating the positions of ring closure numbers (e.g., <monospace>C1...C1</monospace>) relative to the ether group. If the ether group lies outside the ring closure points (e.g., <monospace>C1CCCC1COCC</monospace>), it is classified as an open-chain ether. On the other hand, if the ether group is found within the two identical ring numbers (e.g., <monospace>C1...COC..C1</monospace>), the algorithm hesitates if the ether is part of the ring or an open-chain type. Therefore, the function employs a nested structure-parsing approach to clarify this issue. It uses parentheses to detect branching points or nested structures within the molecule. The algorithm carefully traces the boundaries of rings and other nested structures simultaneously. If the ether group is embedded within parentheses and surrounded by ring numbers (e.g., pattern <monospace>C1...(...COC...)...C1</monospace> in SMILES <monospace>C1CC(COC)CC1</monospace>), it is open-chain ether, while if it follows patterns, such as <monospace>...C1...(...COC...C1...)...</monospace>, it is alicyclic (e.g., SMILES <monospace>C1C(COCC1C)CC</monospace>). On the other hand, the function also checks if the ether is located near the start or end of a ring closure, which would indicate that the ether is alicyclic (e.g., pattern <monospace>C1...C(...)O1</monospace>), otherwise, it would be an open-chain ether. In compounds containing multiple rings, the function iterates through each ring. It systematically searches for ether groups within and around each ring, ensuring that all possible locations are checked for ether group presence. If the ether group is attached to a non-aromatic ring, special handling is performed to ensure accurate detection.</p>
      <p id="d2e1240">On the other hand, for aromatic ethers, the model looks for occurrences of <monospace>'Oc'</monospace> within the SMILES string. The logic checks different cases based on what precedes <monospace>'Oc'</monospace>: <list list-type="bullet"><list-item>
      <p id="d2e1251">Simple alkyl group (<monospace>'C'</monospace> before <monospace>'Oc'</monospace>): this detects linear aromatic ethers where the oxygen is connected directly to an alkyl group (e.g., <monospace>COc1ccccc1</monospace>).</p></list-item><list-item>
      <p id="d2e1264">Nested structures with parentheses: the model handles cases where the ether group is part of a complex structure. If the ether group is surrounded by parentheses, the model traces the original alkyl chain, ensuring it connects to an aromatic ring (e.g., patterns <monospace>C(Oc</monospace> and <monospace>C(...)Oc</monospace> in SMILES <monospace>CC(Oc1cccc1)CCC</monospace> and <monospace>CC(C(O)=O)Oc1cccc1</monospace>).</p></list-item><list-item>
      <p id="d2e1280">In case the ether group is attached to one aromatic and one non-aromatic ring, the model iterates over possible ring numbers to find ether groups (e.g., <monospace>'C1CCCC1Oc1ccccc1'</monospace> where <monospace>'C1'</monospace> is part of a ring and <monospace>'Oc1'</monospace> is the ether group). The same logic is applied to nested structures with parentheses, ensuring that the correct connection between alkyl and aromatic groups is maintained.</p></list-item><list-item>
      <p id="d2e1293">The model repeats the search, but this time looking for <monospace>'OC'</monospace>, where the aromatic group comes first (e.g., <monospace>'c1cccc1OC'</monospace> where <monospace>'c1'</monospace> indicates an aromatic ring and <monospace>'OC'</monospace> is the ether). Similar checks are performed for direct aromatic ether group connection (<monospace>'c1OC'</monospace>), complex nested structures (e.g., <monospace>c1(OC)ccc1</monospace> and <monospace>c1cc(OC)cc1</monospace>), and parentheses-based structures (e.g., <monospace>c1cc(ccc1)OC</monospace>).</p></list-item></list></p>
</sec>
<sec id="Ch1.S2.SS1.SSS11">
  <label>2.1.11</label><title>Ester and nitroester groups</title>
      <p id="d2e1329">The developed function, <monospace>ester_group(s)</monospace>, identifies and quantifies ester groups within a given SMILES string. The ester group is characterized by the bonding of a carbonyl group (C<inline-formula><mml:math id="M29" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O) to an alkoxy group (O–R). This pattern is typically (not always) represented in SMILES as <monospace>C(=O)O</monospace>, and variations in its placement within the molecule must be accounted for. For instance, when analyzing the ester group, if the alkoxy group (<inline-formula><mml:math id="M30" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>OR) shows up in the SMILES first and then the carbonyl group (C<inline-formula><mml:math id="M31" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O), common patterns, such as <monospace>...C(...)(...)OC(=O)C...</monospace> (e.g., in <monospace>C<bold>C(</bold>CO<bold>)(</bold>C<bold>)</bold><bold>OC(=O)C</bold>C</monospace> with bolded characters) and <monospace>...C(...)(OC(=O)C...)...</monospace> (e.g., in <monospace>C<bold>C(</bold>CO<bold>)(OC(=O)C</bold>C<bold>)</bold>C</monospace> with bolded characters) are identified. Conversely, if the SMILES notation proceeds from the acid-side carbon (i.e., carbon attached directly to the carbonyl group in the ester bond <inline-formula><mml:math id="M32" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>C(O)OR), ester groups may be represented as <monospace>...C(...)(...)C(=O)OC...</monospace> (e.g., in <monospace>C<bold>C(</bold>CO<bold>)(</bold>C<bold>)C(=O)OC</bold>C</monospace> with bolded characters) or <monospace>...C(...)(C(=O)OC...)...</monospace> (e.g., in <monospace>C<bold>C(</bold>CO<bold>)C(=O)OC</bold>C<bold>)</bold>C</monospace> with bolded characters). These patterns ensure that ester groups are recognized irrespective of their position within a molecule.</p>
      <p id="d2e1430">The above-mentioned patterns with several other ones related to ester group may be determined whether at the start, middle, or end of the SMILES string: <list list-type="bullet"><list-item>
      <p id="d2e1435">If the ester group is at the beginning, the function looks for patterns such as <monospace>O=C(C...)OC...</monospace> and <monospace>O=C(OC...)C</monospace> (e.g., in SMILES <monospace>O=C(CCO)OCCC</monospace> and <monospace>O=C(OCCC)CCO</monospace>), where the group starts with the double-bond oxygen atom.</p></list-item><list-item>
      <p id="d2e1451">For esters embedded within the middle of a SMILES string, the function searches for the ester signatures such as <monospace>C(=O)O</monospace> and <monospace>OC(=O)</monospace>, confirming that the carbonyl group is bonded to the oxygen atom of the alkoxy group and followed by a suitable molecular fragment. For instance, in a SMILES notation like <monospace>CCC(=O)OCC</monospace> and <monospace>CCOC(=O)CC</monospace>, the ester group is correctly identified as part of the main chain.</p></list-item><list-item>
      <p id="d2e1467">If an ester group is located at the end of the SMILES string, the function identifies patterns such as <monospace>)=O</monospace> sequence as an indicator of the terminal carbonyl group, followed by the appropriate bonding structure. This ensures that molecules like <monospace>CC(OCC)=O</monospace> are correctly parsed with the ester group assigned to the end of the chain.</p></list-item><list-item>
      <p id="d2e1477">In cases of aromatic esters, where alternating single and double bonds are common, the function adapts the detection logic to properly handle aromaticity. For example, it correctly identifies the ester group in a molecule like <monospace>O=C(OCCC)c1ccccc1</monospace>, where the ester is attached to an aromatic benzene ring.</p></list-item><list-item>
      <p id="d2e1484">The algorithm is designed to detect esters even in highly branched molecules. For instance, in a molecule like <monospace>CCC(C(=O)OCCC)(C)CC</monospace>, the ester group is part of a branching structure, and the function ensures it is accurately parsed by considering the nested arrangement of atoms.</p></list-item></list> On the other hand, the model locates the starting and ending positions of the acid-side branch for the ester group and searches for the presence of a nitro group (N(<inline-formula><mml:math id="M33" display="inline"><mml:mo lspace="0mm">=</mml:mo></mml:math></inline-formula>O)<inline-formula><mml:math id="M34" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O) in the branch. If a nitro group is detected, the compound is classified as a nitroester, and the <monospace>nitroester_number</monospace> is incremented. In cases where no nitro group is present, the compound is classified as a regular ester, and the <monospace>ester_number</monospace> is incremented accordingly.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS12">
  <label>2.1.12</label><title><monospace>C=CC=O</monospace> in non-aromatic rings</title>
      <p id="d2e1522">The function <monospace>nonaromatic_CCCO(s)</monospace> is designed to quantify C<inline-formula><mml:math id="M35" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C–C<inline-formula><mml:math id="M36" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O substructures in a molecular SMILES notation. This section explains how the function works.</p>
      <p id="d2e1542">Since the substructure of interest occurs within rings, the function first checks whether the molecule contains any cyclic structures. The function uses <monospace>find_cycle_number(s)</monospace> to determine if any rings exist in the molecular structure. If no rings are found, the function terminates early. When rings are detected, the function proceeds to locate their positions within the SMILES string.</p>
      <p id="d2e1548">The next step is to detect the C<inline-formula><mml:math id="M37" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C–C<inline-formula><mml:math id="M38" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O group within the identified rings. This involves scanning the part of the SMILES string that represents each ring and checking for the specific pattern of atoms and bonds. Several important aspects are considered during this analysis: <list list-type="bullet"><list-item>
      <p id="d2e1567">Pattern search: within the extracted portion, the function looks for patterns that match the C<inline-formula><mml:math id="M39" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C<inline-formula><mml:math id="M40" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>C<inline-formula><mml:math id="M41" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O group. For example, the presence of <monospace>C=O</monospace> at the start of a ring followed by a conjugated double bond (<monospace>C=C</monospace>) within the ring (e.g., pattern <monospace>O=C1...C(...)=C1</monospace> bolded in SMILES <monospace><bold>O=C1</bold>CC<bold>C(</bold>OC<bold>)=C1</bold>C</monospace>), or variations where the C<inline-formula><mml:math id="M42" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C and C<inline-formula><mml:math id="M43" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O groups may be spaced by additional atoms, or where they may appear in different locations within the ring (e.g., pattern <monospace>...1...C(=O)C(...)=C...1...</monospace> bolded in SMILES <monospace>O=C<bold>1</bold>C<bold>C(=O)C(</bold>CC<bold>)=C</bold>C<bold>1</bold>C</monospace>).</p></list-item><list-item>
      <p id="d2e1645">Handling complex ring structures and nested rings: the function accounts for these complexities by carefully navigating through the parentheses and ensuring that the entire cyclic structure is examined for the C<inline-formula><mml:math id="M44" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C<inline-formula><mml:math id="M45" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>C<inline-formula><mml:math id="M46" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O group (e.g., pattern <monospace>...C(=C(C(...1...)=O)...)...</monospace> bolded in SMILES <monospace>CC1<bold>C(=C(C(</bold>CC<bold>1</bold>C<bold>)=O)</bold>C<bold>)</bold>CC</monospace>).</p></list-item></list></p>
</sec>
<sec id="Ch1.S2.SS1.SSS13">
  <label>2.1.13</label><title>Nitrate group</title>
      <p id="d2e1695">The <monospace>nitrate_number(s)</monospace> function identifies and quantifies nitrate functional groups within the provided SMILES notation. This function examines specific configurations characteristic of nitrate, including the standard nitrate structure <monospace>ON(=O)=O</monospace>, the quaternary form <monospace>O[N+](=O)[O-]</monospace>, the N-nitro structure <monospace>O=N(=O)O</monospace>, and variations like <monospace>O=[N+]([O-])O</monospace> and <monospace>[O-][N+](=O)O</monospace>, which collectively reflect diverse bonding scenarios in nitrate chemistry. The function calculates the count of each of these configurations and aggregates them to derive the total number of nitrate groups present.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS14">
  <label>2.1.14</label><title>Nitro group</title>
      <p id="d2e1725">The identification of nitro groups is executed through the <monospace>nitro_group(s)</monospace> function, which analyzes the SMILES notation to quantify nitro functional groups. This function employs a series of search operations to locate specific nitro structures, notably <monospace>N(=O)=O</monospace>, <monospace>O=N(=O)</monospace>, and various ionic forms such as <monospace>[N+](=O)[O-]</monospace>, <monospace>O=[N+][O-]</monospace>, and <monospace>[O-][N+](=O)</monospace>. Each search utilizes a loop that not only finds occurrences of these structures but also ensures that adjacent atoms do not disrupt the nitro configuration. Specifically, it checks that there is no oxygen atom directly connected to the nitro group, which would suggest an alternative bonding scenario (i.e., nitrate group). As the final filtration step, the algorithm verifies whether the identified nitro group is not part of an aromatic ring (i.e., benzene). If this condition is met, it then checks for the presence of a hydroxyl group in the ring according to Sect. 2.6. If no hydroxyl group is found, the nitro group is counted independently. However, if a hydroxyl group is present, the compound is categorized as a nitrophenol group. A detailed explanation of this functional group is provided in a subsequent subsection.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS15">
  <label>2.1.15</label><title>Nitrophenol</title>
      <p id="d2e1755">The function <monospace>nitrophenol_group(s)</monospace> is designed to identify and count the number of nitrophenol groups. After identifying aromatic hydroxyl group, the function then checks for the presence of a nitro group in the same aromatic ring within the SMILES string: <list list-type="bullet"><list-item>
      <p id="d2e1763">As the last character sequence: it inspects whether the string ends with the motif <monospace>N(=O)=O</monospace>, which signifies a nitrophenol. The function checks if it is connected to the aromatic cyclic structure by examining the characters before it. For example, if the character is an aromatic ring identifier, the counter is incremented accordingly (e.g., <monospace>c1cc(O)ccc1N(=O)=O</monospace>).</p></list-item><list-item>
      <p id="d2e1773">As the first character sequence: the function checks if the string starts with the pattern <monospace>O=N(=O)c1</monospace>, indicating a nitrophenol positioned within the SMILES string (e.g., <monospace>O=N(=O)c1cc(O)ccc1</monospace>). If this pattern is detected, the counter is incremented.</p></list-item><list-item>
      <p id="d2e1783">As middle character sequences: a loop is employed to search for occurrences of patterns such as <monospace>c(N(=O)=O)</monospace>, which indicates that nitrophenol is positioned within the structure (e.g., <monospace>c1cc(N(=O)=O)cOcc1O</monospace>). Each time this pattern is found, the counter is increased. The function also iterates through the previously established list of rings to search for patterns of the form <monospace>j(N(=O)=O)</monospace> (where <monospace>j</monospace> is an aromatic carbon identifier). Whenever a match is found, the counter is incremented (e.g., <monospace>c1(N(=O)=O)cc(O)ccc1</monospace>).</p></list-item></list></p>
</sec>
<sec id="Ch1.S2.SS1.SSS16">
  <label>2.1.16</label><title>Acylperoxynitrate group</title>
      <p id="d2e1810">The function <monospace>carbonylperoxynitrate_group(s)</monospace> is designed to detect the presence of acylperoxynitrate groups within a given SMILES string <monospace>s</monospace>. This function systematically counts occurrences of several distinct structural motifs characteristic of acylperoxynitrates, including <monospace>OON(=O)=O</monospace>, <monospace>OO[N+](=O)[O-]</monospace>, <monospace>O=N(=O)OO</monospace>, <monospace>O=[N+]([O-])OO</monospace>, and <monospace>[O-][N+](=O)OO</monospace>. The function aggregates the counts of these motifs into a single variable, <monospace>carbonylperoxynitrate</monospace>, which represents the total number of acylperoxynitrate groups identified.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS17">
  <label>2.1.17</label><title>Peroxide group</title>
      <p id="d2e1846">The function <monospace>peroxide_group(s)</monospace> is engineered to identify and quantify peroxide groups. The function first determines the number of cyclic structures within the SMILES string by calling the <monospace>find_cycle_number(s)</monospace> function. If cyclic structures are found, a list of ring identifiers, comprising both carbon (<monospace>C</monospace>) and aromatic (<monospace>c</monospace>) rings, is generated to facilitate later checks. Subsequently, the function employs a loop to search for occurrences of the OOC motif, which signifies the presence of peroxy groups. Each iteration of the loop calls <monospace>s.find('OOC',...)</monospace> to locate the next occurrence of the motif. Multiple conditions are assessed to ensure that the identified <monospace>OOC</monospace> is correctly positioned relative to other atoms or rings: <list list-type="bullet"><list-item>
      <p id="d2e1870">Adjacent carbon or aromatic carbon atoms: if the character preceding <monospace>OOC</monospace> is <monospace>C</monospace>, <monospace>Cx</monospace> or <monospace>cX</monospace> (<monospace>x=1,2,...</monospace> is cyclic index), indicating that OOC is bonded to a carbon atom, the <monospace>peroxide_number</monospace> is incremented (e.g., <monospace>CCCOOCC</monospace>, <monospace>C1CCCC1OOCC</monospace> and <monospace>Cc1cccc1OOC</monospace>).</p></list-item><list-item>
      <p id="d2e1902">Branching structures: if the character before <monospace>OOC</monospace> is a parenthesis, the function retrieves the index of the last corresponding parenthesis before <monospace>OOC</monospace> and verifies that the atom preceding this parenthesis is a carbon atom or an aromatic ring. If so, the counter is increased. For example, when the character before <monospace>OOC</monospace> is a closing parenthesis, the function checks whether the <monospace>OOC</monospace> is connected to a carbon atom in a similar manner as described previously. This involves searching back to the last opening parenthesis and ensuring the atom connected to that parenthesis is a carbon atom or part of a cyclic structure (e.g., pattern <monospace>...C(...)OOC...</monospace> bolded in SMILES <monospace>CC<bold>C</bold>(CO)<bold>OOC</bold>CC</monospace>).</p></list-item></list> These checks comprehensively ensure that only valid peroxide groups are counted, accounting for the complex connectivity possible within SMILES representations. The function ultimately returns the <monospace>peroxy_number</monospace>, providing a quantitative measure of peroxide groups within the molecular structure.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS18">
  <label>2.1.18</label><title>Aromatic amine group</title>
      <p id="d2e1942">Following the identification of aromatic rings, the function <monospace>aromatic_amine_group(s)</monospace> locates nitrogen atoms (<monospace>N</monospace>) within the SMILES string and determines their bonding to aromatic carbons. <list list-type="bullet"><list-item>
      <p id="d2e1953">Direct bond to aromatic carbon (<monospace>cN</monospace>): if nitrogen (<monospace>N</monospace>) is found immediately following an aromatic carbon <monospace>(c)</monospace>, it is counted as part of an aromatic amine group. To ensure the nitrogen atom belongs to an aromatic amine and not a nitro group (<inline-formula><mml:math id="M47" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>NO<sub>2</sub>), the model incorporates an additional condition.</p></list-item><list-item>
      <p id="d2e1982">Nitrogen in numbered rings (<monospace>c1N</monospace>, <monospace>c2N</monospace>, etc.): if nitrogen is attached to a carbon in a numbered ring, such as <monospace>c1N</monospace>, the nitrogen is identified as part of an aromatic amine group.</p></list-item><list-item>
      <p id="d2e1995">Parenthetical structures <monospace>(c(...)N)</monospace>: in cases where nitrogen is attached within parentheses following a cyclic group, the function checks if the nitrogen is part of an aromatic ring by verifying the bonding pattern of the cyclic carbon to the nitrogen. Parentheses in SMILES represent branching, and this function ensures that any branching nitrogen groups attached to aromatic carbons are also detected.</p></list-item></list> The function iterates through the SMILES string to ensure that all occurrences of nitrogen atoms are evaluated. The bonding pattern of each nitrogen atom is assessed against the aromatic rings identified in the first step. If the nitrogen atom is confirmed to be attached to an aromatic ring and not part of a nitro group, it is counted as part of an aromatic amine group. The total count of such groups is stored in the variable <monospace>aromatic_amine_number</monospace> and returned as the output of the function.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS19">
  <label>2.1.19</label><title>Primary, secondary, and tertiary amide and amine groups</title>
      <p id="d2e2013">The model is designed to detect and count primary, secondary, and tertiary amide and amine groups in a molecule represented by a SMILES string. A primary amide has the functional group structure <inline-formula><mml:math id="M49" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>C(<inline-formula><mml:math id="M50" display="inline"><mml:mo lspace="0mm">=</mml:mo></mml:math></inline-formula>O)NH<sub>2</sub>, and the model identifies both simple and branched forms of this group. To differentiate between primary amides and primary amines, the model specifically excludes patterns without a double-bonded oxygen, i.e., <inline-formula><mml:math id="M52" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>C(…)NH<sub>2</sub> where “…” is not <inline-formula><mml:math id="M54" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O, thereby ensuring correct identification of amide groups versus amine counterparts. <list list-type="bullet"><list-item>
      <p id="d2e2065">The function first identifies primary amide groups located at the beginning of the SMILES string by searching for patterns such as <monospace>O=C(N)</monospace> or <monospace>NC(=O)</monospace>, as seen in SMILES <monospace>O=C(N)CCCO</monospace> and <monospace>NC(=O)CCCO)</monospace>. It also detects primary amides at the end of the SMILES string by tracing patterns like <monospace>C(=O)N</monospace> and <monospace>C(N)=O</monospace>, as in <monospace>CCOCC(=O)N</monospace> and <monospace>CCOCC(N)=O</monospace>. To identify primary amine groups at the beginning or end of the strings, the function checks for similar patterns but without a carbonyl group (<inline-formula><mml:math id="M55" display="inline"><mml:mo lspace="0mm">=</mml:mo></mml:math></inline-formula>O). In other words, if a nitrogen is bonded to a carbon that does not carry a <inline-formula><mml:math id="M56" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O, it is interpreted as an amine rather than an amide. For example, <monospace>C(N)CCCO</monospace>, <monospace>NCCCCO</monospace>, <monospace>CCOCCN</monospace>, and <monospace>CCOCCN</monospace> are recognized as containing primary amine groups.</p></list-item><list-item>
      <p id="d2e2121">The model also identifies primary amides within branches or internal positions in the molecule by searching for specific patterns, such as <monospace>C(=O)N)</monospace> and <monospace>C(N)=O</monospace>, as seen in the SMILES strings <monospace>CC(C(=O)N)CC</monospace> and <monospace>CC(C(N)=O)CC</monospace>. To identify primary amine groups in similar positions, the model checks for the absence of the double-bonded oxygen (<inline-formula><mml:math id="M57" display="inline"><mml:mo lspace="0mm">=</mml:mo></mml:math></inline-formula>O) on the carbon adjacent to the nitrogen. This results in patterns like <monospace>CN)</monospace> in <monospace>CC(CN)CC</monospace> and <monospace>CC(CN)CC</monospace>.</p></list-item></list> For secondary and tertiary amides, the model similarly searches for patterns where the nitrogen atom is bonded to two or three carbon atoms, respectively. Secondary amides have the structure <inline-formula><mml:math id="M58" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>C(<inline-formula><mml:math id="M59" display="inline"><mml:mo lspace="0mm">=</mml:mo></mml:math></inline-formula>O)N<inline-formula><mml:math id="M60" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula>, where <inline-formula><mml:math id="M61" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> represents an alkyl group starting with a carbon atom attached to the nitrogen atom, and tertiary amides have the structure <inline-formula><mml:math id="M62" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>C(<inline-formula><mml:math id="M63" display="inline"><mml:mo lspace="0mm">=</mml:mo></mml:math></inline-formula>O)N<inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>R</mml:mi><mml:mo>)</mml:mo><mml:msup><mml:mi>R</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, where both <inline-formula><mml:math id="M65" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> are alkyl groups starting with carbon atoms attached to the nitrogen atom. The model identifies these structures by recognizing the presence of additional carbon attachments to the nitrogen atom. For secondary amides, the function searches for patterns that indicate the nitrogen is bonded to one additional carbon group, distinguishing them from primary amides by checking for two single bonds to nitrogen, along with the carbonyl group. Similarly, for tertiary amides, the function detects two alkyl groups attached to the nitrogen atom in addition to the carbonyl group. Once these amide patterns are identified, the model applies the same exclusion method for the double-bonded oxygen, converting these amides into their corresponding secondary and tertiary amines. For secondary amines, the nitrogen is attached to two carbon atoms, and for tertiary amines, the nitrogen is bonded to three carbon atoms. This method ensures that the correct amide or amine group is identified and classified, whether it is primary, secondary, or tertiary, based on the number of carbon attachments to the nitrogen atom.</p>
      <p id="d2e2232">Finally, the model counts the number of carbon atoms in the secondary and tertiary amides that are not part of the <inline-formula><mml:math id="M67" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> groups in the structure. This count is considered as the number of carbons on the acid side of the amides. For primary amides, since there are no additional alkyl groups attached to the nitrogen atom, all carbon atoms in the structure are considered to be on the acid side of the amide. This ensures accurate categorization and counting of carbon atoms associated with the amide's acid side, contributing to the overall structural analysis of the molecule.</p>
</sec>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Saturation vapor pressure calculation</title>
      <p id="d2e2263">Once functional groups are identified, VaPOrS converts the detection results into integer values representing the frequency of each group in a given compound. These values are stored in an array and serve as the critical input for property prediction. In the present implementation, the pure-component liquid saturation vapor pressures, excluding the Raoult effect, is calculated using the SIMPOL group-contribution method, in which the total logarithmic vapor pressure is expressed as the sum of contributions from all relevant functional groups as a function of temperature. In the model: <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e2268">Matrix <inline-formula><mml:math id="M69" display="inline"><mml:mi mathvariant="bold">B</mml:mi></mml:math></inline-formula> is read from a pre-defined text file containing coefficients of <inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M71" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> for each functional group <inline-formula><mml:math id="M74" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>, according to Table 5 of Pankow and Asher (2008). A select functional group is assigned a value for contribution to saturation vapor pressure in the <inline-formula><mml:math id="M75" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th SMILES string (such as hydroxyl, aldehyde, and ketone groups, etc.).</p></list-item><list-item><label>ii.</label>
      <p id="d2e2358">Then, <inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:msubsup><mml:mi>P</mml:mi><mml:mrow><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mn mathvariant="normal">0</mml:mn></mml:msubsup><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are calculated for any given temperature according to Eqs. (1) and (2). The total liquid (saturation) vapor pressure, <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:msubsup><mml:mi>P</mml:mi><mml:mrow><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mn mathvariant="normal">0</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> (atm), is calculated as the sum of all functional group contributions.<disp-formula specific-use="align" content-type="numbered"><mml:math id="M79" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E1"><mml:mtd><mml:mtext>1</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mi>T</mml:mi></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msub><mml:mi>ln⁡</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E2"><mml:mtd><mml:mtext>2</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:msubsup><mml:mi>P</mml:mi><mml:mrow><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mn mathvariant="normal">0</mml:mn></mml:msubsup><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>k</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mn mathvariant="normal">2</mml:mn><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">…</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>where <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the number of groups of type <inline-formula><mml:math id="M81" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the contribution to <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:msub><mml:mi>log⁡</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:msubsup><mml:mi>P</mml:mi><mml:mrow><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mn mathvariant="normal">0</mml:mn></mml:msubsup><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> by each group of type <inline-formula><mml:math id="M84" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M85" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> is the temperature. Also, 0 and <inline-formula><mml:math id="M86" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> show the reference and Liquid.</p></list-item><list-item><label>iii.</label>
      <p id="d2e2684">To fit the saturation vapor pressure data to the Antoine equation (Eq. 3) to enable further use of the saturation vapor pressure values in different applications, the saturation vapor pressure is calculated at 1000 temperature points across a wide range of temperatures from 220 to 450 K according to Eq. (2). The obtained data are then used in a non-linear least squares fitting procedure, which minimizes the difference between the data and the saturation vapor pressure values predicted by the Antoine equation. The Antoine equation parameters (i.e., <inline-formula><mml:math id="M87" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M88" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M89" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula>) are then obtained for each compound.<disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M90" display="block"><mml:mrow><mml:mi>log⁡</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">sat</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mo>-</mml:mo><mml:mi>B</mml:mi><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mi>C</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p></list-item><list-item><label>iv.</label>
      <p id="d2e2743">After obtaining the Antoine equation parameters, the vaporization enthalpy relationship can be derived using the Clausius–Clapeyron equation:<disp-formula specific-use="align" content-type="numbered"><mml:math id="M91" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E4"><mml:mtd><mml:mtext>4</mml:mtext></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>log⁡</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">sat</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>T</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">vap</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2.303</mml:mn><mml:mi>R</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E5"><mml:mtd><mml:mtext>5</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">vap</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.303</mml:mn><mml:mi>R</mml:mi><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>log⁡</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">sat</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mfenced close=")" open="("><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>T</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>Here, <inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">vap</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the temperature-dependent enthalpy of vaporization, and <inline-formula><mml:math id="M93" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> is the universal gas constant. This expression relates the slope of the logarithm of the saturation pressure with respect to the inverse of temperature to the enthalpy of vaporization. The Antoine equation provides a framework to calculate saturation vapor pressure at any given temperature, and this relationship extends the utility of the model by allowing the determination of thermodynamic quantities such as vaporization enthalpy.</p></list-item><list-item><label>v.</label>
      <p id="d2e2902">The output is written to a CSV file named by the user (e.g., output.csv), where each line corresponds to the <inline-formula><mml:math id="M94" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th compound and its associated data, including its SMILES string, the count of each functional group in its structure, its saturation vapor pressure at 300 K, and its fitted Antoine equation parameters. Figure 3 illustrates a flowchart of the VaPOrS from input to output.</p></list-item></list></p>

      <fig id="F3"><label>Figure 3</label><caption><p id="d2e2914">Flowchart of the automated process of VaPOrS, beginning with SMILES notation input, followed by the identification of functional groups, initial saturation vapor pressure and enthalpy of vaporization calculations, their fitting to the Antoine equation, and final output.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f03.png"/>

        </fig>

</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Validation</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Saturation vapor pressure</title>
      <p id="d2e2939">To evaluate the accuracy of the developed automated VaPOrS in predicting the saturation vapor pressures of organic compounds, the model was applied to a subset of the original dataset used to develop the SIMPOL parameterization. Saturation vapor pressures for 224 organic compounds were calculated using VaPOrS and compared against experimental data to assess the accuracy of the implementation and ensure consistency with established results.</p>
      <p id="d2e2942">Figure 4 presents a comparative analysis between the saturation vapor pressures computed by the VaPOrS, those manually calculated using the SIMPOL method, and those derived from experimental data reported by Pankow and Asher (2008) using the Antoine coefficients provided in their Supplement, all evaluated at 333.15 K. The <inline-formula><mml:math id="M95" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> axis represents the experimental saturation vapor pressures, while the <inline-formula><mml:math id="M96" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis represents the numerical values calculated by the VaPOrS (filled symbols with no edge color) and the manually implemented SIMPOL method (black-edged hollow symbols). Due to a complete overlap in the data points, the black-edged symbols from the manual SIMPOL method can be seen over the filled symbols from VaPOrS. A diagonal line is shown in the figure, indicating the ideal correlation where the computed values would perfectly match the measured saturation vapor pressures. Data points positioned close to this diagonal demonstrate a high level of agreement between the two approaches. Quantitatively, the comparison yields an RMSE of 0.4232 and an <inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> of 0.9648 for <inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:math></inline-formula>, confirming the excellent predictive performance of VaPOrS in reproducing experimental vapor pressures at this temperature.</p>

      <fig id="F4"><label>Figure 4</label><caption><p id="d2e2982">Comparison of saturation vapor pressure values calculated by the VaPOrS (filled symbols with no edge color) and manual SIMPOL method (symbols with no face color and black edges) against measured saturation vapor pressures at 333.15 K. The diagonal line represents the ideal <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>:</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> correlation, and the proximity of data points to this line indicates the accuracy of both methods in predicting saturation vapor pressures. The overlap in symbols is visible due to the black-edged SIMPOL markers covering the filled VaPOrS symbols.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f04.png"/>

        </fig>

      <p id="d2e3004">Figure 5 illustrates the saturation vapor pressure results obtained through the VaPOrS, those manually calculated using the SIMPOL method, and those derived from experimental data reported by Pankow and Asher (2008) using the Antoine coefficients provided in their Supplement, all at seven different temperatures: 273.15, 293.15, 313.15, 333.15, 353.15, 373.15 and 393.15 K. Similar to Fig. 4, the <inline-formula><mml:math id="M100" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> axis represents the measured saturation vapor pressures, while the <inline-formula><mml:math id="M101" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis displays the values calculated by VaPOrS (filled symbols with no edge color) and manual SIMPOL method (black-edged hollow symbols). This figure includes a larger dataset, allowing for a more comprehensive assessment of model performance across a range of temperatures. Many data points are clustered close to the <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>:</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> line, yielding an RMSE of 0.5556 and an <inline-formula><mml:math id="M103" display="inline"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> of 0.9570 for <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:math></inline-formula>, further confirming the effectiveness of the VaPOrS model in predicting saturation vapor pressures for various compounds across different temperatures as well. Some deviations from the line are observed e.g., the experimental values for the nitro and saturated compound saturation vapor pressures and <inline-formula><mml:math id="M105" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>-dependencies have large uncertainties as seen in Figs. 4 and 5. These discrepancies, which were present in the original dataset, do not undermine the overall trend, which demonstrates strong agreement among the three methods and suggests that the VaPOrS code is reliable and robust across a wider temperature range. Most importantly, we see complete agreement in the output of VaPOrS and SIMPOL.</p>

      <fig id="F5"><label>Figure 5</label><caption><p id="d2e3064">Comparison of saturation vapor pressures obtained from the VaPOrS model, the manual SIMPOL method, and experimental measurements at seven different temperatures (273.15, 293.15, 313.15, 333.15, 353.15, 373.15, and 393.15 K). The <inline-formula><mml:math id="M106" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> axis represents the measured saturation vapor pressures, while the <inline-formula><mml:math id="M107" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis shows the values calculated by VaPOrS (filled symbols) and the SIMPOL method (hollow symbols with black edges). The diagonal line indicates the ideal correlation, with points near the line demonstrating good agreement between the methods.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f05.png"/>

        </fig>

</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Enthalpy of vaporization</title>
      <p id="d2e3095">Figure 6 compares the experimental and numerical vaporization enthalpy values reported by the SIMPOL paper with those calculated by the VaPOrS at 333.15 K. The <inline-formula><mml:math id="M108" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> axis represents experimentally measured values, while the <inline-formula><mml:math id="M109" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis displays the calculated values. The results from the VaPOrS are represented by filled symbols without edge color, indicating a direct prediction from the present model. In contrast, the SIMPOL method results are depicted as symbols with no face color and distinct black edges. The presence of overlapping symbols highlights instances where the calculated values from SIMPOL cover those from VaPOrS. Many points cluster close to the <inline-formula><mml:math id="M110" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>:</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> line, but deviations are also observed. Quantitatively, the comparison yields an RMSE of 14.4740 and an <inline-formula><mml:math id="M111" display="inline"><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> of 0.6146 for <inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>H</mml:mi></mml:mrow></mml:math></inline-formula>. These results indicate that while VaPOrS captures the general trend of enthalpy data, the agreement is weaker than for vapor pressures. These discrepancies could be attributed to the structural complexity of certain compounds making intramolecular interactions important and not amenable to simple group additivity predictions, which is also a known limitation in the SIMPOL method itself, or potentially, they could point out issues in the original experimental measurements.</p>

      <fig id="F6"><label>Figure 6</label><caption><p id="d2e3147">Comparison of enthalpy of vaporization values calculated by the VaPOrS (filled symbols without edge color) and manually by SIMPOL method (symbols with no face color and black edges) against experimental measurements at 333.15 K. The diagonal line indicates the ideal <inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>:</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> correlation, showcasing the accuracy of the models. Overlapping symbols are observed, with black-edged SIMPOL markers obscuring the filled VaPOrS symbols.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f06.png"/>

        </fig>

      <p id="d2e3168">Although the SIMPOL model does not explicitly define an applicability domain, the structure-based framework of VaPOrS offers an opportunity to explore this aspect. Since the code identifies and counts functional groups for each molecule, it can be used to highlight cases where predictions may be less reliable. For instance, compounds such as Decanedioic acid, which contains two carboxyl groups, or Hexanamide, where strong hydrogen-bonding interactions may play a role, or Diethyl-peroxide, which contains a relatively uncommon peroxide group show noticeable deviations from experimental values (see Fig. 7). These examples suggest that compounds with an unusually high number of hydroxyl or carboxyl groups, or those containing less common fragments such as peroxides, often exhibit larger deviations from experimental vapor pressures. Likewise, the co-occurrence of multiple reactive groups within the same molecule (e.g., carbonyl–peroxide combinations) may introduce additional uncertainties. While a systematic applicability domain analysis is beyond the scope of this study, we note that VaPOrS could be extended to provide such functionality, thereby guiding users in assessing the reliability of SIMPOL predictions for structurally complex molecules.</p>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e3174">Temperature dependence of saturation vapor pressure and enthalpy of vaporization for nine representative organic compounds with nine distinct functional groups predicted by VaPOrS using the Antoine and SIMPOL equations. The left <inline-formula><mml:math id="M114" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis shows the logarithmic saturation vapor pressure (in atm), and the right <inline-formula><mml:math id="M115" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis displays the enthalpy of vaporization (in kJ mol<sup>−1</sup>). The results demonstrate the data generated by Antoine and SIMPOL methods across the temperature range, with experimental data (Pankow and Asher, 2008) closely matching the theoretical predictions.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f07.png"/>

        </fig>

</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Antoine equation</title>
      <p id="d2e3217">The results of the fitting process for nine compounds, i.e., 2-methoxy-tetrahydro-pyran, decanedioic acid, methyl-benzoate, phenylamine, hexanamide, phenylmethyl-nitrate, 2-methyl-6-nitrobenzoic acid, diethyl-peroxide, and 2-napthol as representatives of ethers, saturated, esters, amines, amides, nitrates, nitro-compounds, peroxides, and aromatics, respectively, are visualized in Fig. 7. The figure illustrates the temperature-dependent behavior of the vapor pressure and enthalpy of vaporization derived from the Antoine and SIMPOL relationships generated by VaPOrS and compares them with those derived from experimental data reported by Pankow and Asher (2008) using the Antoine coefficients provided in their supplementary material across varying temperatures. The left <inline-formula><mml:math id="M117" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis represents the logarithmic saturation vapor pressure in atmospheres, while the right <inline-formula><mml:math id="M118" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis shows the enthalpy of vaporization in kJ mol<sup>−1</sup>. This dual-axis representation enables a direct visual comparison between pressure and enthalpy trends as the temperature increases. The fitting results demonstrate a high degree of agreement between the Antoine and SIMPOL curves for all compound classes, implying that the Antoine equation given by VaPOrS can be applied effectively to estimate saturation vapor pressures with good accuracy across a broad range of temperatures, enhancing the utility of the saturation vapor pressure data for various applications.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Results and discussion</title>
      <p id="d2e3255">Using VaPOrS, a detailed comparison was performed between the manual counting and calculation of functional groups and saturation vapor pressures and the automated results generated from the compounds' SMILES notations. The manual counting involved a systematic review of each compound's molecular structure, visually identifying and recording the functional groups, followed by calculating its saturation vapor pressure according to SIMPOL group contributions. This was then cross-referenced with the automated results generated by VaPOrS to ensure consistency. The procedure was performed in three steps described next.</p>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>MCM data</title>
      <p id="d2e3265">In the first step, a dataset of 126 primary VOCs sourced from the Master Chemical Mechanism (MCM) database are evaluated. While the MCM database provides detailed chemical mechanisms for atmospheric chemistry, its coverage of primary organic compounds is relatively limited compared to the vast diversity of VOCs present in the atmosphere. Nonetheless, it serves as a valuable resource for validation, given its detailed representation of key compounds. Notably, the MCM database not only provides the structures of these compounds but also includes their corresponding SMILES notation, facilitating an accurate assessment of functional group presence through the VaPOrS method. The current version of the MCM (v3.3.1) can be obtained as the file mcm_3-3-1_species_complete.tsv from the MCM archive page (<uri>https://www.mcm.york.ac.uk/MCM/about/archive</uri>, last access: 20 November 2025).</p>
      <p id="d2e3271">Table 1 presents a sample comparison between the manual and automated counts of the functional groups for representative compounds from several categories in the MCM, including Alcohols and Glycols, Aldehydes, Alkanes, Alkenes, Alkynes, Aromatics, Dialkenes, Esters, Ethers and Glycol Ethers, Ketones, Monoterpenes and Sesquiterpenes, Organic Acids, and Unclassified compounds. As shown, the results from both methods are in complete agreement, with 0 % discrepancy across all cases.</p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e3277">Comparison of Manual and Automated Counts of Functional Groups for Representative Compounds across Various Categories in the MCM Database.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="5">
     <oasis:colspec colnum="1" colname="col1" align="justify" colwidth="2cm"/>
     <oasis:colspec colnum="2" colname="col2" align="justify" colwidth="3cm"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="justify" colwidth="4.5cm"/>
     <oasis:colspec colnum="5" colname="col5" align="center"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Category</oasis:entry>
         <oasis:entry colname="col2" align="left">Compounds</oasis:entry>
         <oasis:entry colname="col3">SMILES</oasis:entry>
         <oasis:entry colname="col4" align="left">Functionals</oasis:entry>
         <oasis:entry colname="col5">Consistency</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Alcohols and Glycols</oasis:entry>
         <oasis:entry colname="col2" align="left">CYCLOHEXANOL</oasis:entry>
         <oasis:entry colname="col3"><monospace>OC1CCCCC1</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>6</underline> carbons, <underline>1</underline> nonaromatic ring, <underline>1</underline> hydroxyl</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Aldehydes</oasis:entry>
         <oasis:entry colname="col2" align="left">PROPENAL</oasis:entry>
         <oasis:entry colname="col3"><monospace>C=CC=O</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>3</underline> carbons, <underline>1</underline> C<inline-formula><mml:math id="M120" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C (non-aromatic), <underline>1</underline> aldehyde</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Alkanes</oasis:entry>
         <oasis:entry colname="col2" align="left">3-METHYLPENTANE</oasis:entry>
         <oasis:entry colname="col3"><monospace>CCC(C)CC</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>6</underline> carbons</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Alkenes</oasis:entry>
         <oasis:entry colname="col2" align="left">1-HEXENE</oasis:entry>
         <oasis:entry colname="col3"><monospace>CCCCC=C</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>6</underline> carbons, <underline>1</underline> C<inline-formula><mml:math id="M121" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C (non-aromatic)</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Alkynes</oasis:entry>
         <oasis:entry colname="col2" align="left">ETHYNE</oasis:entry>
         <oasis:entry colname="col3"><monospace>C#C</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>2</underline> carbons</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Aromatics</oasis:entry>
         <oasis:entry colname="col2" align="left">ETHYL BENZENE</oasis:entry>
         <oasis:entry colname="col3"><monospace>CCc1ccccc1</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>8</underline> carbons, <underline>1</underline> aromatic ring</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Dialkenes</oasis:entry>
         <oasis:entry colname="col2" align="left">1–3 BUTADIENE</oasis:entry>
         <oasis:entry colname="col3"><monospace>C=CC=C</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>4</underline> carbons, <underline>2</underline> C<inline-formula><mml:math id="M122" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C (non-aromatic)</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Esters</oasis:entry>
         <oasis:entry colname="col2" align="left">ETHYL ACETATE</oasis:entry>
         <oasis:entry colname="col3"><monospace>CCOC(=O)C</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>4</underline> carbons, <underline>1</underline> ester</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Ethers and Glycol Ethers</oasis:entry>
         <oasis:entry colname="col2" align="left">2-METHOXY ETHANOL</oasis:entry>
         <oasis:entry colname="col3"><monospace>COCCO</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>3</underline> carbons, <underline>1</underline> hydroxyl, <underline>1</underline> ether</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Ketones</oasis:entry>
         <oasis:entry colname="col2" align="left">CYCLOHEXANONE</oasis:entry>
         <oasis:entry colname="col3"><monospace>O=C1CCCCC1</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>6</underline> carbons, <underline>1</underline> nonaromatic ring, <underline>1</underline> ketone</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Monoterpenes and Sesquiterpenes</oasis:entry>
         <oasis:entry colname="col2" align="left">ALPHA-PINENE</oasis:entry>
         <oasis:entry colname="col3"><monospace>CC1=CCC2CC1C2(C)C</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>10</underline> carbons, <underline>2</underline> nonaromatic rings, <underline>1</underline> C<inline-formula><mml:math id="M123" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C (non-aromatic)</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Organic Acids</oasis:entry>
         <oasis:entry colname="col2" align="left">PROPANOIC ACID</oasis:entry>
         <oasis:entry colname="col3"><monospace>CCC(=O)O</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>3</underline> carbons, <underline>1</underline> carboxylic acid</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1" align="left">Unclassified</oasis:entry>
         <oasis:entry colname="col2" align="left">ETHYLENE OXIDE</oasis:entry>
         <oasis:entry colname="col3"><monospace>O1CC1</monospace></oasis:entry>
         <oasis:entry colname="col4" align="left"><underline>2</underline> carbons, <underline>1</underline> nonaromatic ring, <underline>1</underline> ether (alicyclic)</oasis:entry>
         <oasis:entry colname="col5">100 %</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e3675">In the second phase, <inline-formula><mml:math id="M124" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-pinene and benzene were selected as case studies to evaluate the species formed during their tropospheric degradation via gas-phase chemical processes, focusing on functional group occurrence and saturation vapor pressure. This analysis leveraged the detailed mechanism in the MCM to further validate the automated functional group detection system's accuracy in modeling atmospheric chemistry. For each species, the occurrences of functional groups were manually counted, and saturation vapor pressure was calculated using the SIMPOL method. Their SMILES notation was then input into the VaPOrS to automatically obtain functional group counts and saturation vapor pressures. The saturation vapor pressures obtained through both methods are compared at 298.15 K in Figs. 8 and 9 for <inline-formula><mml:math id="M125" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-pinene and benzene, respectively, where the <inline-formula><mml:math id="M126" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis represents the logarithmic saturation vapor pressure and the <inline-formula><mml:math id="M127" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> axis the molar mass of each species. Automated results are shown as color bars based on the number of detected functional groups, and their manual counterparts are displayed as points. The perfect alignment of points atop bars for each species indicates excellent agreement between both approaches. It is worth mentioning that C<sub>6</sub>H<sub>6</sub>N<sub>2</sub>O<sub>11</sub> and CH<sub>2</sub>O (i.e., NNCATECOOH and HCHO in the MCM) were recognized as the least and most volatile species in the benzene oxidation process. On the other hand, C<sub>9</sub>H<sub>16</sub>O<sub>6</sub> and CH<sub>3</sub>O (i.e., C<sub>922</sub>OOH and CH<sub>3</sub>O in the MCM) were the least and most volatile species in the <inline-formula><mml:math id="M139" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-pinene oxidation process.</p>

      <fig id="F8" specific-use="star"><label>Figure 8</label><caption><p id="d2e3816">Comparison of saturation vapor pressure results for tropospheric degradation species of <inline-formula><mml:math id="M140" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-pinene. The figure presents the log saturation vapor pressure versus molar mass at 298.15 K for species formed from the tropospheric oxidation of <inline-formula><mml:math id="M141" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-pinene according to MCM. Bars show results from the automated VaPOrS code, with colors based on detected functional group number involved in the chemical structure of species, and points reflect manually calculated values. The alignment of points atop bars demonstrates the perfect consistency between automated and manual calculations.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f08.png"/>

        </fig>

      <fig id="F9" specific-use="star"><label>Figure 9</label><caption><p id="d2e3841">Comparison of saturation vapor pressure results for tropospheric degradation species of benzene. The figure illustrates the log saturation vapor pressure versus molar mass at 298.15 K for species derived from benzene degradation according to MCM. The bars represent saturation vapor pressures calculated by the automated VaPOrS code, with colors based on detected functional group number involved in the chemical structure of species, while points indicate manually obtained values. The close alignment of points with bars highlights the accuracy of the automated method relative to manual calculations.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f09.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>autoAPRAM-fw data</title>
      <p id="d2e3858">In the third stage of this analysis, the VaPOrS model was utilized to determine the saturation pressures of over 850 potential chemical species produced through the autoxidation of alkoxy and peroxy radicals, which emerge during benzene degradation. The initial radicals were defined by the MCM, with their respective saturation vapor pressures detailed in Fig. 9. Conversely, the products of autoxidation were generated using the autoAPPRAM-fw tool (Pichelstorfer et al., 2024), with their potential structures represented by SMILES notation. Demonstrating its efficiency, VaPOrS analyzed all SMILES entries within a single second, accurately counting the required functional groups and calculating corresponding saturation vapor pressures. The results of these predictions are illustrated in Fig. 10.</p>

      <fig id="F10" specific-use="star"><label>Figure 10</label><caption><p id="d2e3863">Comparison of saturation vapor pressure results for autoxidation species of benzene. The figure illustrates the log saturation vapor pressure versus molar mass at 298.15 K for species derived from autoxidation of initial alkoxy and peroxy radicals of benzene degradation. The bars represent saturation vapor pressures calculated by the automated VaPOrS code, with colors based on detected functional group number involved in the chemical structure of species, while points indicate manually obtained values. The close alignment of points with bars highlights the accuracy of the automated method relative to manual calculations.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f10.png"/>

        </fig>

      <p id="d2e3872">Figure 10 demonstrates the saturation vapor pressures achieved through the VaPOrS and compares them with their manually calculated counterparts. Automated results are shown as colorful bars based on the number of detected functional groups reaching as high as 15 for some autoAPRAMfw products, and manual results are depicted as points. The compatibility of points atop bars for each species indicates excellent agreement between both approaches.</p>
      <p id="d2e3876">Figure 11 presents 2D and 3D scatter plots comparing the logarithmic saturation vapor pressures obtained at 298.15 K from VaPOrS (log P_VaPOrS) with those predicted by the EVAPORATION (log P_EVAPORATION), Myrdal–Yalkowsky (log P_Myrdal_Yalkowsky), and Nannoolal (log P_Nannoolal) methods for the benzene-derived oxidation and autoxidation products. Each marker represents a compound, with color indicating the number of functional groups in its structure. The red dashed line in the 2D plots signifies the theoretical <inline-formula><mml:math id="M142" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>:</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> relationship, where the saturation vapor pressures predicted by VaPOrS and the other models would be equivalent. Moreover, the 3D plots include the molar mass of species to give more details of the achieved results.</p>

      <fig id="F11" specific-use="star"><label>Figure 11</label><caption><p id="d2e3893">Comparison of logarithmic saturation vapor pressures at 298.15 K predicted by the VaPOrS model (log P_VaPOrS) with those from the EVAPORATION (log P_EVAPORATION), Nannoolal (log P_Nannoolal), and Myrdal–Yalkowsky (log P_Myrdal_Yalkowsky) methods for autoxidation products derived from benzene degradation. Each data point represents a compound, with color indicating the functional group count. The red dashed line in the 2D plots represents the theoretical <inline-formula><mml:math id="M143" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>:</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> relationship, where predictions from VaPOrS and other methods would be equivalent. The 3D plots include molar mass variation as well to give a comprehensive view of relationships between the parameters.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f11.png"/>

        </fig>

      <p id="d2e3914">Further analysis shows that the current VaPOrS predictions based on SIMPOL parameterization align closely with those from the EVAPORATION method in the higher saturation vapor pressure range (approximately <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">15</mml:mn></mml:mrow></mml:math></inline-formula> on the logarithmic scale), with the EVAPORATION method tending to overestimate saturation vapor pressures for species with greater functional complexity. In contrast, VaPOrS demonstrates good agreement with the Nannoolal method in the lower saturation vapor pressure range (approximately <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">15</mml:mn></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">24</mml:mn></mml:mrow></mml:math></inline-formula>), particularly for molecules with a high functional group count. The Myrdal–Yalkowsky method, however, totally overestimates saturation vapor pressures across the board compared to VaPOrS, with deviations increasing as functional group complexity rises. It is important to note that the current values are essentially SIMPOL-based predictions, so while these comparisons are informative, the general trends have been discussed in previous studies. However, as highlighted by Isaacman-VanWertz and Aumont (2021), a combination of existing methods, potentially an average of them, has been suggested to yield the most reliable saturation vapor pressure estimates. Acknowledging this, a future refinement of the current approach could involve assessing whether incorporating such a hybrid method improves agreement with experimental data.</p>
      <p id="d2e3957">Using VaPOrS, the benzene-derived oxidation and autoxidation products were further classified into volatility categories based on their effective saturation mass concentration (<inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M149" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>). These include ultra-low-volatility organic compounds (ULVOC, <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M152" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>), extremely low-volatility organic compounds (ELVOC, <inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M155" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>), low-volatility organic compounds (LVOC, <inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M158" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>), semi-volatile organic compounds (SVOC, <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M161" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>), and intermediate-volatility organic compounds (IVOC, <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M164" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>) (Simon et al., 2020).</p>
      <p id="d2e4266">Figure 12 presents the relationship between molar mass and effective saturation concentration for these products. Oxidation products from the MCM and autoxidation products from autoAPPRAM-fw were both introduced into the VaPOrS framework to calculate their saturation concentrations at 298.15 K. Each data point corresponds to an individual compound. The regression line highlights a strong negative correlation between molar mass and vapor pressure, indicating that molecular growth shifts compounds toward the low-volatility regime. The inset pie chart shows the molar-mass-weighted distribution across volatility classes, underlining the prevalence of ELVOC and ULVOC species. These results demonstrate that autoxidation significantly enhances the formation of low-volatility vapors, which play a key role in SOA formation.</p>

      <fig id="F12" specific-use="star"><label>Figure 12</label><caption><p id="d2e4272">Relationship between molar mass and effective saturation concentration (<inline-formula><mml:math id="M166" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M167" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>) of benzene-derived products at 298.15 K. Oxidation products (MCM) and autoxidation products (autoAPPRAM-fw) were both introduced into VaPOrS for the calculation of their saturation concentrations. Each point represents an individual compound. The dashed line denotes the linear regression fit, showing a strong negative correlation between molar mass and vapor pressure. Volatility classes are shown as shaded regions: ULVOC (<inline-formula><mml:math id="M169" display="inline"><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M170" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>), ELVOC (<inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M173" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>), LVOC (<inline-formula><mml:math id="M175" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M176" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>), SVOC (<inline-formula><mml:math id="M178" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M179" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>), and IVOC (<inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>&lt;</mml:mo><mml:msup><mml:mi>C</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M182" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup>). The inset pie chart illustrates the molar-mass-weighted fractions of compounds in each volatility category, highlighting the dominance of ELVOC and ULVOC species.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/9189/2025/gmd-18-9189-2025-f12.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS3">
  <label>4.3</label><title>Benchmarking against existing tools</title>
      <p id="d2e4600">While UManSysProp also employs SMILES notations for vapor pressure estimation, our work was motivated by its repeated and verifiable failures to correctly identify functional groups across a range of organic species. Such misclassifications compromise vapor pressure estimation, particularly for chemically complex multifunctional compounds relevant to atmospheric oxidation and SOA formation. To quantify this, we benchmarked UManSysProp and VaPOrS against the original compound set used in the SIMPOL development paper and validated the results at 333.15 K. In this analysis, the SIMPOL values were obtained through manual calculations using the equations and parameters reported by Pankow and Asher (2008), while the experimental vapor pressures were derived from the Antoine coefficients provided in their Supplementary Information. UManSysProp frequently misidentified functional groups listed in Table 2, resulting in deviations from SIMPOL values, whereas VaPOrS consistently reproduced the expected outputs.</p>

<table-wrap id="T2" specific-use="star"><label>Table 2</label><caption><p id="d2e4606">Benchmark of UManSysProp and VaPOrS against the original SIMPOL compounds from Pankow and Asher (2008). Several functional groups critical for vapor pressure estimation were missed by UManSysProp, resulting in deviations from SIMPOL values. VaPOrS accurately reproduced SIMPOL predictions in all cases. All vapor pressure values are expressed as <inline-formula><mml:math id="M184" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:math></inline-formula> (in atm) at 333.15 K.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <oasis:colspec colnum="1" colname="col1" align="justify" colwidth="3cm"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="center"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="center"/>
     <oasis:colspec colnum="6" colname="col6" align="center"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">Compound</oasis:entry>
         <oasis:entry colname="col2">SMILES</oasis:entry>
         <oasis:entry colname="col3">SIMPOL</oasis:entry>
         <oasis:entry colname="col4">UManSysProp</oasis:entry>
         <oasis:entry colname="col5">VaPOrS</oasis:entry>
         <oasis:entry colname="col6">Experimental</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">formamide</oasis:entry>
         <oasis:entry colname="col2"><monospace>C(=O)N</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M185" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.6493</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">1.8307</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M186" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.6493</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.1778</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">ethyl-formamide</oasis:entry>
         <oasis:entry colname="col2"><monospace>CCNC=O</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.2014</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">1.1292</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M189" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.2014</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M190" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.0353</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">methyl-formamide</oasis:entry>
         <oasis:entry colname="col2"><monospace>CNC=O</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.8507</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">1.4799</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.8507</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M193" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.6507</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">diethyl-formamide</oasis:entry>
         <oasis:entry colname="col2"><monospace>CCN(CC)C=O</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.0970</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">0.4278</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M195" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.0970</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M196" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.8235</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">dimethyl-formamide</oasis:entry>
         <oasis:entry colname="col2"><monospace>CN(C)C=O</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M197" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.3956</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">1.1292</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.3956</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.4152</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">dimethyl-hydroxylamine</oasis:entry>
         <oasis:entry colname="col2"><monospace>CN(C)O</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.1686</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">1.4799</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M201" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.1686</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M202" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.7208</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left"><inline-formula><mml:math id="M203" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>-butyl-benzoate</oasis:entry>
         <oasis:entry colname="col2"><monospace>CCCCOC(=O)c1ccccc1</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M204" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3742</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.2884</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3742</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M207" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.4300</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">2-methyl-propyl-benzoate</oasis:entry>
         <oasis:entry colname="col2"><monospace>CC(C)COC(=O)c1ccccc1</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M208" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3742</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M209" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.2884</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3742</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M211" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.9881</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left"><inline-formula><mml:math id="M212" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>-propyl-benzoate</oasis:entry>
         <oasis:entry colname="col2"><monospace>CCCOC(=O)c1ccccc1</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.0235</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.9377</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M215" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.0235</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.7297</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">ethyl-benzoate</oasis:entry>
         <oasis:entry colname="col2"><monospace>CCOC(=O)c1ccccc1</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M217" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.6728</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.5870</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.6728</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.5309</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">methyl-benzoate</oasis:entry>
         <oasis:entry colname="col2"><monospace>COC(=O)c1ccccc1</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.3220</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.2363</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.3220</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.3216</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">acetic-acid,-phenyl-ester</oasis:entry>
         <oasis:entry colname="col2"><monospace>CC(=O)Oc1ccccc1</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M225" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.3220</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M226" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.1088</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M227" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.3220</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M228" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.2995</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">dimethyl-1,2-benzenedicarboxylate</oasis:entry>
         <oasis:entry colname="col2"><monospace>COC(=O)c1ccccc1C(=O)OC</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M229" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.1093</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M230" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.9377</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M231" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.1093</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M232" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.2168</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">dimethyl-benzene-1,3-dicarboxylate</oasis:entry>
         <oasis:entry colname="col2"><monospace>COC(=O)c1cccc(c1)C(=O)OC</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M233" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.1093</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.9377</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M235" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.1093</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M236" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.1260</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">dimethyl-benzene-1,4-dicarboxylate</oasis:entry>
         <oasis:entry colname="col2"><monospace>COC(=O)c1ccc(cc1)C(=O)OC</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M237" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.1093</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M238" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.9377</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.1093</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M240" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.0839</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">di-<inline-formula><mml:math id="M241" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>-butyl-ethanedicarboxylate</oasis:entry>
         <oasis:entry colname="col2"><monospace>CCCCOC(=O)C(=O)OCCCC</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.4973</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.3257</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.4973</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M245" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3166</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">diethyl-ethanedicarboxylate</oasis:entry>
         <oasis:entry colname="col2"><monospace>CCOC(=O)C=CC(=O)OCC</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.7959</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M247" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.7558</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M248" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.7959</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M249" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.5070</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1" align="left">ethyl-2-nitropropionate</oasis:entry>
         <oasis:entry colname="col2"><monospace>CCOC(=O)C(C)[N+](=O)[O-]</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M250" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3118</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.4828</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M252" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3118</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M253" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.6618</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1" align="left">methyl-2-nitro-propionate</oasis:entry>
         <oasis:entry colname="col2"><monospace>CC(C(=O)OC)[N+](=O)[O-]</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M254" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.9611</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.1320</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M256" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.9611</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M257" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.6133</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup>

</oasis:table></table-wrap>

      <p id="d2e5685">It is worth mentioning that in compounds such as dimethyl-hydroxylamine, the initial classification considered only the amine functional group, excluding the hydroxyl, as the SIMPOL definition specifies alkyl hydroxyls as hydroxyl groups bonded to non-aromatic carbon atoms. However, careful observation of Figs. 7a and 13 in Pankow and Asher (2008) revealed that the hydroxyl group appears to have been included in the calculation of both vapor pressure and enthalpy of vaporization. Although the numerical values were unavailable, this observation led us to infer that the phrase “non-aromatic carbon” may have been used to distinguish the behavior of hydroxyl groups attached to aromatic rings rather than to strictly define the atom of attachment. Accordingly, VaPOrS adopts this interpretation to align with the apparent implementation in SIMPOL. The tool remains adaptable and can be updated should new clarifications or refinements to the SIMPOL framework become available.</p>
      <p id="d2e5689">Further comparison was carried out at 333.15 K for the 126 primary VOCs from MCM database used in Sect. 4.1. UManSysProp yielded incorrect predictions for at least four representative compounds listed in Table 3, again due to functional group misidentification, while VaPOrS produced accurate results.</p>

<table-wrap id="T3" specific-use="star"><label>Table 3</label><caption><p id="d2e5695">Evaluation of four primary VOCs from the MCM database. UManSysProp produced incorrect vapor pressure values due to the misidentification of functional groups, while VaPOrS matched SIMPOL outputs precisely. All vapor pressure values are expressed as <inline-formula><mml:math id="M258" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:math></inline-formula> (in atm) at 333.15 K.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="5">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Compound</oasis:entry>
         <oasis:entry colname="col2">SMILES</oasis:entry>
         <oasis:entry colname="col3">SIMPOL</oasis:entry>
         <oasis:entry colname="col4">UManSysProp</oasis:entry>
         <oasis:entry colname="col5">VaPOrS</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">formaldehyde</oasis:entry>
         <oasis:entry colname="col2"><monospace>C=O</monospace></oasis:entry>
         <oasis:entry colname="col3">0.6863</oasis:entry>
         <oasis:entry colname="col4">1.8307</oasis:entry>
         <oasis:entry colname="col5">0.6863</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">formic acid</oasis:entry>
         <oasis:entry colname="col2"><monospace>OC=O</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M259" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.2397</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">1.8307</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.2397</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">methyl ester</oasis:entry>
         <oasis:entry colname="col2"><monospace>COC=O</monospace></oasis:entry>
         <oasis:entry colname="col3">0.3942</oasis:entry>
         <oasis:entry colname="col4">1.4799</oasis:entry>
         <oasis:entry colname="col5">0.3942</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">BCARY</oasis:entry>
         <oasis:entry colname="col2"><monospace>C/C1=C/CCC(=C)C2CC(C)(C)C2CC</monospace><inline-formula><mml:math id="M261" display="inline"><mml:mo>\</mml:mo></mml:math></inline-formula><monospace>1</monospace></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M262" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.5640</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.4531</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.5640</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup>

</oasis:table></table-wrap>

      <p id="d2e5873">The discrepancies were even more pronounced for multifunctional oxidation products. For instance, for the <inline-formula><mml:math id="M265" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-pinene and benzene oxidation products used in Sect. 4.1, UManSysProp failed to correctly compute vapor pressures for at least 20 products of each precursor, listed in Tables 4 and 5. VaPOrS, in contrast, successfully identified all functional groups and aligned with SIMPOL calculations in every case.</p>

<table-wrap id="T4" specific-use="star"><label>Table 4</label><caption><p id="d2e5886">Comparison of predicted vapor pressures for 20 <inline-formula><mml:math id="M266" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-pinene oxidation products. UManSysProp failed to recognize various multifunctional and peroxide-containing groups, leading to considerable errors. VaPOrS correctly identified all functional groups and reproduced the SIMPOL values. All vapor pressure values are expressed as <inline-formula><mml:math id="M267" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:math></inline-formula> (in atm) at 333.15 K.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">SMILES</oasis:entry>
         <oasis:entry colname="col2">SIMPOL</oasis:entry>
         <oasis:entry colname="col3">UManSysProp</oasis:entry>
         <oasis:entry colname="col4">VaPOrS</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC(=O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M268" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.2520</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M269" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.3089</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M270" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.2520</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)C1CC(C(=O)O)C1(C)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M271" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.7488</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M272" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.8057</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M273" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.7488</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC1CC(C(=O)O)C1(C)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.0995</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.1564</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M276" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.0995</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)C1CC(C(=O)C)C1(C)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M277" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.9721</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M278" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.0290</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M279" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.9721</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC1CC(C(=O)[O])C1(C)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.1733</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.2302</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M282" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.1733</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC1CC(C(=O)O[O])C1(C)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M283" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.1733</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M284" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.2302</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.1733</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC1CC(C(=O)CO)C1(C)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.1871</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M287" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.2440</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M288" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.1871</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC1CC(C(=O)C)C1(C)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M289" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3229</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M290" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.3797</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M291" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3229</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2">0.5368</oasis:entry>
         <oasis:entry colname="col3">1.4799</oasis:entry>
         <oasis:entry colname="col4">0.5368</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC(=O)CC=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M292" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.6027</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M293" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.6596</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M294" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.6027</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC(=O)CC(=O)C(=O)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M295" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.0461</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M296" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.1030</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M297" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.0461</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC(=O)C(=O)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M298" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.4015</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M299" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.4584</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.4015</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(O)C(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.972</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.0288</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M303" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.972</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC(=O)C(=O)CO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M304" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.2658</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M305" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3227</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M306" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.2658</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC(=O)CC(O)C(=O)C</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M307" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.9673</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M308" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.0241</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M309" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.9673</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(O)CC(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M310" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3227</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M311" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.3795</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M312" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.3227</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)CC=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M313" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.9581</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M314" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.0150</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M315" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.9581</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.6074</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">0.3356</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M317" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.6074</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>OCC(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M318" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.3274</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M319" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.3842</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M320" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.3274</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CC(=O)CC(=O)C(C)(ON(=O)=O)C(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.1581</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M322" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.2149</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M323" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.1581</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup>

</oasis:table></table-wrap>

<table-wrap id="T5" specific-use="star"><label>Table 5</label><caption><p id="d2e6717">Predicted vapor pressures of 20 benzene oxidation products. UManSysProp produced erroneous outputs due to functional group detection errors, particularly in conjugated and peroxide-bearing species. VaPOrS successfully identified all necessary groups and aligned with SIMPOL calculations. All vapor pressure values are expressed as <inline-formula><mml:math id="M324" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:math></inline-formula> (in atm) at 333.15 K.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">SMILES</oasis:entry>
         <oasis:entry colname="col2">SIMPOL</oasis:entry>
         <oasis:entry colname="col3">UManSysProp</oasis:entry>
         <oasis:entry colname="col4">VaPOrS</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)C1OC1C=CC=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M325" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.7960</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M326" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.8529</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M327" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.7960</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>OC1COC(=O)C1=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M328" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.2255</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M329" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.1397</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M330" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.2255</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>C1OC(=O)C=C1</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M331" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.9785</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">0.1072</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M332" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.9785</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)C=CC(=O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M333" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.7342</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.7911</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M335" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.7342</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>OC(C=O)C(=O)C=CC(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M336" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.9492</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M337" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.0061</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M338" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.9492</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCOC(=O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M339" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.5958</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M340" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.5100</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M341" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.5958</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCOC(=O)C(=O)O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M342" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.5220</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M343" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.4362</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M344" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.5220</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)C1OC1C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M345" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.9631</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M346" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.0200</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M347" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.9631</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M348" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.6074</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">0.3356</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M349" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.6074</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>OC(C=O)C(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M350" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.8224</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M351" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.8793</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M352" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.8224</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>OCC(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M353" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.3274</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M354" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.3842</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M355" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.3274</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CC=CC(=O)[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M356" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.4403</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M357" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.4972</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M358" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.4403</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)C=CC=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M359" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.4403</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M360" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.4972</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M361" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.4403</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CC(=CC(=O)[O])N(=O)=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M362" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.2652</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M363" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.3220</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M364" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.2652</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=N(=O)C12OOC(C2O)C(O)([O])C(=C1)O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M365" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.2564</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M366" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.3921</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M367" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.2564</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC1(O)C(=CC2(OOC1C2O)N(=O)=O)O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M368" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.2564</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M369" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.3921</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M370" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.2564</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>OOC1(O)C(=CC2(OOC1C2O)N(=O)=O)O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M371" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.3826</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M372" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.5183</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M373" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.3826</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=N(=O)OC1C2OOC1(C=C(O)C2([O])O)N(=O)=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M374" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.3029</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M375" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.4386</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M376" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.3029</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC1(O)C(=CC2(OOC1C2ON(=O)=O)N(=O)=O)O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M377" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.3029</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M378" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.4386</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M379" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.3029</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>OOC1(O)C(=CC2(OOC1C2ON(=O)=O)N(=O)=O)O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M380" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.4291</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M381" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.5648</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M382" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.4291</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup>

</oasis:table></table-wrap>

      <p id="d2e7553">Finally, we evaluated 180 oxidation products of aromatic carbonyls obtained from high-resolution mass spectrometry studies (Barua et al., 2025). UManSysProp produced erroneous values for 67 of these compounds, while VaPOrS correctly handled all cases, listed in Table 6.</p>

<table-wrap id="T6a" specific-use="star"><label>Table 6</label><caption><p id="d2e7559">Analysis of oxidation products from OH-initiated autooxidation of aromatic carbonyls under different NO<sub><italic>x</italic></sub> conditions. UManSysProp failed in 67 cases due to group detection limitations. VaPOrS handled all compounds correctly via explicit SMILES-based pattern recognition. All vapor pressure values are expressed as <inline-formula><mml:math id="M384" display="inline"><mml:mrow><mml:mi>log⁡</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:math></inline-formula> (in atm) at 333.15 K.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="center"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">SMILES</oasis:entry>
         <oasis:entry colname="col2">SIMPOL</oasis:entry>
         <oasis:entry colname="col3">UManSysProp</oasis:entry>
         <oasis:entry colname="col4">VaPOrS</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(=O)C(O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M385" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.4581</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M386" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.5938</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M387" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.4581</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(=O)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M388" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.7200</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M389" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.8557</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M390" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.7200</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(OO)C(=O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M391" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.7200</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M392" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.8557</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M393" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.7200</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(O[O])C(O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M394" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.5149</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M395" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.6506</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M396" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.5149</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(ON(=O)=O)C(O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M397" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.4257</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M398" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.5614</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M399" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.4257</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(OO)C(O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M400" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6411</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M401" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.7768</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M402" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6411</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(O)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M403" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6411</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M404" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.7768</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M405" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6411</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(=O)C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M406" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.4298</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M407" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.5655</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M408" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.4298</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(O[O])C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M409" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.7768</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M410" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.9126</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M411" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.7768</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)C(OO)C=CC(O[O])=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M412" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.5756</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M413" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.6325</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M414" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.5756</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(ON(=O)=O)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M415" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6876</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M416" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.8233</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M417" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6876</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(O)C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M418" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.351</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M419" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.4866</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M420" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.351</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(=O)C(OO)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M421" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6917</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M422" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.8274</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M423" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6917</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(O[O])C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M424" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.4866</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M425" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.6223</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M426" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.4866</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(ON(=O)=O)C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M427" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.397</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M428" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.5331</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M429" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.397</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(OO)C(OO)C(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M430" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.7018</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M431" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.8944</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M432" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.7018</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(O[O])C(OO)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M433" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.7485</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M434" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.8843</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M435" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.7485</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(OO)C(OO)C(=O)ON(=O)=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M436" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.669</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M437" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.8052</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M438" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.669</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(ON(=O)=O)C(OO)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M439" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.659</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M440" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.7950</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M441" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.659</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>CC(=O)C(=O)C(O)=CC(OO)C(OO)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M442" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.874</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M443" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.0105</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M444" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.874</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OCC(=O)C(=O)C(O)=CC(OO)C(O)C(OO)=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M445" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.612</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M446" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.7485</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M447" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.612</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=N(=O)OCC(=O)C(=O)C(O)=CC(OO)C(O)C(OO)=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M448" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.523</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M449" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.659</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M450" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.523</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(=O)C(O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M451" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.3085</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M452" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.4442</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M453" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.3085</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(=O)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M454" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.5704</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M455" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.7062</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M456" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.5704</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(OO)C(=O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M457" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.5704</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M458" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.7062</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M459" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.5704</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(O[O])C(O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M460" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.3654</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M461" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.5011</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M462" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.3654</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(O)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M463" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.4916</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M464" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.6273</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M465" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.4916</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(=O)C(O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M466" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9397</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M467" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.0754</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M468" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9397</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(=O)C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M469" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.2802</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M470" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.4159</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M471" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.2802</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(O[O])C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M472" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.6273</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M473" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.7630</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M474" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.6273</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(OO)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M475" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.7535</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M476" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.8892</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M477" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.7535</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(=O)C(OO)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M478" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.5421</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M479" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.6779</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M480" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.5421</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(O[O])C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M481" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.3371</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M482" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.4728</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M483" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.3371</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(O[O])C(OO)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M484" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.5990</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M485" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.7347</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M486" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.5990</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=C(C=O)C(O)=CC(OO)C(OO)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M487" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.725</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M488" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.8609</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M489" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.725</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(=O)C(O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M490" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.659</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M491" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.7950</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M492" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.659</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(=O)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M493" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9212</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M494" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.0569</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M495" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9212</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(OO)C(=O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M496" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9212</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M497" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.0569</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M498" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9212</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(O[O])C(O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M499" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.7161</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M500" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.8518</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M501" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.7161</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(ON(=O)=O)C(O)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M502" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6269</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M503" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.7626</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M504" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.6269</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(O)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M505" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.8423</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M506" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.9780</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M507" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.8423</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(=O)C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M508" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.631</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M509" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.7667</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M510" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.631</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(O[O])C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M511" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.9780</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M512" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.1137</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M513" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.9780</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(ON(=O)=O)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M514" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.8888</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M515" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.0245</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M516" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.8888</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(OO)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M517" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.104</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M518" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.2399</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M519" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.104</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(O[O])C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M520" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.6878</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M521" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.8235</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M522" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.6878</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(ON(=O)=O)C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M523" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.598</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M524" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.7343</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M525" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.598</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CC(=O)C(=O)C(O)=CC(OO)C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M526" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11.757</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M527" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.8929</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M528" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11.757</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(OO)C(OO)C(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M529" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.9030</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M530" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.0956</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M531" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.9030</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(C=O)C(=O)C(O)=CC(OO)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M532" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.104</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M533" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.2399</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M534" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.104</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(O[O])C(OO)C(OO)=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M535" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9497</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M536" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.0854</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M537" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9497</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(OO)C(OO)C(=O)ON(=O)=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M538" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.870</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M539" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.0064</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M540" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.870</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=N(=O)OC(C=O)C(=O)C(O)=CC(OO)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M541" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.015</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M542" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.150</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M543" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.015</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(ON(=O)=O)C(OO)C(OO)=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M544" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.860</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M545" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9962</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M546" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.860</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<table-wrap id="T6b" specific-use="star"><label>Table 6</label><caption><p id="d2e9788">Continued.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="center"/>
     <oasis:colspec colnum="3" colname="col3" align="center"/>
     <oasis:colspec colnum="4" colname="col4" align="center"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">SMILES</oasis:entry>
         <oasis:entry colname="col2">SIMPOL</oasis:entry>
         <oasis:entry colname="col3">UManSysProp</oasis:entry>
         <oasis:entry colname="col4">VaPOrS</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(OO)C(OO)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M547" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11.076</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M548" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.2116</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M549" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11.076</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CC(OO)C(=O)C(O)=CC(OO)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M550" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.230</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M551" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.366</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M552" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.230</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CC(O[O])C(=O)C(O)=CC(OO)C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M553" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.814</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M554" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8.9497</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M555" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.814</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(=O)C(OO)C(OO)C(O)C(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M556" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.714</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M557" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.7716</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M558" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.714</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CC(ON(=O)=O)C(=O)C(O)=CC(OO)C(O)C(=O)OO</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M559" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.724</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M560" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.860</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M561" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.724</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>[O]OC(=O)C(OO)C(=O)C(O)=CC(OO)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M562" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.029</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M563" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.2218</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M564" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.029</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(=O)C(OO)C(OO)C(OO)C(=O)O[O]</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M565" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.976</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M566" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.033</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M567" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10.976</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=N(=O)OC(=O)C(OO)C(=O)C(O)=CC(OO)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M568" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.996</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M569" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11.132</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M570" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.996</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>OOC(=O)C(OO)C(=O)C(O)=CC(OO)C(OO)C=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M571" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">13.202</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M572" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">11.337</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M573" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">13.202</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(C(O)C=O)OOOC(C=O)C=CC(O)C(=O)CC=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M574" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">15.749</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M575" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">13.885</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M576" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">15.749</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(C(O)C=O)OOOC1C=CC2OOC1C2(O)CC=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M577" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">14.446</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M578" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12.582</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M579" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">14.446</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(C(O)C=O)OOC(C(O)C=O)C=C(O)C(=O)CC=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M580" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">18.176</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M581" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">14.447</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M582" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">18.176</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><monospace>O=CCC(=O)C(O)=CC(C(OO)C=O)OOC(C(OO)C=O)C=C(O)C(=O)CC=O</monospace></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M583" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">18.700</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M584" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">14.971</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M585" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">18.700</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e10348">These results demonstrate systemic limitations of UManSysProp when applied to chemically diverse and rapidly expanding databases of atmospheric oxidation products. With the continuous introduction of new molecules into atmospheric models, a tool like VaPOrS, relying on explicit SMILES-based pattern recognition, offers a reliable, transparent, and scalable alternative for functional group detection and vapor pressure estimation.</p>
      <p id="d2e10352">The versatility of VaPOrS lies in both its algorithmic design and its potential for seamless integration into a wide range of atmospheric models. By directly parsing SMILES strings and identifying functional groups without relying on external libraries such as OpenBabel, VaPOrS provides a transparent, lightweight, and easily modifiable framework. This not only reduces dependency and installation challenges common to existing tools like UManSysProp but also ensures that the group detection logic remains fully auditable and extendable to new parameterization schemes. The validation results presented in this study confirm that VaPOrS correctly identifies functional groups across large external datasets such as the MCM and auto-APRAM-fw, demonstrating both its robustness and its suitability for high-throughput applications.</p>
      <p id="d2e10355">Several widely used atmospheric models stand to benefit from the integration of VaPOrS. For example, the MCM, with its extensive SMILES database of VOCs, can directly leverage VaPOrS to automate the generation of temperature-dependent saturation vapor pressure equations. This automation ensures uniformity in property predictions, which is critical for large-scale models to simulate chemical reactions and transport processes consistently (Saunders et al., 2003; Jenkin et al., 2003). Likewise, MEGAN (Guenther et al., 2006) can utilize VaPOrS to improve biogenic VOC emission estimates by rapidly supplying vapor pressure and enthalpy of vaporization values, while models such as LOTOS-EUROS (Schaap et al., 2008), GEOS-Chem (Bey et al., 2001), and WRF-Chem (Grell et al., 2005) can exploit its scalability to process thousands of compounds efficiently. Regional models such as CMAQ (Byun and Schere, 2006) and process-level models such as ADCHAM and ADCHEM (Roldin et al., 2011, 2014) can also benefit from VaPOrS's capability to refine gas-particle partitioning, aerosol growth rates, and ultimately climate-relevant feedbacks.</p>
      <p id="d2e10358">At the same time, it is important to recognize the limitations of group contribution approaches such as SIMPOL, which underpins this first implementation of VaPOrS. While reliable for many compounds, predictive accuracy declines as molecular complexity increases. Highly functionalized molecules may exhibit non-additive effects, such as steric hindrance, intramolecular hydrogen bonding, or electronic interactions, that are not captured by simple group summation rules. Previous studies have shown that such effects can dampen or amplify volatility changes in ways not accounted for by group contribution approaches. Another important limitation relates to tautomerism, in which a compound can exist in multiple chemically equivalent but structurally distinct forms, for example keto-enol tautomerism. These forms contain different functional groups. For instance, a keto tautomer may contain a carbonyl group (C<inline-formula><mml:math id="M586" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>O), while its enol counterpart may contain one hydroxyl (OH) and one carbon-carbon double bond (C<inline-formula><mml:math id="M587" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>C). Since functional group-based methods like SIMPOL assign unique parameters to each group, different tautomeric SMILES representations of the same compound can yield different vapor pressure predictions, despite the compound having a single experimentally measurable vapor pressure. VaPOrS does not attempt to canonicalize or normalize tautomeric forms; it faithfully parses and counts groups in the SMILES provided by the user or database. Thus, this ambiguity arises from the group-contribution framework itself rather than from VaPOrS. In practice, most studies adopt a convention of selecting the thermodynamically more stable tautomer, commonly the keto form in the gas phase, as the reference structure, although this is not universally standardized. Should future investigations establish robust strategies for handling tautomerism, for example by developing distinct parameters for different tautomeric states, such improvements could be readily integrated into VaPOrS. Addressing these limitations, whether through correction terms, hybridization with other frameworks, or leveraging data-driven approaches such as machine learning, represents an important avenue for future development.</p>
</sec>
</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Conclusion</title>
      <p id="d2e10385">This study introduced VaPOrS, a Python-based computational tool designed to automate the identification and quantification of functional groups in organic compounds and to calculate their saturation vapor pressures using the SIMPOL method. Three key contributions were demonstrated: (i) systematic detection of 30 functional groups relevant to saturation vapor pressure parameterization, (ii) automated computation of saturation vapor pressure and enthalpy of vaporization, and (iii) derivation of temperature-dependent relationships connecting these quantities. While the present work focused on SIMPOL, the underlying framework of VaPOrS is flexible and can be extended to other structure-based approaches, including group additivity and volatility basis set methods. Its design also makes it readily adaptable for estimating additional thermodynamic properties beyond vapor pressure, broadening its utility in atmospheric and environmental chemistry.</p>
      <p id="d2e10388">The tool was rigorously validated against both manually curated functional group counts and external datasets. Across more than 1000 compounds from the MCM database and the auto-APRAM-fw autoxidation scheme, VaPOrS achieved perfect agreement in functional group recognition and produced saturation vapor pressure predictions consistent with SIMPOL and experimental data. Comparative benchmarking further showed that VaPOrS overcomes limitations of existing tools, such as UManSysProp, by avoiding misidentification of complex multifunctional groups and enabling transparent, modifiable detection logic. By combining accuracy, scalability, and adaptability, VaPOrS provides a robust and efficient solution for processing the vast chemical space of volatile organic compounds in large-scale atmospheric models. Its integration into frameworks targeting secondary organic aerosol formation and related processes without overheads can substantially accelerate simulations while improving reliability. Future work will expand the functional group library, incorporate alternative parameterizations, and optimize computational performance, further extending the role of VaPOrS as a versatile tool for atmospheric chemistry and beyond.</p>
</sec>

      
      </body>
    <back><notes notes-type="codeavailability"><title>Code availability</title>

      <p id="d2e10395">The VaPOrS code used in this study is publicly available on Zenodo: <ext-link xlink:href="https://doi.org/10.5281/ZENODO.15222175" ext-link-type="DOI">10.5281/ZENODO.15222175</ext-link> (Bezaatpour et al., 2025). This archive includes a Jupyter notebook (VaPOrS.ipynb), a standalone Python script (VaPOrS.py), an input file containing SMILES strings (SMILES.txt), and example output files in both .txt and .csv formats. The repository is licensed under the MIT License and is fully open for use and redistribution under the conditions specified therein.</p>
  </notes><notes notes-type="dataavailability"><title>Data availability</title>

      <p id="d2e10404">The raw data supporting the figures in the manuscript are openly available on Zenodo at: <ext-link xlink:href="https://doi.org/10.5281/zenodo.15688105" ext-link-type="DOI">10.5281/zenodo.15688105</ext-link> (Bezaatpour, 2025).</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e10413">MB conceptualized the study and developed the Python code; MB and MR conducted the functional group analysis, validated the tool against existing data and contributed to data visualization; M.B. prepared the manuscript, and MDM and MR reviewed and approved the final version of the manuscript.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e10419">The contact author has declared that none of the authors has any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d2e10425">Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><ack><title>Acknowledgements</title><p id="d2e10431">This project has received funding from the European Research Council under the European Union's Horizon 2020 research and innovation programme under grant no. 101002728 (ERC Consolidator grant ADAPT) and 101096133 (PAREMPI). This work is also funded by the Research Council of Finland (grant nos. 331207, 336531, 346373, 353836). The AI-based tools were used for language editing to improve the readability of the manuscript.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e10436">This research has been supported by the H2020 European Research Council (grant no. 101002728), the Horizon 2020 (grant no. 101096133), and the Research Council of Finland (grant nos. 331207, 336531, 346373, and 353836).  Open-access funding was provided by the Helsinki  University Library.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e10447">This paper was edited by Rolf Sander and reviewed by Simon O'Meara and one anonymous referee.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bib1"><label>1</label><mixed-citation>Atkinson, R.: Atmospheric Chemistry of VOCs and NO<sub><italic>x</italic></sub>, Atmos. Environ., 34, 2063–2101, <ext-link xlink:href="https://doi.org/10.1016/S1352-2310(99)00460-4" ext-link-type="DOI">10.1016/S1352-2310(99)00460-4</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bib2"><label>2</label><mixed-citation>Barua, S., Kumar, A., Seal, P., Bezaatpour, M., Jha, S., Myllys, N., Iyer, S., and Rissanen, M.: Rapid Formation of Aerosol Precursors from the Autoxidation of Aromatic Carbonyls and the Remarkable Enhancing Influence of NO Addition, ResearchSquare, <ext-link xlink:href="https://doi.org/10.21203/rs.3.rs-7332278/v1" ext-link-type="DOI">10.21203/rs.3.rs-7332278/v1</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bib3"><label>3</label><mixed-citation>Berndt, T., Richters, S., Jokinen, T., Hyttinen, N., Kurtén, T., Otkjær, R. V., Kjaergaard, H. G., Stratmann, F., Herrmann, H., Sipilä, M., Kulmala, M., and Ehn, M.: Hydroxyl Radical-Induced Formation of Highly Oxidized Organic Compounds, Nat. Commun., 7, 13677, <ext-link xlink:href="https://doi.org/10.1038/ncomms13677" ext-link-type="DOI">10.1038/ncomms13677</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bib4"><label>4</label><mixed-citation>Bey, I., Jacob, D. J., Yantosca, R. M., Logan, J. A., Field, B. D., Fiore, A. M., Li, Q., Liu, H. Y., Mickley, L. J., and Schultz, M. G.: Global Modeling of Tropospheric Chemistry with Assimilated Meteorology: Model Description and Evaluation, J. Geophys. Res.-Atmos., 106, 23073–23095, <ext-link xlink:href="https://doi.org/10.1029/2001JD000807" ext-link-type="DOI">10.1029/2001JD000807</ext-link>, 2001.</mixed-citation></ref>
      <ref id="bib1.bib5"><label>5</label><mixed-citation>Bezaatpour, M.: Raw data for Figures used in the Manuscript, Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.15688105" ext-link-type="DOI">10.5281/zenodo.15688105</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bib6"><label>6</label><mixed-citation>Bezaatpour, M., Dal Maso, M., and Rissanen, M.: Mojtababzp/VaPOrS: VaPOrS v1.0.1. V. v.1.0.1, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/ZENODO.15222175" ext-link-type="DOI">10.5281/ZENODO.15222175</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bib7"><label>7</label><mixed-citation>Bianchi, F., Kurtén, T., Riva, M., Mohr, C., Rissanen, M. P., Roldin, P., Berndt, T., Crounse, J. D., Wennberg, P. O., Mentel, T. F., Wildt, J., Junninen, H., Jokinen, T., Kulmala, M., Worsnop, D. R., Thornton, J. A., Donahue, N. M., Kjaergaard, H. G., and Ehn, M.: Highly Oxygenated Organic Molecules (HOM) from Gas-Phase Autoxidation Involving Peroxy Radicals: A Key Contributor to Atmospheric Aerosol, Chem. Rev., 119, 3472–3509, <ext-link xlink:href="https://doi.org/10.1021/acs.chemrev.8b00395" ext-link-type="DOI">10.1021/acs.chemrev.8b00395</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib8"><label>8</label><mixed-citation>Byun, D. and Schere, K. L.: Review of the Governing Equations, Computational Algorithms, and Other Components of the Models-3 Community Multiscale Air Quality (CMAQ) Modeling System, Appl. Mech. Rev., 59, 51–77, <ext-link xlink:href="https://doi.org/10.1115/1.2128636" ext-link-type="DOI">10.1115/1.2128636</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bib9"><label>9</label><mixed-citation>Compernolle, S., Ceulemans, K., and Müller, J.-F., EVAPORATION: A New Vapour Pressure Estimation Method for Organic Molecules Including Non-Additivity and Intramolecular Interactions, Atmos. Chem. Phys., 11, 9431–9450, <ext-link xlink:href="https://doi.org/10.5194/acp-11-9431-2011" ext-link-type="DOI">10.5194/acp-11-9431-2011</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bib10"><label>10</label><mixed-citation>Crounse, J. D., Nielsen, L. B., Jørgensen, S., Kjaergaard, H. G., and Wennberg, P. O.: Autoxidation of Organic Compounds in the Atmosphere, J. Phys. Chem. Lett., 4, 3513–3520, <ext-link xlink:href="https://doi.org/10.1021/jz4019207" ext-link-type="DOI">10.1021/jz4019207</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bib11"><label>11</label><mixed-citation>Donahue, N. M., Robinson, A. L., Stanier, C. O., and Pandis, S. N.: Coupled Partitioning, Dilution, and Chemical Aging of Semivolatile Organics, Environ. Sci. Technol., 40, 2635–2643, <ext-link xlink:href="https://doi.org/10.1021/es052297c" ext-link-type="DOI">10.1021/es052297c</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bib12"><label>12</label><mixed-citation>Eckert, F. and Klamt, A.: Fast Solvent Screening via Quantum Chemistry: COSMO-RS Approach, AIChE J., 48, 369–385, <ext-link xlink:href="https://doi.org/10.1002/aic.690480220" ext-link-type="DOI">10.1002/aic.690480220</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bib13"><label>13</label><mixed-citation>Ehn, M., Thornton, J. A., Kleist, E., Sipilä, M., Junninen, H., Pullinen, I., Springer, M., Rubach, F., Tillmann, R., Lee, B., Lopez-Hilfiker, F., Andres, S., Acir, I.-H., Rissanen, M., Jokinen, T., Schobesberger, S., Kangasluoma, J., Kontkanen, J., Nieminen, T., Kurtén, T., Nielsen, L. B., Jørgensen, S., Kjaergaard, H. G., Canagaratna, M., Dal Maso, M., Berndt, T., Petäjä, T., Wahner, A., Kerminen, V.-M., Kulmala, M., Worsnop, D. R., Wildt, J., and Mentel, T. F.: A Large Source of Low-Volatility Secondary Organic Aerosol, Nature, 506, 476–479, <ext-link xlink:href="https://doi.org/10.1038/nature13032" ext-link-type="DOI">10.1038/nature13032</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib14"><label>14</label><mixed-citation>Epping, R. and Koch, M.: On-Site Detection of Volatile Organic Compounds (VOCs), Molecules, 28, 1598, <ext-link xlink:href="https://doi.org/10.3390/molecules28041598" ext-link-type="DOI">10.3390/molecules28041598</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib15"><label>15</label><mixed-citation>Goldstein, A. H. and Galbally, I. E.: Known and Unexplored Organic Constituents in the Earth's Atmosphere, Environ. Sci. Technol., 41, 1514–1521, <ext-link xlink:href="https://doi.org/10.1021/es072476p" ext-link-type="DOI">10.1021/es072476p</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bib16"><label>16</label><mixed-citation>Grell, G. A., Peckham, S. E., Schmitz, R., McKeen, S. A., Frost, G., Skamarock, W. C., and Eder, B.: Fully Coupled `Online' Chemistry within the WRF Model, Atmos. Environ., 39, 6957–6975, <ext-link xlink:href="https://doi.org/10.1016/j.atmosenv.2005.04.027" ext-link-type="DOI">10.1016/j.atmosenv.2005.04.027</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bib17"><label>17</label><mixed-citation>Guenther, A., Hewitt, C. N., Erickson, D., Fall, R., Geron, C., Graedel, T., Harley, P., Klinger, L., Lerdau, M., McKay, W. A., Pierce, T., Scholes, B., Steinbrecher, R., Tallamraju, R., Taylor, J., and Zimmerman, P.: A Global Model of Natural Volatile Organic Compound Emissions, J. Geophys. Res.-Atmos., 100, 8873–8892, <ext-link xlink:href="https://doi.org/10.1029/94JD02950" ext-link-type="DOI">10.1029/94JD02950</ext-link>, 1995.</mixed-citation></ref>
      <ref id="bib1.bib18"><label>18</label><mixed-citation>Guenther, A., Karl, T., Harley, P., Wiedinmyer, C., Palmer, P. I., and Geron, C.: Estimates of Global Terrestrial Isoprene Emissions Using MEGAN (Model of Emissions of Gases and Aerosols from Nature), Atmos. Chem. Phys., 6, 3181–3210, <ext-link xlink:href="https://doi.org/10.5194/acp-6-3181-2006" ext-link-type="DOI">10.5194/acp-6-3181-2006</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bib19"><label>19</label><mixed-citation>Isaacman-VanWertz, G. and Aumont, B.: Impact of Organic Molecular Structure on the Estimation of Atmospherically Relevant Physicochemical Parameters, Atmos. Chem. Phys., 21, 6541–6563, <ext-link xlink:href="https://doi.org/10.5194/acp-21-6541-2021" ext-link-type="DOI">10.5194/acp-21-6541-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib20"><label>20</label><mixed-citation>Iyer, S., Kumar, A., Savolainen, A., Barua, S., Daub, C., Pichelstorfer, L., Roldin, P., Garmash, O., Seal, P., Kurtén, T., and Rissanen, M.:  Molecular rearrangement of bicyclic peroxy radicals is a key route to aerosol from aromatics, Nat. Commun., 14, 4984, <ext-link xlink:href="https://doi.org/10.1038/s41467-023-40683-0" ext-link-type="DOI">10.1038/s41467-023-40683-0</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib21"><label>21</label><mixed-citation>Iyer, S., Rissanen, M. P., Valiev, R., Barua, S., Krechmer, J. E., Thornton, J., Ehn, M., and Kurtén, T.: Molecular Mechanism for Rapid Autoxidation in <inline-formula><mml:math id="M589" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-Pinene Ozonolysis, Nat. Commun., 12 , 878, <ext-link xlink:href="https://doi.org/10.1038/s41467-021-21172-w" ext-link-type="DOI">10.1038/s41467-021-21172-w</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib22"><label>22</label><mixed-citation>Jenkin, M. E., Saunders, S. M., Wagner, V., and Pilling, M. J.: Protocol for the Development of the Master Chemical Mechanism, MCM v3 (Part B): Tropospheric Degradation of Aromatic Volatile Organic Compounds, Atmos. Chem. Phys., 3, 181–193, <ext-link xlink:href="https://doi.org/10.5194/acp-3-181-2003" ext-link-type="DOI">10.5194/acp-3-181-2003</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bib23"><label>23</label><mixed-citation>Jenkin, M. E., Valorso, R., Aumont, B., and Rickard, A. R.: Estimation of Rate Coefficients and Branching Ratios for Reactions of Organic Peroxy Radicals for Use in Automated Mechanism Construction, Atmos. Chem. Phys., 19, 7691–7717, <ext-link xlink:href="https://doi.org/10.5194/acp-19-7691-2019" ext-link-type="DOI">10.5194/acp-19-7691-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib24"><label>24</label><mixed-citation>Jimenez, J. L., Canagaratna, M. R., Donahue, N. M., Prevot, A. S. H., Zhang, Q., Kroll, J. H., DeCarlo, P. F., Allan, J. D., Coe, H., Ng, N. L., Aiken, A. C., Docherty, K. S., Ulbrich, I. M., Grieshop, A. P., Robinson, A. L., Duplissy, J., Smith, J. D., Wilson, K. R., Lanz, V. A., Hueglin, C., Sun, Y. L., Tian, J., Laaksonen, A., Raatikainen, T., Rautiainen, J., Vaattovaara, P., Ehn, M., Kulmala, M., Tomlinson, J. M., Collins, D. R., Cubison, M. J., Dunlea, E. J., Huffman, J. A., Onasch, T. B., Alfarra, M. R., Williams, P. I., Bower, K., Kondo, Y., Schneider, J., Drewnick, F., Borrmann, S., Weimer, S., Demerjian, K., Salcedo, D., Cottrell, L., Griffin, R., Takami, A., Miyoshi, T., Hatakeyama, S., Shimono, A., Sun, J. Y., Zhang, Y. M., Dzepina, K., Kimmel, J. R., Sueper, D., Jayne, J. T., Herndon, S. C., Trimborn, A. M., Williams, L. R., Wood, E. C., Middlebrook, A. M., Kolb, C. E., Baltensperger, U., and Worsnop, D. R.: Evolution of Organic Aerosols in the Atmosphere, Science, 326, 1525–1529, <ext-link xlink:href="https://doi.org/10.1126/science.1180353" ext-link-type="DOI">10.1126/science.1180353</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bib25"><label>25</label><mixed-citation>Joback, K. G. and Reid, R. C.: Estimation of pure-component properties from group-contributions, Chem. Eng. Commun., 57, 233–243, <ext-link xlink:href="https://doi.org/10.1080/00986448708960487" ext-link-type="DOI">10.1080/00986448708960487</ext-link>, 1987.</mixed-citation></ref>
      <ref id="bib1.bib26"><label>26</label><mixed-citation>Klamt, A.: Conductor-like Screening Model for Real Solvents: A New Approach to the Quantitative Calculation of Solvation Phenomena, J. Phys. Chem., 99, 2224–2235, <ext-link xlink:href="https://doi.org/10.1021/j100007a062" ext-link-type="DOI">10.1021/j100007a062</ext-link>, 1995.</mixed-citation></ref>
      <ref id="bib1.bib27"><label>27</label><mixed-citation>Klamt, A., Jonas, V., Bürger, T., and Lohrenz, J. C. W.: Refinement and Parametrization of COSMO-RS, J. Phys. Chem. A, 102, 5074–5085, <ext-link xlink:href="https://doi.org/10.1021/jp980017s" ext-link-type="DOI">10.1021/jp980017s</ext-link>, 1998.</mixed-citation></ref>
      <ref id="bib1.bib28"><label>28</label><mixed-citation>Luo, H., Vereecken, L., Shen, H., Kang, S., Pullinen, I., Hallquist, M., Fuchs, H., Wahner, A., Kiendler-Scharr, A., Mentel, T. F., and Zhao, D.: Formation of Highly Oxygenated Organic Molecules from the Oxidation of Limonene by OH Radical, Significant Contribution of H-Abstraction Pathway, Atmos. Chem. Phys., 23, 7297–7319, <ext-link xlink:href="https://doi.org/10.5194/acp-23-7297-2023" ext-link-type="DOI">10.5194/acp-23-7297-2023</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib29"><label>29</label><mixed-citation>Mattila, T., Kulmala, M., and Vesala, T.: On the Condensational Growth of a Multicomponent Droplet, J. Aerosol Sci., 28, 553–564, <ext-link xlink:href="https://doi.org/10.1016/S0021-8502(96)00458-2" ext-link-type="DOI">10.1016/S0021-8502(96)00458-2</ext-link>, 1997.</mixed-citation></ref>
      <ref id="bib1.bib30"><label>30</label><mixed-citation>McDonald, B. C., de Gouw, J. A., Gilman, J. B., Jathar, S. H., Akherati, A., Cappa, C. D., Jimenez, J. L., Lee-Taylor, J., Hayes, P. L., McKeen, S. A., Cui, Y. Y., Kim, S.-W., Gentner, D. R., Isaacman-VanWertz, G., Goldstein, A. H., Harley, R. A., Frost, G. J., Roberts, J. M., Ryerson, T. B., and Trainer, M.: Volatile Chemical Products Emerging as Largest Petrochemical Source of Urban Organic Emissions, Science, 359, 760–764, <ext-link xlink:href="https://doi.org/10.1126/science.aaq0524" ext-link-type="DOI">10.1126/science.aaq0524</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib31"><label>31</label><mixed-citation>Mellouki, A., Wallington, T. J., and Chen, J.: Atmospheric Chemistry of Oxygenated Volatile Organic Compounds: Impacts on Air Quality and Climate, Chem. Rev., 115, 3984–4014, <ext-link xlink:href="https://doi.org/10.1021/cr500549n" ext-link-type="DOI">10.1021/cr500549n</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib32"><label>32</label><mixed-citation>Myrdal, P. B. and Yalkowsky, S. H.: Estimating Pure Component Vapor Pressures of Complex Organic Molecules, Indust. Eng. Chem. Res., 36, 2494–2499, <ext-link xlink:href="https://doi.org/10.1021/ie950242l" ext-link-type="DOI">10.1021/ie950242l</ext-link>, 1997.</mixed-citation></ref>
      <ref id="bib1.bib33"><label>33</label><mixed-citation>Nannoolal, Y., Rarey, J., and Ramjugernath, D.: Estimation of Pure Component Properties, Fluid Phase Equilib., 269, 117–133, <ext-link xlink:href="https://doi.org/10.1016/j.fluid.2008.04.020" ext-link-type="DOI">10.1016/j.fluid.2008.04.020</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bib34"><label>34</label><mixed-citation>Pankow, J. F. and Asher, W. E.: SIMPOL.1: A Simple Group Contribution Method for Predicting Vapor Pressures and Enthalpies of Vaporization of Multifunctional Organic Compounds, Atmos. Chem. Phys., 8, 2773–2796, <ext-link xlink:href="https://doi.org/10.5194/acp-8-2773-2008" ext-link-type="DOI">10.5194/acp-8-2773-2008</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bib35"><label>35</label><mixed-citation>Pichelstorfer, L., Roldin, P., Rissanen, M., Hyttinen, N., Garmash, O., Xavier, C., Zhou, P., Clusius, P., Foreback, B., Almeida, T. G., Deng, C., Baykara, M., Kurtén, T., and Boy, M.: Towards Automated Inclusion of Autoxidation Chemistry in Models: From Precursors to Atmospheric Implications, Environ. Sci.-Atmos., 4, 879–896, <ext-link xlink:href="https://doi.org/10.1039/D4EA00054D" ext-link-type="DOI">10.1039/D4EA00054D</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bib36"><label>36</label><mixed-citation>Rissanen, M. P., Kurtén, T., Sipilä, M., Thornton, J. A., Kangasluoma, J., Sarnela, N., Junninen, H., Jørgensen, S., Schallhart, S., Kajos, M. K., Taipale, R., Springer, M., Mentel, T. F., Ruuskanen, T., Petäjä, T., Worsnop, D. R., Kjaergaard, H. G., and Ehn, M.: The Formation of Highly Oxidized Multifunctional Products in the Ozonolysis of Cyclohexene, J. Am. Chem. Soc., 136, 15596–15606, <ext-link xlink:href="https://doi.org/10.1021/ja507146s" ext-link-type="DOI">10.1021/ja507146s</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib37"><label>37</label><mixed-citation>Roldin, P., Swietlicki, E., Schurgers, G., Arneth, A., Lehtinen, K. E. J., Boy, M., and Kulmala, M.: Development and Evaluation of the Aerosol Dynamics and Gas Phase Chemistry Model ADCHEM, Atmos. Chem. Phys., 11, 5867–5896, <ext-link xlink:href="https://doi.org/10.5194/acp-11-5867-2011" ext-link-type="DOI">10.5194/acp-11-5867-2011</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bib38"><label>38</label><mixed-citation>Roldin, P., Eriksson, A. C., Nordin, E. Z., Hermansson, E., Mogensen, D., Rusanen, A., Boy, M., Swietlicki, E., Svenningsson, B., Zelenyuk, A., and Pagels, J.: Modelling Non-Equilibrium Secondary Organic Aerosol Formation and Evaporation with the Aerosol Dynamics, Gas- and Particle-Phase Chemistry Kinetic Multilayer Model ADCHAM, Atmos. Chem. Phys., 14, 7953–7993, <ext-link xlink:href="https://doi.org/10.5194/acp-14-7953-2014" ext-link-type="DOI">10.5194/acp-14-7953-2014</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib39"><label>39</label><mixed-citation>Saunders, S. M., Jenkin, M. E., Derwent, R. G., and Pilling, M. J.: Protocol for the Development of the Master Chemical Mechanism, MCM v3 (Part A): Tropospheric Degradation of Non-Aromatic Volatile Organic Compounds, Atmos. Chem. Phys., 3, 161–180, <ext-link xlink:href="https://doi.org/10.5194/acp-3-161-2003" ext-link-type="DOI">10.5194/acp-3-161-2003</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bib40"><label>40</label><mixed-citation>Schaap, M., Timmermans, R. M. A., Roemer, M., Boersen, G. A. C., Builtjes, P. J. H., Sauter, F. J., Velders, G. J. M., and Beck, J. P.: The LOTOS EUROS Model: Description, Validation and Latest Developments, Int. J. Environ. Pollut., 32, 270–290, <ext-link xlink:href="https://doi.org/10.1504/IJEP.2008.017106" ext-link-type="DOI">10.1504/IJEP.2008.017106</ext-link>, 2008. </mixed-citation></ref>
      <ref id="bib1.bib41"><label>41</label><mixed-citation>Simon, M., Dada, L., Heinritzi, M., Scholz, W., Stolzenburg, D., Fischer, L., Wagner, A. C., Kürten, A., Rörup, B., He, X.-C., Almeida, J., Baalbaki, R., Baccarini, A., Bauer, P. S., Beck, L., Bergen, A., Bianchi, F., Bräkling, S., Brilke, S., Caudillo, L., Chen, D., Chu, B., Dias, A., Draper, D. C., Duplissy, J., El-Haddad, I., Finkenzeller, H., Frege, C., Gonzalez-Carracedo, L., Gordon, H., Granzin, M., Hakala, J., Hofbauer, V., Hoyle, C. R., Kim, C., Kong, W., Lamkaddam, H., Lee, C. P., Lehtipalo, K., Leiminger, M., Mai, H., Manninen, H. E., Marie, G., Marten, R., Mentler, B., Molteni, U., Nichman, L., Nie, W., Ojdanic, A., Onnela, A., Partoll, E., Petäjä, T., Pfeifer, J., Philippov, M., Quéléver, L. L. J., Ranjithkumar, A., Rissanen, M. P., Schallhart, S., Schobesberger, S., Schuchmann, S., Shen, J., Sipilä, M., Steiner, G., Stozhkov, Y., Tauber, C., Tham, Y. J., Tomé, A. R., Vazquez-Pufleau, M., Vogel, A. L., Wagner, R., Wang, M., Wang, D. S., Wang, Y., Weber, S. K., Wu, Y., Xiao, M., Yan, C., Ye, P., Ye, Q., Zauner-Wieczorek, M., Zhou, X., Baltensperger, U., Dommen, J., Flagan, R. C., Hansel, A., Kulmala, M., Volkamer, R., Winkler, P. M., Worsnop, D. R., Donahue, N. M., Kirkby, J., and Curtius, J.: Molecular Understanding of New-Particle Formation from <inline-formula><mml:math id="M590" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-Pinene between <inline-formula><mml:math id="M591" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M592" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">25</mml:mn></mml:mrow></mml:math></inline-formula> °C, Atmos. Chem. Phys., 20, 9183–9207, <ext-link xlink:href="https://doi.org/10.5194/acp-20-9183-2020" ext-link-type="DOI">10.5194/acp-20-9183-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib42"><label>42</label><mixed-citation>Topping, D., Barley, M., Bane, M. K., Higham, N., Aumont, B., Dingle, N., and McFiggans, G.: UManSysProp v1.0: An Online and Open-Source Facility for Molecular Property Prediction and Atmospheric Aerosol Calculations, Geosci. Model Dev., 9, 899–914, <ext-link xlink:href="https://doi.org/10.5194/gmd-9-899-2016" ext-link-type="DOI">10.5194/gmd-9-899-2016</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bib43"><label>43</label><mixed-citation>Vereecken, L., Aumont, B., Barnes, I., Bozzelli, J. W., Goldman, M. J., Green, W. H., Madronich, S., McGillen, M. R., Mellouki, A., Orlando, J. J., Picquet-Varrault, B., Rickard, A. R., Stockwell, W. R., Wallington, T. J., and Carter, W. P. L.: Perspective on Mechanism Development and Structure-Activity Relationships for Gas-Phase Atmospheric Chemistry, Int. J. Chem. Kinet., 50, 435–469, <ext-link xlink:href="https://doi.org/10.1002/kin.21172" ext-link-type="DOI">10.1002/kin.21172</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib44"><label>44</label><mixed-citation>WHO – World Health Organization: Air quality guidelines: global update 2005, World Health Organization, Geneva, <uri>https://www.who.int/publications/i/item/WHO-SDE-PHE-OEH-06.02</uri> (last access: 25 November 2025), 2006.</mixed-citation></ref>
      <ref id="bib1.bib45"><label>45</label><mixed-citation>Zhao, D., Pullinen, I., Fuchs, H., Schrade, S., Wu, R., Acir, I.-H., Tillmann, R., Rohrer, F., Wildt, J., Guo, Y., Kiendler-Scharr, A., Wahner, A., Kang, S., Vereecken, L., and Mentel, T. F.: Highly Oxygenated Organic Molecule (HOM) Formation in the Isoprene Oxidation by NO<sub>3</sub> Radical, Atmos. Chem. Phys., 21, 9681–9704, <ext-link xlink:href="https://doi.org/10.5194/acp-21-9681-2021" ext-link-type="DOI">10.5194/acp-21-9681-2021</ext-link>, 2021.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>VaPOrS v1.0.1: an automated model for functional group detection and property prediction of organic compounds via SMILES notation</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>1</label><mixed-citation>
      
Atkinson, R.: Atmospheric Chemistry of VOCs and NO<sub><i>x</i></sub>, Atmos. Environ., 34, 2063–2101, <a href="https://doi.org/10.1016/S1352-2310(99)00460-4" target="_blank">https://doi.org/10.1016/S1352-2310(99)00460-4</a>, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>2</label><mixed-citation>
      
Barua, S., Kumar, A., Seal, P., Bezaatpour, M., Jha, S., Myllys, N., Iyer,
S., and Rissanen, M.: Rapid Formation of Aerosol Precursors from the
Autoxidation of Aromatic Carbonyls and the Remarkable Enhancing Influence of
NO Addition, ResearchSquare, <a href="https://doi.org/10.21203/rs.3.rs-7332278/v1" target="_blank">https://doi.org/10.21203/rs.3.rs-7332278/v1</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>3</label><mixed-citation>
      
Berndt, T., Richters, S., Jokinen, T., Hyttinen, N., Kurtén, T., Otkjær, R. V., Kjaergaard, H. G., Stratmann, F., Herrmann, H., Sipilä, M., Kulmala, M., and Ehn, M.: Hydroxyl Radical-Induced Formation of Highly Oxidized Organic Compounds, Nat. Commun., 7, 13677,
<a href="https://doi.org/10.1038/ncomms13677" target="_blank">https://doi.org/10.1038/ncomms13677</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>4</label><mixed-citation>
      
Bey, I., Jacob, D. J., Yantosca, R. M., Logan, J. A., Field, B. D., Fiore, A. M., Li, Q., Liu, H. Y., Mickley, L. J., and Schultz, M. G.: Global Modeling of Tropospheric Chemistry with Assimilated Meteorology: Model Description and Evaluation, J. Geophys. Res.-Atmos., 106, 23073–23095, <a href="https://doi.org/10.1029/2001JD000807" target="_blank">https://doi.org/10.1029/2001JD000807</a>, 2001.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>5</label><mixed-citation>
      
Bezaatpour, M.: Raw data for Figures used in the Manuscript, Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.15688105" target="_blank">https://doi.org/10.5281/zenodo.15688105</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>6</label><mixed-citation>
      
Bezaatpour, M., Dal Maso, M., and Rissanen, M.: Mojtababzp/VaPOrS: VaPOrS
v1.0.1. V. v.1.0.1, Zenodo [code], <a href="https://doi.org/10.5281/ZENODO.15222175" target="_blank">https://doi.org/10.5281/ZENODO.15222175</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>7</label><mixed-citation>
      
Bianchi, F., Kurtén, T., Riva, M., Mohr, C., Rissanen, M. P., Roldin, P., Berndt, T., Crounse, J. D., Wennberg, P. O., Mentel, T. F., Wildt, J., Junninen, H., Jokinen, T., Kulmala, M., Worsnop, D. R., Thornton, J. A., Donahue, N. M., Kjaergaard, H. G., and Ehn, M.: Highly Oxygenated Organic
Molecules (HOM) from Gas-Phase Autoxidation Involving Peroxy Radicals: A Key
Contributor to Atmospheric Aerosol, Chem. Rev., 119, 3472–3509,
<a href="https://doi.org/10.1021/acs.chemrev.8b00395" target="_blank">https://doi.org/10.1021/acs.chemrev.8b00395</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>8</label><mixed-citation>
      
Byun, D. and Schere, K. L.: Review of the Governing Equations, Computational Algorithms, and Other Components of the Models-3 Community Multiscale Air Quality (CMAQ) Modeling System, Appl. Mech. Rev., 59, 51–77, <a href="https://doi.org/10.1115/1.2128636" target="_blank">https://doi.org/10.1115/1.2128636</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>9</label><mixed-citation>
      
Compernolle, S., Ceulemans, K., and Müller, J.-F., EVAPORATION: A New
Vapour Pressure Estimation Method for Organic Molecules Including Non-Additivity and Intramolecular Interactions, Atmos. Chem. Phys., 11, 9431–9450, <a href="https://doi.org/10.5194/acp-11-9431-2011" target="_blank">https://doi.org/10.5194/acp-11-9431-2011</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>10</label><mixed-citation>
      
Crounse, J. D., Nielsen, L. B., Jørgensen, S., Kjaergaard, H. G., and
Wennberg, P. O.: Autoxidation of Organic Compounds in the Atmosphere, J. Phys. Chem. Lett., 4, 3513–3520, <a href="https://doi.org/10.1021/jz4019207" target="_blank">https://doi.org/10.1021/jz4019207</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>11</label><mixed-citation>
      
Donahue, N. M., Robinson, A. L., Stanier, C. O., and Pandis, S. N.: Coupled
Partitioning, Dilution, and Chemical Aging of Semivolatile Organics, Environ. Sci. Technol., 40, 2635–2643, <a href="https://doi.org/10.1021/es052297c" target="_blank">https://doi.org/10.1021/es052297c</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>12</label><mixed-citation>
      
Eckert, F. and Klamt, A.: Fast Solvent Screening via Quantum Chemistry: COSMO-RS Approach, AIChE J., 48, 369–385, <a href="https://doi.org/10.1002/aic.690480220" target="_blank">https://doi.org/10.1002/aic.690480220</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>13</label><mixed-citation>
      
Ehn, M., Thornton, J. A., Kleist, E., Sipilä, M., Junninen, H., Pullinen, I., Springer, M., Rubach, F., Tillmann, R., Lee, B., Lopez-Hilfiker, F., Andres, S., Acir, I.-H., Rissanen, M., Jokinen, T., Schobesberger, S., Kangasluoma, J., Kontkanen, J., Nieminen, T., Kurtén, T., Nielsen, L. B., Jørgensen, S., Kjaergaard, H. G., Canagaratna, M., Dal Maso, M., Berndt, T., Petäjä, T., Wahner, A., Kerminen, V.-M., Kulmala, M., Worsnop, D. R., Wildt, J., and Mentel, T. F.: A Large Source of Low-Volatility Secondary Organic Aerosol, Nature, 506, 476–479, <a href="https://doi.org/10.1038/nature13032" target="_blank">https://doi.org/10.1038/nature13032</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>14</label><mixed-citation>
      
Epping, R. and Koch, M.: On-Site Detection of Volatile Organic Compounds (VOCs), Molecules, 28, 1598, <a href="https://doi.org/10.3390/molecules28041598" target="_blank">https://doi.org/10.3390/molecules28041598</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>15</label><mixed-citation>
      
Goldstein, A. H. and Galbally, I. E.: Known and Unexplored Organic Constituents in the Earth's Atmosphere, Environ. Sci. Technol., 41, 1514–1521, <a href="https://doi.org/10.1021/es072476p" target="_blank">https://doi.org/10.1021/es072476p</a>, 2007.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>16</label><mixed-citation>
      
Grell, G. A., Peckham, S. E., Schmitz, R., McKeen, S. A., Frost, G., Skamarock, W. C., and Eder, B.: Fully Coupled `Online' Chemistry within the
WRF Model, Atmos. Environ., 39, 6957–6975, <a href="https://doi.org/10.1016/j.atmosenv.2005.04.027" target="_blank">https://doi.org/10.1016/j.atmosenv.2005.04.027</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>17</label><mixed-citation>
      
Guenther, A., Hewitt, C. N., Erickson, D., Fall, R., Geron, C., Graedel, T.,
Harley, P., Klinger, L., Lerdau, M., McKay, W. A., Pierce, T., Scholes, B.,
Steinbrecher, R., Tallamraju, R., Taylor, J., and Zimmerman, P.: A Global
Model of Natural Volatile Organic Compound Emissions, J. Geophys. Res.-Atmos., 100, 8873–8892, <a href="https://doi.org/10.1029/94JD02950" target="_blank">https://doi.org/10.1029/94JD02950</a>, 1995.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>18</label><mixed-citation>
      
Guenther, A., Karl, T., Harley, P., Wiedinmyer, C., Palmer, P. I., and Geron, C.: Estimates of Global Terrestrial Isoprene Emissions Using MEGAN (Model of Emissions of Gases and Aerosols from Nature), Atmos. Chem. Phys., 6, 3181–3210, <a href="https://doi.org/10.5194/acp-6-3181-2006" target="_blank">https://doi.org/10.5194/acp-6-3181-2006</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>19</label><mixed-citation>
      
Isaacman-VanWertz, G. and Aumont, B.: Impact of Organic Molecular Structure
on the Estimation of Atmospherically Relevant Physicochemical Parameters,
Atmos. Chem. Phys., 21, 6541–6563, <a href="https://doi.org/10.5194/acp-21-6541-2021" target="_blank">https://doi.org/10.5194/acp-21-6541-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>20</label><mixed-citation>
      
Iyer, S., Kumar, A., Savolainen, A., Barua, S., Daub, C., Pichelstorfer, L., Roldin, P., Garmash, O., Seal, P., Kurtén, T., and Rissanen, M.:  Molecular rearrangement of bicyclic peroxy radicals is a key route to aerosol from aromatics, Nat. Commun., 14, 4984, <a href="https://doi.org/10.1038/s41467-023-40683-0" target="_blank">https://doi.org/10.1038/s41467-023-40683-0</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>21</label><mixed-citation>
      
Iyer, S., Rissanen, M. P., Valiev, R., Barua, S., Krechmer, J. E., Thornton,
J., Ehn, M., and Kurtén, T.: Molecular Mechanism for Rapid Autoxidation in <i>α</i>-Pinene Ozonolysis, Nat. Commun., 12 , 878,
<a href="https://doi.org/10.1038/s41467-021-21172-w" target="_blank">https://doi.org/10.1038/s41467-021-21172-w</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>22</label><mixed-citation>
      
Jenkin, M. E., Saunders, S. M., Wagner, V., and Pilling, M. J.: Protocol for
the Development of the Master Chemical Mechanism, MCM v3 (Part B):
Tropospheric Degradation of Aromatic Volatile Organic Compounds, Atmos. Chem. Phys., 3, 181–193, <a href="https://doi.org/10.5194/acp-3-181-2003" target="_blank">https://doi.org/10.5194/acp-3-181-2003</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>23</label><mixed-citation>
      
Jenkin, M. E., Valorso, R., Aumont, B., and Rickard, A. R.: Estimation of
Rate Coefficients and Branching Ratios for Reactions of Organic Peroxy Radicals for Use in Automated Mechanism Construction, Atmos. Chem. Phys., 19, 7691–7717, <a href="https://doi.org/10.5194/acp-19-7691-2019" target="_blank">https://doi.org/10.5194/acp-19-7691-2019</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>24</label><mixed-citation>
      
Jimenez, J. L., Canagaratna, M. R., Donahue, N. M., Prevot, A. S. H., Zhang,
Q., Kroll, J. H., DeCarlo, P. F., Allan, J. D., Coe, H., Ng, N. L., Aiken,
A. C., Docherty, K. S., Ulbrich, I. M., Grieshop, A. P., Robinson, A. L.,
Duplissy, J., Smith, J. D., Wilson, K. R., Lanz, V. A., Hueglin, C., Sun, Y.
L., Tian, J., Laaksonen, A., Raatikainen, T., Rautiainen, J., Vaattovaara,
P., Ehn, M., Kulmala, M., Tomlinson, J. M., Collins, D. R., Cubison, M. J.,
Dunlea, E. J., Huffman, J. A., Onasch, T. B., Alfarra, M. R., Williams, P.
I., Bower, K., Kondo, Y., Schneider, J., Drewnick, F., Borrmann, S., Weimer,
S., Demerjian, K., Salcedo, D., Cottrell, L., Griffin, R., Takami, A.,
Miyoshi, T., Hatakeyama, S., Shimono, A., Sun, J. Y., Zhang, Y. M., Dzepina,
K., Kimmel, J. R., Sueper, D., Jayne, J. T., Herndon, S. C., Trimborn, A.
M., Williams, L. R., Wood, E. C., Middlebrook, A. M., Kolb, C. E.,
Baltensperger, U., and Worsnop, D. R.: Evolution of Organic Aerosols in the Atmosphere, Science, 326, 1525–1529, <a href="https://doi.org/10.1126/science.1180353" target="_blank">https://doi.org/10.1126/science.1180353</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>25</label><mixed-citation>
      
Joback, K. G. and Reid, R. C.: Estimation of pure-component properties from
group-contributions, Chem. Eng. Commun., 57, 233–243,
<a href="https://doi.org/10.1080/00986448708960487" target="_blank">https://doi.org/10.1080/00986448708960487</a>, 1987.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>26</label><mixed-citation>
      
Klamt, A.: Conductor-like Screening Model for Real Solvents: A New Approach
to the Quantitative Calculation of Solvation Phenomena, J. Phys. Chem., 99, 2224–2235, <a href="https://doi.org/10.1021/j100007a062" target="_blank">https://doi.org/10.1021/j100007a062</a>, 1995.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>27</label><mixed-citation>
      
Klamt, A., Jonas, V., Bürger, T., and Lohrenz, J. C. W.: Refinement and
Parametrization of COSMO-RS, J. Phys. Chem. A, 102, 5074–5085, <a href="https://doi.org/10.1021/jp980017s" target="_blank">https://doi.org/10.1021/jp980017s</a>, 1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>28</label><mixed-citation>
      
Luo, H., Vereecken, L., Shen, H., Kang, S., Pullinen, I., Hallquist, M.,
Fuchs, H., Wahner, A., Kiendler-Scharr, A., Mentel, T. F., and Zhao, D.:
Formation of Highly Oxygenated Organic Molecules from the Oxidation of
Limonene by OH Radical, Significant Contribution of H-Abstraction Pathway,
Atmos. Chem. Phys., 23, 7297–7319, <a href="https://doi.org/10.5194/acp-23-7297-2023" target="_blank">https://doi.org/10.5194/acp-23-7297-2023</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>29</label><mixed-citation>
      
Mattila, T., Kulmala, M., and Vesala, T.: On the Condensational Growth of a
Multicomponent Droplet, J. Aerosol Sci., 28, 553–564,
<a href="https://doi.org/10.1016/S0021-8502(96)00458-2" target="_blank">https://doi.org/10.1016/S0021-8502(96)00458-2</a>, 1997.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>30</label><mixed-citation>
      
McDonald, B. C., de Gouw, J. A., Gilman, J. B., Jathar, S. H., Akherati, A.,
Cappa, C. D., Jimenez, J. L., Lee-Taylor, J., Hayes, P. L., McKeen, S. A.,
Cui, Y. Y., Kim, S.-W., Gentner, D. R., Isaacman-VanWertz, G., Goldstein, A.
H., Harley, R. A., Frost, G. J., Roberts, J. M., Ryerson, T. B., and Trainer, M.: Volatile Chemical Products Emerging as Largest Petrochemical Source of Urban Organic Emissions, Science, 359, 760–764, <a href="https://doi.org/10.1126/science.aaq0524" target="_blank">https://doi.org/10.1126/science.aaq0524</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>31</label><mixed-citation>
      
Mellouki, A., Wallington, T. J., and Chen, J.: Atmospheric Chemistry of
Oxygenated Volatile Organic Compounds: Impacts on Air Quality and Climate,
Chem. Rev., 115, 3984–4014, <a href="https://doi.org/10.1021/cr500549n" target="_blank">https://doi.org/10.1021/cr500549n</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>32</label><mixed-citation>
      
Myrdal, P. B. and Yalkowsky, S. H.: Estimating Pure Component Vapor Pressures of Complex Organic Molecules, Indust. Eng. Chem. Res., 36, 2494–2499, <a href="https://doi.org/10.1021/ie950242l" target="_blank">https://doi.org/10.1021/ie950242l</a>, 1997.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>33</label><mixed-citation>
      
Nannoolal, Y., Rarey, J., and Ramjugernath, D.: Estimation of Pure Component
Properties, Fluid Phase Equilib., 269, 117–133,
<a href="https://doi.org/10.1016/j.fluid.2008.04.020" target="_blank">https://doi.org/10.1016/j.fluid.2008.04.020</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>34</label><mixed-citation>
      
Pankow, J. F. and Asher, W. E.: SIMPOL.1: A Simple Group Contribution Method for Predicting Vapor Pressures and Enthalpies of Vaporization of Multifunctional Organic Compounds, Atmos. Chem. Phys., 8, 2773–2796, <a href="https://doi.org/10.5194/acp-8-2773-2008" target="_blank">https://doi.org/10.5194/acp-8-2773-2008</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>35</label><mixed-citation>
      
Pichelstorfer, L., Roldin, P., Rissanen, M., Hyttinen, N., Garmash, O.,
Xavier, C., Zhou, P., Clusius, P., Foreback, B., Almeida, T. G., Deng, C.,
Baykara, M., Kurtén, T., and Boy, M.: Towards Automated Inclusion of
Autoxidation Chemistry in Models: From Precursors to Atmospheric Implications, Environ. Sci.-Atmos., 4, 879–896, <a href="https://doi.org/10.1039/D4EA00054D" target="_blank">https://doi.org/10.1039/D4EA00054D</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>36</label><mixed-citation>
      
Rissanen, M. P., Kurtén, T., Sipilä, M., Thornton, J. A., Kangasluoma, J., Sarnela, N., Junninen, H., Jørgensen, S., Schallhart, S., Kajos, M. K., Taipale, R., Springer, M., Mentel, T. F., Ruuskanen, T., Petäjä, T., Worsnop, D. R., Kjaergaard, H. G., and Ehn, M.: The
Formation of Highly Oxidized Multifunctional Products in the Ozonolysis of
Cyclohexene, J. Am. Chem. Soc., 136, 15596–15606, <a href="https://doi.org/10.1021/ja507146s" target="_blank">https://doi.org/10.1021/ja507146s</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>37</label><mixed-citation>
      
Roldin, P., Swietlicki, E., Schurgers, G., Arneth, A., Lehtinen, K. E. J.,
Boy, M., and Kulmala, M.: Development and Evaluation of the Aerosol Dynamics
and Gas Phase Chemistry Model ADCHEM, Atmos. Chem. Phys., 11, 5867–5896, <a href="https://doi.org/10.5194/acp-11-5867-2011" target="_blank">https://doi.org/10.5194/acp-11-5867-2011</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>38</label><mixed-citation>
      
Roldin, P., Eriksson, A. C., Nordin, E. Z., Hermansson, E., Mogensen, D.,
Rusanen, A., Boy, M., Swietlicki, E., Svenningsson, B., Zelenyuk, A., and
Pagels, J.: Modelling Non-Equilibrium Secondary Organic Aerosol Formation
and Evaporation with the Aerosol Dynamics, Gas- and Particle-Phase Chemistry
Kinetic Multilayer Model ADCHAM, Atmos. Chem. Phys., 14, 7953–7993, <a href="https://doi.org/10.5194/acp-14-7953-2014" target="_blank">https://doi.org/10.5194/acp-14-7953-2014</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>39</label><mixed-citation>
      
Saunders, S. M., Jenkin, M. E., Derwent, R. G., and Pilling, M. J.: Protocol
for the Development of the Master Chemical Mechanism, MCM v3 (Part A):
Tropospheric Degradation of Non-Aromatic Volatile Organic Compounds, Atmos. Chem. Phys., 3, 161–180, <a href="https://doi.org/10.5194/acp-3-161-2003" target="_blank">https://doi.org/10.5194/acp-3-161-2003</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>40</label><mixed-citation>
      
Schaap, M., Timmermans, R. M. A., Roemer, M., Boersen, G. A. C., Builtjes,
P. J. H., Sauter, F. J., Velders, G. J. M., and Beck, J. P.: The LOTOS EUROS
Model: Description, Validation and Latest Developments, Int. J. Environ. Pollut., 32, 270–290, <a href="https://doi.org/10.1504/IJEP.2008.017106" target="_blank">https://doi.org/10.1504/IJEP.2008.017106</a>, 2008.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>41</label><mixed-citation>
      
Simon, M., Dada, L., Heinritzi, M., Scholz, W., Stolzenburg, D., Fischer, L., Wagner, A. C., Kürten, A., Rörup, B., He, X.-C., Almeida, J., Baalbaki, R., Baccarini, A., Bauer, P. S., Beck, L., Bergen, A., Bianchi,
F., Bräkling, S., Brilke, S., Caudillo, L., Chen, D., Chu, B., Dias, A.,
Draper, D. C., Duplissy, J., El-Haddad, I., Finkenzeller, H., Frege, C.,
Gonzalez-Carracedo, L., Gordon, H., Granzin, M., Hakala, J., Hofbauer, V.,
Hoyle, C. R., Kim, C., Kong, W., Lamkaddam, H., Lee, C. P., Lehtipalo, K.,
Leiminger, M., Mai, H., Manninen, H. E., Marie, G., Marten, R., Mentler, B.,
Molteni, U., Nichman, L., Nie, W., Ojdanic, A., Onnela, A., Partoll, E.,
Petäjä, T., Pfeifer, J., Philippov, M., Quéléver, L. L. J.,
Ranjithkumar, A., Rissanen, M. P., Schallhart, S., Schobesberger, S.,
Schuchmann, S., Shen, J., Sipilä, M., Steiner, G., Stozhkov, Y., Tauber,
C., Tham, Y. J., Tomé, A. R., Vazquez-Pufleau, M., Vogel, A. L., Wagner,
R., Wang, M., Wang, D. S., Wang, Y., Weber, S. K., Wu, Y., Xiao, M., Yan,
C., Ye, P., Ye, Q., Zauner-Wieczorek, M., Zhou, X., Baltensperger, U.,
Dommen, J., Flagan, R. C., Hansel, A., Kulmala, M., Volkamer, R., Winkler,
P. M., Worsnop, D. R., Donahue, N. M., Kirkby, J., and Curtius, J.:
Molecular Understanding of New-Particle Formation from <i>α</i>-Pinene between −50 and +25&thinsp;°C, Atmos. Chem. Phys., 20, 9183–9207, <a href="https://doi.org/10.5194/acp-20-9183-2020" target="_blank">https://doi.org/10.5194/acp-20-9183-2020</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>42</label><mixed-citation>
      
Topping, D., Barley, M., Bane, M. K., Higham, N., Aumont, B., Dingle, N.,
and McFiggans, G.: UManSysProp v1.0: An Online and Open-Source Facility for
Molecular Property Prediction and Atmospheric Aerosol Calculations, Geosci. Model Dev., 9, 899–914, <a href="https://doi.org/10.5194/gmd-9-899-2016" target="_blank">https://doi.org/10.5194/gmd-9-899-2016</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>43</label><mixed-citation>
      
Vereecken, L., Aumont, B., Barnes, I., Bozzelli, J. W., Goldman, M. J., Green, W. H., Madronich, S., McGillen, M. R., Mellouki, A., Orlando, J. J.,
Picquet-Varrault, B., Rickard, A. R., Stockwell, W. R., Wallington, T. J.,
and Carter, W. P. L.: Perspective on Mechanism Development and
Structure-Activity Relationships for Gas-Phase Atmospheric Chemistry, Int. J. Chem. Kinet., 50, 435–469, <a href="https://doi.org/10.1002/kin.21172" target="_blank">https://doi.org/10.1002/kin.21172</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>44</label><mixed-citation>
      
WHO – World Health Organization: Air quality guidelines: global update 2005,
World Health Organization, Geneva, <a href="https://www.who.int/publications/i/item/WHO-SDE-PHE-OEH-06.02" target="_blank"/> (last access: 25 November 2025), 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>45</label><mixed-citation>
      
Zhao, D., Pullinen, I., Fuchs, H., Schrade, S., Wu, R., Acir, I.-H., Tillmann, R., Rohrer, F., Wildt, J., Guo, Y., Kiendler-Scharr, A., Wahner, A., Kang, S., Vereecken, L., and Mentel, T. F.: Highly Oxygenated Organic
Molecule (HOM) Formation in the Isoprene Oxidation by NO<sub>3</sub> Radical, Atmos. Chem. Phys., 21, 9681–9704, <a href="https://doi.org/10.5194/acp-21-9681-2021" target="_blank">https://doi.org/10.5194/acp-21-9681-2021</a>, 2021.

    </mixed-citation></ref-html>--></article>
