{"id":"8ba344e1-0176-4ae7-bd03-9d3e0b64951f","arxiv_id":"2504.14274","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":6.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":5,"one_line_summary":"Protein backbones can be generated or edited by drawing 3D curves, through a two-stage pipeline that predicts secondary structure from the curve and guides denoising diffusion sampling.","lead":"ProtPainter generates protein backbones from user-drawn 3D curves by first turning the curve into a secondary-structure sketch and then guiding a pretrained diffusion model to follow that sketch. It also introduces a benchmark and a metric, scTF, for evaluating whether generated backbones match the requested topology.","discovery_kind":"new_method","skeptic_critique":{"model":"deepseek-v4-flash","headline":"Eq. 13 is not derived: Eq. 12 drops the z0 term and sampling noise, and the paper's phi is scalar scaling, not the idempotent low-pass filter Eq. 8 requires; so the central guidance update is unsupported as a conditional posterior.","rationale":"The reader's weakest assumption points to the correct load-bearing issue. Section 3.2's Eq. 12 is the step that connects the unconditional DDPM posterior (Eq. 5) to the sketch-interpolation update (Eq. 13) that actually implements curve guidance. Eq. 12 is not a valid manipulation of Eq. 5: it omits the z0 contribution and the stochastic term, and the paper's phi is scalar scaling rather than the idempotent low-pass filter used by ILVR. If Eq. 13 is not a consequence of the stated probabilistic model, then the central claim of principled, retraining-free topology guidance lacks its theoretical foundation. I agree with the reader's conditional verdict rather than moving to reject, because the paper has independent empirical support: the Protein Restoration Task numbers in Table 3, the ProteinMPNN/OmegaFold refolding pipeline, ablations, and the user studies are all consistent with a working conditioning method even if the derivation is incomplete or the formula is best treated as an ad hoc guidance schedule. The missing derivation, the lack of code or weights, and the uncalibrated scTF threshold together justify a conditional acceptance with a request for a corrected derivation and a reproducibility release.","tokens_in":19636,"tokens_out":9537,"duration_ms":80548,"concrete_test":"Re-derive Eq. 13 from Eq. 11 and Eq. 5 using the paper's own phi_lambda(z) = lambda*z. The exact ILVR-style update is z_{t-1} = lambda*y_{t-1} + (1-lambda)*(A*z0 + B*z_t + sigma*epsilon), which differs from Eq. 13 in the A*z0 coefficient, the noise term, and the placement of B. To settle whether the difference is numerically negligible, run a one-dimensional Gaussian DDPM with known z0 and the paper's beta schedule; at t=1 and t=10, draw 10^4 posterior samples and compute the relative error between both sides of Eq. 12, and the mean squared difference between Eq. 13 and the exact conditional sample. If the errors are O(1), the derivation gap is real and the conditional-sampling claim in Eq. 10 is unsupported; if the errors are near zero, the approximation is benign and the concern does not land.","verdict_should_be":"UNCHANGED","load_bearing_attack":"The central guidance mechanism is the interpolation rule Eq. 13 in Section 3.2. It is justified by Eq. 12, which states that phi(z'_{t-1}) equals sqrt(alpha_t(1-alpha_{t-1})/(1-alpha_t)) * phi(z_t). This does not follow from the posterior in Eq. 5. A sample from that posterior has the form z'_{t-1} = A*z0 + B*z_t + sigma*epsilon, with A = sqrt(alpha_{t-1}*beta_t)/(1-alpha_t), B = sqrt(alpha_t*(1-alpha_{t-1}))/(1-alpha_t), and epsilon standard normal. Applying any linear phi gives phi(z'_{t-1}) = A*phi(z0) + B*phi(z_t) + sigma*phi(epsilon). Eq. 12 keeps only the B term, silently dropping A*phi(z0) and the filtered noise. These omissions are not negligible near t=1, where A is O(1) and the posterior noise is not small. There is a second, independent problem: the paper defines phi_lambda(X_t) = lambda*z(X_t), scalar scaling of the C-alpha coordinates, not a low-pass projection. The ILVR replacement identity Eq. 11 enforces phi(x_{t-1}) = phi(y_{t-1}) only when phi is idempotent, which scalar scaling is not (phi(phi(z)) = lambda^2 z, not lambda z). Thus Eq. 13 is not a consequence of Eq. 11 and Eq. 12, and the paper does not define the conditional distribution q(y_{t-1}|y, zhat0) invoked in Eq. 7. The generated backbones are therefore not shown to be samples from the intended conditional distribution; the empirical results may still hold, but the principled derivation of the retraining-free guidance is missing.","agreement_with_reader":"agree"},"referee_report":{"model":"deepseek-v4-flash","summary":"The paper proposes ProtPainter, a two-stage diffusion-based method for generating protein backbones conditioned on 3D curves. In the first stage, a CurveEncoder predicts secondary-structure labels from an input curve, and a naive sketch is generated parametrically. In the second stage, a DDPM backbone generator is guided by this sketch via a retraining-free interpolation rule, with a Helix-Gating schedule that controls how strongly the sketch is fused during sampling. The authors introduce the Protein Restoration Task and a self-consistency Topology Fitness (scTF) metric, and report that ProtPainter achieves scTF above 0.8 and scTM above 0.5 on their benchmark, along with demonstrations of drawing, dragging, jointing, and SSE editing.","tokens_in":20025,"tokens_out":8150,"duration_ms":70113,"significance":"If the method is sound, the curve-based conditioning modality is a genuinely useful interface for protein topology control, and the proposed benchmark and scTF metric could support future work in this direction. The scTM-based designability evaluation provides an independent signal that is not reducible to the conditioning objective, and the user-study results with curves drawn from scratch are a valuable practical demonstration. However, the central derivation of the guided-sampling update is incomplete, and parts of the evaluation are self-referential because scTF measures agreement with the same curve that the guidance explicitly targets and because key hyperparameters and thresholds are selected on the evaluation benchmark. The empirical results may still hold, but the paper currently does not establish the theoretical grounding claimed in Section 3.2.","major_comments":[{"comment":"Equation (12) does not follow from Equation (5). Applying any linear operation φ to a sample from the posterior in Eq. (5) gives φ(z'_{t-1}) = [√(α_{t-1}β_t)/(1−α_t)] φ(z0) + [√(α_t(1−α_{t-1}))/(1−α_t)] φ(z_t) + φ(σ_t ε), where ε is the posterior sampling noise. The derivation keeps only the middle term, silently dropping the z0 term and the filtered noise; near t=1 the z0 term is O(1) and the noise is not negligible. Since Eq. (13) is the core interpolation rule of the guidance, this omission is load-bearing: the manuscript does not establish that the procedure samples the conditional distribution announced in Eq. (7). The authors should either provide a correct derivation under explicit assumptions or explicitly present Eqs. (11)–(13) as a heuristic guidance rule supported by empirical validation.","section":"Section 3.2, Eq. (12)"},{"comment":"The conditional distribution q(y_{t-1}|y, ẑ_t^0) in Eq. (7) is never defined, and the filter φ is introduced as a \"linear low-pass filtering\" operation but then defined as φ_λ(X_t) = λ z(X_t), which is a scalar rescaling of the Cα coordinates, not an idempotent low-pass projection. Because scalar rescaling satisfies φ(φ(z)) = λ² z rather than φ(φ(z)) = φ(z), the ILVR replacement identity in Eq. (11) does not enforce φ(x_{t-1}) = φ(y_{t-1}) as claimed. Additionally, Eq. (14) defines y_{t-1} deterministically as a scaled version of y, rather than as a draw from q. The authors should either supply a correct derivation with a clearly defined idempotent filter and conditional distribution, or reframe the whole guidance mechanism as a heuristic and move the theoretical claim to the empirical evaluation.","section":"Section 3.2, Eqs. (7), (11), (14)"},{"comment":"The headline evaluation is partly self-referential. scTF measures Procrustes agreement between the generated or refolded backbone curve and the same condition curve that the guidance explicitly tries to match, so high scTF is close to a construction check. The threshold scTF > 0.8 and the hyperparameters λ = 2/3, γ = 0.2, η = 0.7 are selected using the Protein Restoration Task benchmark on which the reported numbers are computed (Table G.5, Figure 13). The scTM and pLDDT results provide an independent designability signal, but the \"state-of-the-art control\" claim rests on scTF. Please report results with hyperparameters fixed before evaluation or on a held-out split, and show that the reported margins are insensitive to the scTF threshold and to reasonable variations of λ, γ, and η.","section":"Section 4.1 and Appendices G.5/G.6"}],"minor_comments":[{"comment":"The condition \"if pθ(r_{t−1}|x_t) = pθ(r_{t−1}|x_t,c_T)\" makes the preceding equality tautological; the intended independence assumption between rotation and translation updates should be stated explicitly and justified.","section":"Section 3.2, Eq. (9)"},{"comment":"The notation z′_t in Eq. (13) is inconsistent with z′_{t−1} in Eq. (11); please clarify whether the update uses the unconditional sample at time t−1 or the current noisy coordinate z_t.","section":"Section 3.2, Eq. (13)"},{"comment":"The phrase \"confidential phase\" appears to be a typo for \"confidence phase\" (and \"confphase\" in Figure 2); please correct it throughout.","section":"Section 3.3 and Figure 2"},{"comment":"The header of Table 1 lists six CATH IDs but seven numeric entries; the column alignment should be fixed so that each topology family has exactly one count and one set of scTF values.","section":"Table 1"},{"comment":"The citation \"Zhang et al.\" is ambiguous because it is used for multiple distinct works (TopoDiff and the GPCR review); please disambiguate with different citation keys or full author lists.","section":"References"},{"comment":"The sentence \"The translation part is generated from the 3D Gaussian noise by DDPM\" should clarify that translations use the DDPM posterior in Eq. (4) while rotations are sampled by Brownian motion on SO(3); as written it could be read as applying DDPM to the full frame.","section":"Section 3.2, first paragraph"},{"comment":"The axis label \"Number of Inversion steps t\" is unclear; please specify whether t increases from noise to clean signal or vice versa, and whether \"inversion\" refers to the reverse diffusion process.","section":"Figure 12.d"}],"recommendation":"major_revision","confidential_remarks":"This manuscript is an ICLR 2025 conference paper submitted to a journal. The main concern is not the empirical demonstrations, which are potentially valuable, but the unsupported derivation of the guidance update in Section 3.2 and the self-referential evaluation of the headline scTF numbers. Both issues are fixable within the scope of a revised manuscript: the guidance can be presented honestly as a heuristic with thorough empirical support, and the evaluation can be made robust to hyperparameter and threshold choices. I therefore recommend major revision rather than rejection."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Honest take: the new bit is real—nobody has conditioned protein backbone diffusion on arbitrary 3D curves before—and the qualitative demos (drag, joint, hinge) are the most useful part. But the central guidance update, Eq. 13, is not derived. The step from Eq. 5 to Eq. 12 drops the z0 term and the posterior sampling noise, and the filter phi is scalar scaling, not the idempotent low-pass filter that ILVR-style replacement requires. So as written, the 'retraining-free sketch-guided sampling' is a heuristic with a bogus derivation, not a conditional posterior sampler. That doesn't kill the empirical claim—the results might be reproducible and the heuristic may work—but it means the paper's theoretical framing is wrong.\n\nWhat's genuinely good: the curve representation itself, the CurveEncoder that predicts SSE from a curve, the sketching pipeline, and the benchmark (Protein Restoration Task with scTF). The comparison against RFDiffusion, Chroma, and TopoDiff is reasonable, and the numbers are strong on scTF, though ProtPainter's scTM is lower than RFDiffusion on the same folds—so it's a fidelity/designability tradeoff, which is worth saying out loud.\n\nSoft spots beyond Eq. 12: scTF is a self-defined metric with a threshold (0.8) chosen from the same data, and the guidance hyperparameters lambda, gamma, eta are tuned on the same evaluation datasets. No code or weights are released, so the quantitative case is not independently checkable. Also, the conclusion says beta-sheet work is future, yet Appendix K already shows beta-sheet examples; that's a minor internal inconsistency.\n\nMy read: the empirical core is likely salvageable, and the paper deserves serious refereeing, not desk rejection. But the derivation must be fixed or explicitly downgraded to a heuristic, and the authors need to release code and pre-trained weights. If I were the editor, I'd send it to reviewers with a note to focus on Section 3.2 and the metric choices.\n\nWho's this for: people building controllable protein generators or benchmarking topology-conditioned design. It's not a foundational generative-methods paper; it's an applications/interface paper with a flawed proof. Cite it in a related-work context, but don't build on Eq. 13.","headline":"A genuinely useful new conditioning modality for protein backbones, with strong visual demos, but the central guidance derivation (Eq. 13) is wrong and the evaluation is partly self-referential.","tokens_in":20591,"tokens_out":4822,"would_cite":false,"duration_ms":39609,"reading_group":"maybe","serious_thinker":"no","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"ProtPainter claims that a 3D curve is a sufficient condition for controlling protein backbone topology: the pipeline sketches the curve into a scaffold, then steers a denoising diffusion sampler so the backbone fits the curve (scTF > 0.8)…","keywords":["protein backbone generation","diffusion model","3D curve conditioning","topology-guided design","secondary structure annotation","protein drawing and dragging","Protein Restoration Task","self-consistency Topology Fitness"],"falsifier":"Run the base DDPM's reverse transition many times from a fixed noisy backbone $z_t$, apply the frame filter $\\phi$ (Cα coordinates scaled by $\\lambda$), and compare the empirical distribution of $\\phi(z'_{t-1})$ with the right-hand side of Eq. 12. The reverse step injects Gaussian noise of variance $\\tilde\\beta_t$ that the linear filter does not remove, and the posterior mean also contains a $\\phi(\\hat z_0)$ term, so the two sides should differ by a measurable residual of order $\\lambda\\sqrt{\\tilde\\beta_t}$; a material residual would show that Eq. 13 is a heuristic blend rather than the claimed conditional posterior.","tokens_in":19410,"feed_emoji":"🧬","tokens_out":19576,"duration_ms":152492,"temperature":0.7,"pith_summary":"ProtPainter's claim is that a simple 3D curve — drawn by hand, dragged from an existing protein, or extracted from one — is a sufficient condition for controlling what fold a diffusion model generates. The paper builds a two-stage pipeline: a CurveEncoder annotates the curve with secondary-structure labels and produces a parametric sketch, and a denoising diffusion sampler is then steered, without retraining, so that the Cα coordinates of the generated backbone track the sketch through a low-pass-filter interpolation rule with a helix-percentage gating schedule. To make the claim testable, the paper introduces the Protein Restoration Task — regenerate designable backbones from curves taken from reference proteins — and a new metric, scTF, which scores topological fit by Procrustes alignment of curve-level abstractions. On that benchmark it reports backbones clearing the authors' thresholds for topology fit (scTF > 0.8) and designability (scTM > 0.5) at rates well above sequence-length, SSE, point-cloud, and latent-topology baselines, and it shows the same curve mechanism supporting drawing, dragging, jointing, and local SSE editing. The reason to care is that this moves structural control from parametric blueprints toward direct geometric manipulation: a designer sketches or edits a shape instead of configuring a list of secondary-structure parameters.","feed_headline":"Draw a curve and ProtPainter builds a designable protein around it","feed_subtitle":"The diffusion pipeline turns hand-drawn or dragged 3D curves into backbones that keep their shape after refolding.","key_machinery":"The load-bearing object is the sketch-guided interpolation rule, Eq. 13: the denoised translation at each reverse step is $$z_{t-1}=\\frac{\\sqrt{\\alpha_{t-1}\\beta_t}}{1-\\alpha_t}\\hat z_0+\\frac{\\sqrt{\\alpha_t(1-\\alpha_{t-1})}}{1-\\alpha_t}\\big((1-\\$\\lambda$)z'_t+\\$\\lambda$ y_{t-1}\\big),$$ a blend of the RoseTTAFold-estimated clean structure $\\hat z_0$ and an interpolation between the unguided current translation $z'_t$ and the sketch coordinates $y_{t-1}$, with $\\lambda$ trading diversity against guidance. The rule is derived by adapting the low-pass-filter conditioning of Choi et al. (ILVR): a linear filter $\\phi$ (here the Cα-coordinate extraction scaled by $\\lambda$) is assumed to pass through the reverse posterior sample, so the conditioned sample can be written as the unconditioned sample with its filtered part replaced by the filtered sketch. A second named mechanism, Helix-Gating, schedules when the sketch is trusted: while the helix percentage of $\\hat z_0$ falls below the sketch's, guidance is scaled by $\\gamma\\,\\delta(O(\\hat z_0),O(y))+\\eta$ (the 'confidential' phase), and full guidance is applied once it catches up. The supporting objects are the curve representation itself — helices and sheets abstracted to central axes, loops preserved, then re-sampled and SSE-annotated — and the new evaluation metric scTF, defined as $1-\\text{disparsity}$ under Procrustes alignment of the two down-sampled curves.","core_discovery":"On its own terms, the discovery is that the three-dimensional topology of a protein backbone can be specified by a coarse 3D curve, and that a diffusion model can be made to honor that curve by a retraining-free mechanism. The condition curve is abstracted from helices and sheets as their central axes, with loops kept and the whole re-sampled and annotated with SSE labels. ProtPainter then (i) encodes the curve into a naive sketch whose helix pitch, loop spacing, and sheet placement follow parametric rules, and (ii) during DDPM reverse sampling replaces the filtered part of the unguided translation update with the filtered sketch coordinates, blending the two under a scaling factor λ while a Helix-Gating schedule limits guidance until the helix percentage of the current RoseTTAFold prediction catches up to the sketch's. The reported consequence is that generated backbones match the conditioning curve at the topology level — scTF above 0.8 — and remain designable through the standard ProteinMPNN and OmegaFold refolding cycle, with scTM above 0.5 in the majority of benchmark cases, outperforming the compared baselines in fit designability. Because the guidance is a post-hoc interpolation rather than a trained conditioner, the same base sampler also supports curve-based editing operations such as dragging, rotating, jointing, and local SSE editing while preserving designability.","pith_inferences":["The guidance acts only on the translation channel and leaves rotations to the unconditional model (Eqs. 9–10); an untested corollary is that Cα placement alone suffices to steer fold topology, which could be checked by comparing residue-orientation quality near the condition curve against the unguided base model.","The interpolation rule is derived from a commutation assumption about a linear filter, not from properties specific to DDPM, so the same recipe should transfer to flow-matching backbone generators with a coordinate channel; testing that transfer would show whether the mechanism is tied to the noise schedule.","Helix-Gating embodies a general principle — keying condition strength to a coarse geometric descriptor of the current prediction — and the paper's own deferral of β-sheet control suggests the natural extension is gating on sheet or loop content rather than helix percentage.","The noise-perturbation results (fit designability holds up to roughly 2 Å of point noise before degrading) imply the generator behaves as an attractor that repairs small drawing errors; if deliberate user studies confirm it, curve interfaces would not need to be precise to be useful."],"forward_implications":["A designer can specify a protein's fold by drawing or dragging a 3D curve and still land in the standard design cycle: the generated backbones pass through ProteinMPNN sequence design and refold to structures matching the curve, with scTM above 0.5 and high pLDDT in the reported cases.","Curve operations — dragging, rotating, jointing, and local SSE editing — yield topology transitions between designable states, so multi-state and hinge-like scaffolds can be explored by editing a curve rather than reconfiguring a parametric blueprint.","Because the guidance is a retraining-free interpolation into an existing DDPM sampler, adding a new condition type only requires a curve encoder and filter that align the new condition to the frame space, while the denoiser itself is untouched.","The Protein Restoration Task and the scTF metric give the field a common yardstick: any future topology-conditioned generator can be scored by how well its backbones restore curves from reference proteins and survive refolding.","Since scTF correlates with scTM in the paper's joint analysis, topology fitness doubles as a rough designability screen: a curve that cannot be restored with high scTF is unlikely to describe a designable backbone."],"supporting_citations":[{"why":"Supplies the DDPM forward and reverse equations (Eqs. 1–3) that the guided sampler modifies.","marker":"[Ho et al., 2020]"},{"why":"Supplies the low-pass-filter conditioning approximation (Eq. 8) that ProtPainter adapts to protein frames.","marker":"[Choi et al., 2021]"},{"why":"Supplies the frame representation, RoseTTAFold-estimated $\\hat z_0$ for translational guidance, and the main baseline model.","marker":"[Watson et al., 2023]"},{"why":"Supplies the equivariant graph layers used in the CurveEncoder's SSE prediction.","marker":"[Satorras et al., 2021]"},{"why":"Inspires the CurveEncoder's structure-graph feature extraction from curve coordinates.","marker":"[Greener & Jamali, 2022]"},{"why":"Supplies the parametric sketch construction that places SSEs along the annotated curve.","marker":"[Harteveld et al., 2022]"},{"why":"Supplies the self-conditioning scheme used with the RoseTTAFold $\\hat z_0$ estimates.","marker":"[Chen et al., 2022]"},{"why":"ProteinMPNN sequence design in the refolding pipeline that produces the scTM designability scores.","marker":"[Dauparas et al., 2022]"},{"why":"OmegaFold structure prediction used for the self-consistency metrics (scTM, scRMSD, scTF).","marker":"[Wu et al., 2022]"},{"why":"Establishes the Procrustes superimposition on which the scTF topology-fitness metric is built.","marker":"[Peres-Neto & Jackson, 2001]"}],"fun_headline_variants":["Sketch a protein: ProtPainter draws backbones from 3D curves","Drag a helix, fold a protein: diffusion obeys your curve","Topology-guided diffusion turns curves into designable proteins","Curve-to-backbone: ProtPainter's diffusion honors your sketch"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The steering rule assumes that the random noise added at each denoising step disappears once the backbone is smoothed down to its curve-level view, which is what lets the method replace the filtered unguided sample with the filtered sketch; if that assumption fails, the interpolation used for guidance is not drawing samples from the conditional distribution the paper claims.","fun_headline_variants_meta":{"raw":{"variants":["Sketch a protein: ProtPainter draws backbones from 3D curves","Drag a helix, fold a protein: diffusion obeys your curve","Topology-guided diffusion turns curves into designable proteins","Curve-to-backbone: ProtPainter's diffusion honors your sketch"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000302,"raw_usage":{"total_tokens":1781,"prompt_tokens":1029,"completion_tokens":752,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":645,"completion_tokens_details":{"reasoning_tokens":676}},"tokens_in":645,"tokens_out":752,"duration_ms":7574,"temperature":1.0,"reasoning_tokens":676,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-16T11:53:18.417765+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Run the base DDPM's reverse transition many times from a fixed noisy backbone $z_t$, apply the frame filter $\\phi$ (Cα coordinates scaled by $\\lambda$), and compare the empirical distribution of $\\phi(z'_{t-1})$ with the right-hand side of Eq. 12. The reverse step injects Gaussian noise of variance $\\tilde\\beta_t$ that the linear filter does not remove, and the posterior mean also contains a $\\phi(\\hat z_0)$ term, so the two sides should differ by a measurable residual of order $\\lambda\\sqrt{\\tilde\\beta_t}$; a material residual would show that Eq. 13 is a heuristic blend rather than the claimed conditional posterior.","supporting_citations":[{"cited_title":"Ilvr: Conditioning method for denoising diffusion probabilistic models","cited_arxiv_id":null,"evidence_quote":"Supplies the low-pass-filter conditioning approximation (Eq. 8) that ProtPainter adapts to protein frames."},{"cited_title":"Fast protein structure searching using structure graph embeddings","cited_arxiv_id":null,"evidence_quote":"Inspires the CurveEncoder's structure-graph feature extraction from curve coordinates."},{"cited_title":"A generic framework for hierarchical de novo protein design","cited_arxiv_id":null,"evidence_quote":"Supplies the parametric sketch construction that places SSEs along the annotated curve."},{"cited_title":"How well do multivariate data sets match? the advantages of a procrustean superimposition approach over the mantel test","cited_arxiv_id":null,"evidence_quote":"Establishes the Procrustes superimposition on which the scTF topology-fitness metric is built."}],"review_version":1}