{"id":"a3883eb5-dd3a-4f01-9338-c2bdbaa86cc8","arxiv_id":"2607.18568","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":5.0,"correctness_risk":"low","formal_verification":"none","parameter_count":4,"one_line_summary":"AMICA-Python reproduces the Fortran AMICA reference to a median relative log-likelihood difference of 1.07e-8 and runs 17.7% faster (34.1% faster with DAAREM acceleration) on 14 EEG recordings.","lead":"AMICA-Python is a new PyTorch-based Python implementation of the AMICA blind source separation algorithm, with a scikit-learn-conformant interface and an optional Anderson acceleration scheme. For EEG researchers working in Python, it offers the first robust native alternative to the Fortran/EEGLAB version, with nearly identical final log-likelihoods and comparable or faster runtimes.","discovery_kind":"new_application","skeptic_critique":{"model":"deepseek-v4-flash","headline":"Equivalent-parameters mapping is never shown; iteration-count mismatches show the two implementations are not behaviorally identical, so the numerical-equivalence claim lacks a stated configuration.","rationale":"The reader's weakest assumption—that the reduced Python API is behaviorally equivalent to the 86-parameter Fortran API under the 'equivalent parameters' benchmark setting—is the most load-bearing gap in the paper. The benchmarking evidence is genuinely strong: matched initial W, β, and μ, median relative log-likelihood difference of 1.07e-8, replicated Delorme MIR/dipolarity analysis, and committed software with unit tests. However, the manuscript never specifies the parameter mapping, and Table 3's iteration-count discrepancies (jo74, ke70, kb77) show that the two implementations are not identical in every aspect of control flow. This does not invalidate the central claim, but it narrows it to an unstated configuration. The placeholder bibliography entry and placeholder acknowledgements further reinforce that the manuscript is not final. Since the reader already returned CONDITIONAL, my read does not move the verdict; it sharpens the condition that should be attached to acceptance.","tokens_in":17576,"tokens_out":9377,"duration_ms":113439,"concrete_test":"Publish a machine-readable table mapping each of the 86 Fortran API parameters and defaults to the corresponding AMICA-Python attribute/default, with 'not exposed' marked where applicable. Then rerun the Table 3 benchmark on the 14 recordings with all Fortran parameters set to the exact values implied by AMICA-Python's defaults and compare per-iteration trajectories, not just final normalized log-likelihood. If the iteration-count mismatches on jo74, ke70, and kb77 persist, identify which hidden parameter or scheduling difference explains them; if they disappear, the equivalence claim is established for the tested configuration.","verdict_should_be":"UNCHANGED","load_bearing_attack":"The central claim—that AMICA-Python numerically reproduces the Fortran reference—rests on the benchmark's assertion that both implementations were run 'using equivalent parameters' (Methods, Benchmark Analysis). But the paper never lists which of the Fortran program's 86 parameters map to AMICA-Python's reduced API, nor what the Python defaults are for the unexposed parameters. Table 3 indicates this is not merely cosmetic: iteration counts differ on several datasets (jo74: 897 vs 998; ke70: 1306 vs 1106; kb77: 906 vs 873), implying differences in convergence checks, update scheduling, or default tolerances. Because the initial W, β, and μ were loaded from Fortran into Python, the close final likelihoods on these 14 real recordings could reflect matched initial conditions and default thresholds rather than algorithmic equivalence across the Fortran parameter space. The paper should therefore scope its claim to the specific default/benchmark configuration until a full parameter mapping is provided and tested.","agreement_with_reader":"agree"},"referee_report":{"model":"deepseek-v4-flash","summary":"The paper presents AMICA-Python, a reimplementation of the AMICA blind-source-separation algorithm in Python using PyTorch, with a scikit-learn-conformant API, batch processing, and an optional Anderson-acceleration (DAAREM) mode. The authors benchmark AMICA-Python against the canonical Fortran AMICA on 14 open EEG recordings, using matched initial conditions (Fortran-saved W, β, μ) and 'equivalent parameters'. They report median final normalized log-likelihood of 11.57285 for both implementations, a median relative absolute difference of 1.07×10⁻⁸, and faster wall-clock runtime (82.3% of Fortran for standard EM, 65.9% with DAAREM). They also replicate the Delorme et al. mutual-information/dipolarity comparison, placing AMICA-Python in the same region as the original AMICA. The paper claims that AMICA-Python 'reproduces the reference implementation to high numerical precision' and that DAAREM 'dramatically reduces' time to convergence.","tokens_in":17807,"tokens_out":3769,"duration_ms":45082,"significance":"If the numerical-equivalence claim is supported, this is a valuable software contribution: AMICA has been a MATLAB/Fortran-only tool, and a maintained, tested, scikit-learn-compatible Python implementation would substantially lower access barriers for EEG pipelines and for algorithm development. The manuscript's strengths include the matched-initialization protocol, which avoids circularity in the benchmark; the replication of the Delorme analysis using the original MATLAB/DIPFIT scripts; the provision of reproducible benchmarks with pinned commit hashes; and the integration of unit tests in CI. The runtime comparisons are also meaningful, with per-dataset detail. However, the central claim of 'reproducing the reference implementation' is presently stronger than the evidence: the equivalence of the reduced Python API to the 86-parameter Fortran API is asserted rather than demonstrated, and iterations-count mismatches in the benchmark show the implementations are not behaviorally identical in all settings.","major_comments":[{"comment":"The statement that both implementations 'were run using equivalent parameters' is not substantiated. The Fortran program exposes 86 tunable parameters; the Python API exposes only a handful, with 'sensible default values' for the rest. No mapping from Python defaults to Fortran parameters is provided, and the values of unexposed parameters (e.g., regularization, update-schedule choices, Newton-step settings, convergence tolerances) are never listed. The central numerical-agreement claim depends on this equivalence. Without the mapping, the observed agreement on 14 recordings with matched initial conditions could be specific to the benchmark configuration rather than evidence of general algorithmic equivalence. The authors should either provide a full parameter mapping and demonstrate agreement across a broader configuration space, or explicitly scope the claim to the tested default confi","section":"Methods, 'Benchmark Analysis'"},{"comment":"The benchmark shows iteration-count mismatches under 'equivalent parameters': jo74 (897 vs. 998), ke70 (1306 vs. 1106), and kb77 (906 vs. 873). Additionally, gv84 hits the 2000-iteration cap with a |ΔLL| of 3.80e-5, which is roughly three orders of magnitude larger than the median relative difference. These mismatches indicate differences in convergence checks, update scheduling, or default tolerances. The paper does not explain them. This undermines the assertion that AMICA-Python is behaviorally identical to the Fortran implementation; at minimum, the authors should explain these differences and reconcile them with the 'equivalent parameters' claim, or temper the reproduction claim to 'close agreement on final likelihood under matched initial conditions'.","section":"Results, Table 3"},{"comment":"The abstract claims that AMICA-Python 'reproduces the reference implementation to high numerical precision.' The evidence supports close agreement on final normalized log-likelihoods for the 14 tested recordings under matched initializations, but not algorithmic equivalence across the parameter space. Given the missing parameter mapping and the iteration-count deviations, the claim should be scoped to the benchmark configuration, or the authors should provide additional validation (e.g., parameter sweeps, random initializations) to justify the stronger reproduction claim.","section":"Abstract and Discussion"},{"comment":"The abstract states that the Anderson-accelerated variant 'dramatically reduce[s] the time to convergence,' but Table 5 shows it is slower than standard EM on ds76 (ratio 2.024), and Table 4 shows it is slower than Fortran on ds76 (ratio 1.416). The Results section does acknowledge that 'DAAREM was not uniformly faster,' but the abstract and the initial framing of the contribution should reflect this variability. The authors should report the distribution of runtime ratios (e.g., median and range) and temper the language to 'can reduce time for most datasets' rather than implying uniform dramatic gains.","section":"Results, DAAREM runtime"}],"minor_comments":[{"comment":"The caption contains a typo: 'accelleration' should be 'acceleration'; also 'Py-DAAREM accelleration' in the table title.","section":"Table 4 caption"},{"comment":"The manuscript has several typos and grammatical issues: 'oﬀicial', 'eﬀicient', 'ineﬀicient', 'discription', 'diretion', 'implemenations', and a stray 's' at the end of 'R2 = 0.962.s'. A careful proofreading pass is needed.","section":"Global"},{"comment":"The Acknowledgments section contains placeholder text: 'placeholder for funding, institutional support, and project acknowledgements.' This must be filled before submission.","section":"Acknowledgements"},{"comment":"Reference [26] is a placeholder ('Placeholder Journal'), and the bibliography contains a duplicate: Walker and Ni's Anderson acceleration paper appears as both [2] and [43]. The duplicate should be removed and the placeholder completed.","section":"References"},{"comment":"The text says benchmark results and scripts are 'available at the links below,' but no URLs appear in the manuscript text. The repository links should be included explicitly, not only the commit hashes in Table 2.","section":"Methods, 'AMICA-Python software'"},{"comment":"Because the paper argues that a simplified API is an improvement, a table listing the Python estimator's parameters and their default values, with a mapping to the corresponding Fortran parameters, would greatly aid reproducibility and would also address the main concern raised above. At minimum, the default values for convergence thresholds and DAAREM hyperparameters (order m, damping schedule) should be stated.","section":"Methods, parameter API"}],"recommendation":"major_revision","confidential_remarks":"As outlined in the major comments, the main issue is the unsubstantiated 'equivalent parameters' claim. The paper's core evidence is strong but narrower than the abstract's assertion of full reproduction. If the authors supply the parameter mapping, run a sensitivity analysis or parameter sweep, and reconcile the iteration-count differences, the paper would likely be acceptable. I would not reject it, as the benchmark protocol and external-reference validation are sound and the software contribution is clearly useful."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Colleague — this is a genuine engineering contribution, not a new algorithm. The authors reimplemented AMICA in Python, added a DAAREM-accelerated variant, and validated both against the canonical Fortran program on 14 open EEG recordings. The validation is the best part: matched initial conditions, median relative difference in final log-likelihood of 1e-8, and a replication of Delorme et al.'s mutual-information/dipolarity analysis that lands the Python outputs in the same high-performing region. That is real evidence of numerical agreement for the settings they tested.\n\nThe main soft spot is the equivalence claim. The paper asserts the simplified Python API is behaviorally equivalent to the 86-parameter Fortran API but never shows the mapping between Python defaults and Fortran parameters. The Appendix's iteration counts differ on several datasets (jo74, ke70, kb77), so the implementations are not identical under the hood; the close likelihoods may depend on the benchmark configuration. The fix is to publish the parameter mapping and test a few alternative settings, then scope the claim. This is a revise-and-resubmit issue, not a fatal flaw.\n\nThe DAAREM speedup is oversold. The abstract says 'dramatically' reduces time to convergence, but Table 5 shows it was 2.0x slower than plain EM on ds76 and slower than Fortran on that dataset. The median gain is real, but the claim needs qualification. The method itself is a published accelerator; the novelty here is the application, not the algorithm.\n\nMinor: the manuscript has placeholder text in the acknowledgements and a bibliography entry that says 'Replace this placeholder entry' (ref 26). It needs a polish pass. The gv84 truncation is described and reasonable.\n\nThe citation pattern is fine, and the self-citations are relevant. This paper is for researchers who want AMICA in Python-based EEG pipelines, which is a real gap. I'd send it to peer review with the expectation of revisions on the parameter mapping and speedup language. I would cite it if I used AMICA.","headline":"A useful, well-validated Python port of AMICA; the equivalence claim is broader than the evidence, and the DAAREM speedup is overstated.","tokens_in":18272,"tokens_out":2931,"would_cite":true,"duration_ms":32553,"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":"AMICA-Python reproduces the Fortran AMICA reference to a median relative log-likelihood difference of 1.07e-8 while running faster.","keywords":["independent component analysis","EEG","AMICA","Python implementation","blind source separation","generalized Gaussian mixture","Anderson acceleration","numerical equivalence"],"falsifier":"Run both implementations on more than 14 diverse EEG recordings plus synthetic mixtures with known source geometry, this time without seeding Python with Fortran's initial weights, and compare both final normalized log-likelihood and permutation-matched source correlations; a median relative log-likelihood gap above ~1e-6 or a median component correlation below ~0.999 would refute the claim of practical numerical equivalence.","tokens_in":17450,"feed_emoji":"🧠","tokens_out":7489,"duration_ms":83760,"temperature":0.7,"pith_summary":"AMICA-Python is a new implementation of the adaptive mixture independent component analysis algorithm for blind source separation, written in Python and designed to fit into standard Python data-analysis workflows. The paper claims that, on 14 EEG recordings, it reproduces the reference Fortran implementation to a median relative log-likelihood difference of 1.07e-8, and that both the default implementation and an optional Anderson-accelerated variant are faster than Fortran (17.7% and 34.1% faster, respectively). If those claims hold, the algorithm that many EEG researchers regard as one of the strongest ICA methods becomes usable inside Python pipelines without sacrificing numerical fidelity, and with a speed-up option that cuts fitting time by about a third.","feed_headline":"Python port of AMICA matches Fortran to 1e-8","feed_subtitle":"EEG blind-source-separation tool now runs in Python, 18% faster, and 34% faster with Anderson acceleration.","key_machinery":"The load-bearing object is AMICA's adaptive source-density model: each recovered source is represented as a weighted mixture of generalized-Gaussian densities, with location, inverse scale, shape, and mixture weight all learned jointly with the unmixing matrix. Each iteration computes per-mixture log-densities, uses a log-sum-exp collapse for the log-likelihood and a softmax along the mixture axis for responsibilities, then updates density parameters and the unmixing matrix with natural-gradient/Newton steps. The speed-up mechanism is damped Anderson acceleration with restarts and monotonicity control, which extrapolates the next iterate from recent fixed-point residuals through a ridge-regu","core_discovery":"AMICA-Python numerically matches the canonical Fortran AMICA program: across 14 EEG recordings, the median final normalized log-likelihood is 11.57285 for both implementations, with a median relative absolute difference of 1.07e-8. Re-running a previously published comparison of mutual information reduction and source dipolarity places both the standard and accelerated Python variants in the same high-performing region as the original AMICA, with near-dipolar component percentages around 29–31%. Default AMICA-Python was faster than Fortran on all 14 recordings and the Anderson-accelerated variant on 13 of 14, so the claim is that accessibility and speed are gained without changing the decomp","pith_inferences":["A direct comparison of recovered source components (not just final log-likelihood) across recordings would strengthen the equivalence claim, since near-equal likelihoods do not by themselves guarantee the same sources up to permutation and scaling.","The paper benchmarks the simplified Python API's defaults; a systematic sweep over the Fortran program's 86 parameters on synthetic mixtures would reveal whether any unexposed setting leads to divergence between the two implementations.","The Anderson acceleration speedup is dataset-dependent (one recording was over 2x slower when accelerated); an adaptive controller that turns acceleration on or off based on observed residual behavior could make the gain more dependable.","If the source-density estimator is made modular, as the paper suggests as a future step, AMICA could be tested against nonparametric density families, which may improve separation for sources that generalized Gaussians describe poorly."],"forward_implications":["EEG researchers who previously had to drive a Fortran executable through a separate EEG analysis environment can now obtain the same decomposition in Python, removing a major practical barrier to adopting AMICA.","Because the default implementation was faster than Fortran on every benchmarked recording, switching to the Python port should not cost runtime.","The accelerated variant cuts wall time to about two-thirds of Fortran on average, with only a ~6e-6 relative log-likelihood difference, making it attractive for large or repeated fits.","The replicated mutual-information and dipolarity results indicate that the Python port preserves the empirical properties that made AMICA popular for EEG source separation."],"fun_headline_variants":["AMICA-Python: Fortran-faithful, 34% faster","Python AMICA matches Fortran to 1e-8, 34% faster","AMICA now in Python: Fortran precision, 34% speedup","EEG AMICA: Python port matches Fortran, up to 34% faster"],"cache_read_input_tokens":2304,"weakest_assumption_plain":"The equivalence claim assumes that the reduced Python API, with its chosen defaults, maps exactly onto the Fortran program's full parameter set under the benchmark's 'equivalent parameters' setup; that mapping is never explicitly demonstrated, so the close agreement over 14 recordings might be dataset-specific rather than guaranteed by construction.","fun_headline_variants_meta":{"raw":{"variants":["AMICA-Python: Fortran-faithful, 34% faster","Python AMICA matches Fortran to 1e-8, 34% faster","AMICA now in Python: Fortran precision, 34% speedup","EEG AMICA: Python port matches Fortran, up to 34% faster"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.001376,"raw_usage":{"total_tokens":5454,"prompt_tokens":828,"completion_tokens":4626,"prompt_tokens_details":{"cached_tokens":256},"prompt_cache_hit_tokens":256,"prompt_cache_miss_tokens":572,"completion_tokens_details":{"reasoning_tokens":4539}},"tokens_in":572,"tokens_out":4626,"duration_ms":35633,"temperature":1.0,"reasoning_tokens":4539,"cache_read_input_tokens":256,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-01T14:58:58.830430+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Run both implementations on more than 14 diverse EEG recordings plus synthetic mixtures with known source geometry, this time without seeding Python with Fortran's initial weights, and compare both final normalized log-likelihood and permutation-matched source correlations; a median relative log-likelihood gap above ~1e-6 or a median component correlation below ~0.999 would refute the claim of practical numerical equivalence.","supporting_citations":[],"review_version":1}