{"id":"71344d86-4f07-4640-a19a-f51b76e51442","arxiv_id":"2505.09060","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":5.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":5,"one_line_summary":"SpectraMatcher is an open-source GUI program that turns Gaussian vibronic output into interactive, assignable spectra matched to experimental data.","lead":"SpectraMatcher is a new Python desktop program that lets chemists compare measured and computed vibronic spectra side by side, tune peak widths and frequency corrections, and auto-assign matching peaks through a graphical interface. It matters because spectral assignment is a slow, error-prone manual step in molecular spectroscopy, and this tool packages it into a reproducible, no-coding workflow.","discovery_kind":"new_method","skeptic_critique":{"model":"deepseek-v4-flash","headline":"Section 3.4 mode classification is hand-tuned to planar PAHs, uses low-precision displacement vectors by default, and is consumed silently; a misclassified mode receives the wrong scaling factor in Eq. (3), shifting peaks and potentially breaking matching in Eqs. (4)-(6).","rationale":"The reader's weakest assumption identifies exactly the most load-bearing concern. The central claim is that SpectraMatcher is a functional, automated tool for vibronic assignment; the type-specific anharmonic scaling is advertised as a key feature, and the ovalene demo depends on it, with fX-H=0.977 versus fothers=0.988. If the Section 3.4 heuristics misclassify a mode for a non-planar molecule or a molecule not oriented with its plane in a Cartesian plane, the wrong scaling factor is applied silently in Eq. (3), shifting that transition and potentially altering the matches produced by Eqs. (4)-(6). The paper's own discussion of arbitrary wavenumber cutoffs acknowledges the classification difficulty but does not test the displacement-based replacement beyond planar PAHs, nor does it assess sensitivity to the default two-decimal precision. This is a concrete, testable weakness, and the proposed check would settle whether it is real. The software is otherwise credible and the demo is a reasonable workflow reproduction, so this concern does not overturn the reader's conditional verdict; it reinforces it.","tokens_in":21817,"tokens_out":8978,"duration_ms":93025,"concrete_test":"Run the public SpectraMatcher code on corannulene (non-planar) and on a planar PAH whose Gaussian input is rotated so the molecular plane is not the xy-plane; compare the automatic OOP/X-H labels from default output with labels from freq=hpmodes output and with manual labels from the displacement-vector data. If any label changes when only vector precision changes (two versus five decimals) or any OOP/X-H label contradicts the manual assignment, the silent-failure concern is confirmed.","verdict_should_be":"UNCHANGED","load_bearing_attack":"The least secure load-bearing element is the automatic mode classification of Section 3.4. The planarity criterion (maximum atomic displacement less than 1 Å), the out-of-plane weight threshold (||Dmo||^2 > 0.9), and the X-H stretch dot-product cutoff (>0.2 Å) are fixed heuristics with no reported validation beyond pyrene, naphthalene, and ovalene, all planar PAHs. Section 3.2 states that displacement vectors are extracted at two decimal places unless the Gaussian job used freq=hpmodes, so rounding can move a borderline mode across a threshold. The classification is consumed automatically in Eq. (3): a misclassified mode receives the wrong scaling factor (in the ovalene demo, fX-H=0.977 versus fothers=0.988), shifting the affected transition by tens of cm-1, which can break matching in Eqs. (4)-(6) silently. The paper criticizes the arbitrary wavenumber-cutoff approach yet does not validate its displacement-based replacement on non-planar or differently oriented molecules, and it does not expose the type assignment for user override.","agreement_with_reader":"agree"},"referee_report":{"model":"deepseek-v4-flash","summary":"SpectraMatcher is a cross-platform Python GUI for interactively comparing experimental vibronic spectra with simulated Franck–Condon/Herzberg–Teller spectra computed by Gaussian. The manuscript describes the workflow (Sections 3–4): import and validation of Gaussian .log files, automatic detection of peaks in experimental spectra, classification of vibrational modes as out-of-plane bends, X–H stretches, or other modes, Lorentzian convolution of stick transitions (Eqs. (1)–(2)), type-specific wavenumber scaling (Eq. (3)), and automated matching of computed to experimental peaks via proximity and intensity thresholds (Eqs. (4)–(5)) with a scoring function (Eq. (6)). A case study on ovalene (Section 5) illustrates the workflow by reproducing the S2–S0 emission assignment and composing an S2+S3 excitation spectrum. The equations and software design are clearly presented, and the program is openly available with documentation.","tokens_in":22035,"tokens_out":8737,"duration_ms":84815,"significance":"The paper addresses a genuine practical bottleneck: the manual alignment and assignment of vibronic spectra. The proposed tool is open-source, cross-platform, GUI-based, and includes reproducible project files, automated matching, and publication-ready export formats; if validated, it would be useful to experimental spectroscopy groups. The core mathematics is standard and internally consistent; the convolution, scaling, and matching equations are simple and easily audited. The strengths are the clean architecture, the explicit equations, the public code and documentation, and the concrete ovalene demonstration. The main reservations are that the automatic mode-classification heuristic in Section 3.4 is validated only on planar PAHs and that the ovalene case study is an illustration with parameters fitted to the displayed experiment rather than an independent test of matching or classification accuracy.","major_comments":[{"comment":"The automatic mode classification is load-bearing for the type-specific scaling feature, but the fixed thresholds (planarity via maximum atomic displacement < 1 Å along one Cartesian axis, OOP squared weight > 0.9, X–H bond-aligned displacement dot product > 0.2 Å) are validated only on pyrene, naphthalene, and ovalene, all planar PAHs. Because the classification is consumed automatically in Eq. (3) without user inspection, a misclassified mode receives the wrong scaling factor (in the ovalene demo, fX-H = 0.977 versus fothers = 0.988), shifting the affected transitions by tens of cm−1 and potentially breaking the matching in Eqs. (4)–(5) silently. The paper criticizes the arbitrary wavenumber cutoff of earlier approaches but does not test this replacement on non-planar or differently oriented molecules; moreover, Section 3.2 states that displacement vectors default to two decimal places, so rounding can move a borderline mode across a threshold. I recommend validating the classifier on a diverse test set, using high-precision displacements by default, and exposing the assigned mode type for user override.","section":"§3.4 and Eq. (3)"},{"comment":"The automated matching algorithm is described precisely, but its accuracy is never quantitatively evaluated, and the scoring function has properties that should be addressed. The score in Eq. (6) is unnormalized and has units of cm^2; it divides by zero if x_c = x_e exactly, and it is not invariant to the choice of wavenumber units. Because the algorithm processes computed peaks greedily in descending intensity and removes each matched experimental peak from further consideration, the final assignment set can depend on the order of processing. A concrete test would be to generate synthetic spectra with known true assignments (e.g., by adding noise to a simulated stick spectrum) and report how often Eqs. (4)–(6) recover the ground truth as a function of tau_deltanu, tau_I, and noise level. Without such a benchmark, the central claim that the program 'automates and streamlines' matching is plausible but not substantiated.","section":"§4.5 and Eq. (6)"},{"comment":"The conclusion that 'our experimental spectrum is best described by the simulated S2 to S0 emission spectrum' is reached after interactively tuning fX-H, fothers, the zero-zero shift, and the Lorentzian width against that same experimental spectrum. As a demonstration of the GUI this is acceptable, but as evidence for the program's assignment capability it is partly circular. A concrete test would be to apply the workflow with default thresholds and without per-spectrum tuning of scaling factors to a molecule with a known assignment, such as pyrene or naphthalene, and report whether the correct electronic state is recovered; alternatively, the text should state explicitly that the section reproduces the assignment of reference [36] rather than validating the tool.","section":"§5 (ovalene case study)"}],"minor_comments":[{"comment":"The sentence 'Automatic spectral feature detection is performed on experimental data via to facilitate the analysis' contains a missing word after 'via'; it should be reworded.","section":"Program Summary"},{"comment":"The text refers to 'Table 5' when referring to the auto-generated assignment table, but the table in the manuscript is labeled 'Table 1'; the numbering should be made consistent.","section":"§5 and Table 1"},{"comment":"The scoring function is introduced in Section 3.7 as 'Iexp/Δν^2' and defined in Eq. (6); the two presentations should be reconciled, and the case Δν = 0 should be handled explicitly.","section":"§3.7 and §4.5"},{"comment":"The seven-point moving average filter is a fixed choice for peak detection; the paper should either justify this choice or make the window size user-configurable.","section":"§4.4"},{"comment":"The thresholds for planarity, OOP weight, and X–H dot product are stated without any sensitivity information; a short analysis of how many ovalene modes lie near these thresholds would help users understand the risk of misclassification.","section":"§3.4"},{"comment":"The restriction that only Gaussian 16 output files are supported appears in the Program Summary but not in the Introduction; this scope limitation should be stated earlier, since it affects reader expectations.","section":"Introduction and Program Summary"},{"comment":"The intensity criterion min(y_c/y_e, y_e/y_c) > tau_I with the default tau_I = 0.03 permits a computed peak to match an experimental peak whose intensity differs by as much as a factor of 33; the term 'relative intensity threshold' may mislead users, so the text should clarify this behavior.","section":"Eq. (5)"}],"recommendation":"major_revision","confidential_remarks":"The paper is suitable in scope for a software-focused journal such as CPC, and the code is publicly available, which is a real strength. The main technical risk is the unvalidated mode-classification heuristic of Section 3.4, which is load-bearing for the type-specific scaling feature; the authors should be given the opportunity to add either a broader validation or a user-override mechanism. The case study is drawn from the authors' own prior work [36], so there is no novelty-disclosure concern, but the framing should make clear that the ovalene demo is a reproduction rather than an independent benchmark."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Real talk: this is a software paper that deserves a fair shake. The code is public, the docs are extensive, and the GUI covers a genuine bottleneck in vibronic spectroscopy — manually aligning Gaussian FC/HT sticks to experimental spectra. The math is standard and the matching algorithm is sensible. The demo is honest: it shows the GUI reproducing the authors' own S2→S0 ovalene reassignment, and they don't pretend the fitted scaling factors validate the physics. Good.\n\nWhere it's soft: the mode classification in Section 3.4 is the one piece of cleverness, and it's also the most fragile. The thresholds (planarity <1 Å, OOP weight >0.9, X–H dot >0.2 Å) are hand-set, tested only on planar PAHs, and they operate on displacement vectors that default to two decimals. A borderline mode can tip across a threshold, get the wrong scaling factor (0.977 vs 0.988 in the demo), and shift a peak by tens of cm⁻¹ — silently breaking the match. There's no user override for the type, which makes the failure mode worse. That's not a fatal flaw, but it's exactly the thing a serious referee should push on. The fix is bounded: use hpmodes by default, add a manual override, and test on a non-planar or rotated molecule.\n\nMinor: the performance numbers are plausible but no benchmark script is shipped, and the repository isn't pinned to a version. For a CPC paper that's worth a footnote, not a rejection.\n\nBottom line: send it out. The tool is credible, the code is real, and the limits are honestly stated. I'd accept after the classification robustness is addressed.","headline":"A credible open-source GUI for vibronic peak matching that does what it claims, with the one novel heuristic (automatic mode classification) being the soft spot.","tokens_in":22636,"tokens_out":2713,"would_cite":false,"duration_ms":28030,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"SpectraMatcher is a GUI that automates matching experimental and computed vibronic spectra.","keywords":["vibronic spectroscopy","peak matching","anharmonic correction","vibrational frequency scale factors","convolution","spectrum analysis","fluorescence","graphical user interface"],"falsifier":"Take a molecule with independently known mode types (e.g., from a high-level anharmonic calculation or a high-resolution experimental assignment), import its frequency output and experimental spectrum into SpectraMatcher, and compare the program's automatic mode-type flags and scaled peak positions with the known values; the central claim fails in its practical form if any mislabeled mode moves a peak by more than the default 30 cm$^{-1}$ matching threshold, because the assignment would then be silently wrong.","tokens_in":21545,"feed_emoji":"📊","tokens_out":8924,"duration_ms":83423,"temperature":0.7,"pith_summary":"SpectraMatcher is a cross-platform desktop program, written in Python, that brings the comparison of experimental and computed vibronic spectra into an interactive graphical interface. The paper's central claim is that the whole workflow—importing quantum-chemistry output, detecting peaks in a measured spectrum, adjusting line width, zero-zero energy, and intensity, and assigning computed transitions to observed peaks—can be automated and steered visually, with no scripting required. The paper argues this matters because manual peak assignment in large molecules with densely overlapping vibronic bands is slow and error-prone. A demonstration on ovalene concludes that the measured emission spectrum is best described by the simulated S2→S0 emission spectrum, showing the tool being used to settle an excited-state assignment.","feed_headline":"SpectraMatcher automates vibronic peak assignment in a GUI","feed_subtitle":"Spectroscopists can align, scale, and assign hundreds of bands without scripting or manual spreadsheet work.","key_machinery":"The load-bearing mechanism is the combination of an automatic mode-type classifier and an intensity-prioritized matcher. Each vibrational mode is classified as an out-of-plane bend, an X–H stretch, or \"other\" by geometric rules on its displacement vector; that class determines the scaling factor $f_{\\tau(m)}$ applied in the corrected-wavenumber formula $\\tilde{\\nu}_t = \\sum_{m} f_{\\tau(m)} v_m \\tilde{\\nu}_m$. The matcher greedily assigns the most intense computed peaks to experimental peaks satisfying $|x_c - x_e| < \\tau_{\\Delta\\tilde{\\nu}}$ and an intensity-ratio threshold, selecting among candidates by the score $y_e/(x_c-x_e)^2$. These heuristics are what let the program update an entire assignment table in real time while the user drags parameters.","core_discovery":"The paper's central claim is a practical software construction: a program that turns two kinds of input—a list of Franck–Condon/Herzberg–Teller transitions with their vibrational mode labels, and a raw experimental spectrum—into an aligned, assigned, exportable result. To do this it computes theoretical stick spectra, adjusts each computed peak's wavenumber by a per-mode-type scaling factor, convolves the sticks with a Lorentzian profile, and then matches computed peaks to detected experimental peaks in order of decreasing intensity using a wavenumber-distance threshold, an intensity-ratio threshold, and a score that prefers intense, close peaks. The case study uses the program to compare six simulated excited-state emission spectra of ovalene with the measured para-hydrogen spectrum; SpectraMatcher's composite-spectrum overlay and auto-generated assignment table support the conclusion that the spectrum belongs to the S2→S0 transition rather than the previously proposed S1→S0 transition.","pith_inferences":["The planarity and mode-classification thresholds (1 Å, 0.9 squared out-of-plane weight, 0.2 Å H-bond dot product) were tuned on planar PAHs; a natural extension is to re-derive them from the molecular inertia tensor so the same logic applies to non-planar molecules.","The matching score $I_{\\mathrm{exp}}/\\Delta\\tilde{\\nu}^2$ implicitly sets a trade-off between intensity and wavenumber closeness; in cm$^{-1}$ units, very close weak peaks can outscore farther intense peaks, which may matter for high-resolution spectra and could be tested with synthetic stick spectra.","The tool's workflow could be used as a cheap surrogate for full anharmonic calculations: fitted scaling factors for a molecule could be compared against independently computed anharmonic wavenumbers to check whether type-specific scaling captures the correct trends.","The ovalene demo, which reassigns the emission to S2→S0, suggests that interactive composite-spectrum tools of this kind can systematically revisit older state assignments for other PAHs with disputed or ambiguous electronic bands."],"forward_implications":["A spectroscopist can turn a raw experimental trace and quantum-chemistry output into a publication-ready assignment table and figure, with all alignment steps recorded in a project file.","For molecules whose spectra mix transitions from several electronic states, the composite-spectrum overlay makes it possible to disentangle contributions and estimate energy gaps, as done for ovalene's S2 and S3 states.","Type-specific anharmonic scaling lets a user correct high-wavenumber X–H stretch bands without moving the rest of the spectrum, matching the known systematic anharmonicity of these modes.","Because matching proceeds from the most intense peaks downward, assignments stay anchored on the strongest features even when many weak bands overlap.","The default thresholds (30 cm$^{-1}$ distance, 3% intensity ratio) and the symmetric intensity test give a sensible starting point that users can tune per spectrum."],"supporting_citations":[{"why":"Provides the frequency and Franck–Condon/Herzberg–Teller output files that SpectraMatcher parses to build computed spectra.","marker":"[23]"},{"why":"Defines the Franck–Condon and Herzberg–Teller intensity framework that the computed transition list encodes.","marker":"[24–27]"},{"why":"Introduced the empirical wavenumber-scaling approach that the program's type-specific corrections build on.","marker":"[28]"},{"why":"Supplies literature scaling factors against which the ovalene values 0.977 and 0.988 are checked.","marker":"[30]"},{"why":"Reports the para-hydrogen ovalene spectra and the S2 reassignment that the SpectraMatcher case study reproduces.","marker":"[36]"},{"why":"Supplies the peak-finding behavior replicated by the program's experimental peak detector.","marker":"[79]"},{"why":"Original supersonic-jet ovalene spectra and S1 assignment that the paper's S2 conclusion revises.","marker":"[80, 81]"}],"fun_headline_variants":["SpectraMatcher pairs vibronic peaks without a line of code","GUI tool assigns vibronic bands from simulated spectra in minutes","SpectraMatcher: drag-and-drop peak matching for vibronic spectra","Automated vibronic peak assignment, no script required","SpectraMatcher turns raw spectra into assigned vibronic modes"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The central load-bearing premise is that the automatic rules for classifying vibrations as out-of-plane bends or X–H stretches—thresholds tested only on planar aromatic hydrocarbons—apply correctly to any molecule the user analyzes; if they misclassify a mode, the wrong scaling factor is applied and peaks shift without any warning.","fun_headline_variants_meta":{"raw":{"variants":["SpectraMatcher pairs vibronic peaks without a line of code","GUI tool assigns vibronic bands from simulated spectra in minutes","SpectraMatcher: drag-and-drop peak matching for vibronic spectra","Automated vibronic peak assignment, no script required","SpectraMatcher turns raw spectra into assigned vibronic modes"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000344,"raw_usage":{"total_tokens":1846,"prompt_tokens":862,"completion_tokens":984,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":478,"completion_tokens_details":{"reasoning_tokens":898}},"tokens_in":478,"tokens_out":984,"duration_ms":7572,"temperature":1.0,"reasoning_tokens":898,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-15T21:41:16.904101+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Take a molecule with independently known mode types (e.g., from a high-level anharmonic calculation or a high-resolution experimental assignment), import its frequency output and experimental spectrum into SpectraMatcher, and compare the program's automatic mode-type flags and scaled peak positions with the known values; the central claim fails in its practical form if any mislabeled mode moves a peak by more than the default 30 cm$^{-1}$ matching threshold, because the assignment would then be silently wrong.","supporting_citations":[{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"Provides the frequency and Franck–Condon/Herzberg–Teller output files that SpectraMatcher parses to build computed spectra."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"Introduced the empirical wavenumber-scaling approach that the program's type-specific corrections build on."},{"cited_title":"Hayen, Nuitka, https://github.com/Nuitka/Nuitka (2025)","cited_arxiv_id":null,"evidence_quote":"Supplies the peak-finding behavior replicated by the program's experimental peak detector."}],"review_version":1}