Tutorial 7 — Continuous Synthesis through an analytic tunnel (cosmo-cylinder)

Goal: synthesize a nascent chain residue by residue with codon-resolved kinetics, confining it with an analytic cylindrical tunnel instead of explicit ribosome beads. This is the tunnel-geometry half of the O’Brien Continuous Synthesis Protocol ported to COSMO’s IDP force field (cosmo.csp, mirroring topo.csp). Its sibling — the same protocol on an explicit coarse-grained ribosome — is Tutorial 8.

Unlike topo’s structure-based csp (native contacts, STRIDE, rigid AllBonds), COSMO’s port is sequence-based: no STRIDE, no domain.yaml, no native-contact map — the nascent chain is a transferable HPS/mpipi IDP that grows N→C at the peptidyl-transferase center (PTC) and extrudes down the analytic bore.

This is a proof of concept. The settings here check that the machinery builds, times, runs and writes outputs end to end in seconds on CPU. They are deliberately tiny (short L range, clamped max_steps_per_stage) and are not a physical/scientific validation.

Prerequisites: the coarse-grained workflow of Tutorial 1 and the force fields of Tutorial 2. This tutorial confines the nascent chain with an analytic cylindrical bore (no explicit ribosome beads) — the ribosome-free confinement path of cosmo.csp.

Nascent chain: α-synuclein (asyn.pdb, 140 residues, from Tutorial 1).

The model

No ribosome beads. An analytic cylindrical bore of radius tunnel_radius through an otherwise infinite wall (a “hole in a wall”) supplies the radial confinement; the chain extrudes along +x. Because the wall is a smooth potential rather than discrete beads, it is fast and never jams. Each residue is grown, seeded from the previous length, restrained at the new C-terminus, minimized, and run for one MD segment whose length is set by the codon’s translation time.

Files

File

Role

asyn.pdb

Full-length nascent protein (only the first L residues exist at each length).

mrna.txt

Demo mRNA (140 cycled sense codons + UAA stop) — times each residue.

cylinder.ini

Analytic-tunnel config (model = hps_kr, per-codon mRNA + the E. coli 310 K table from assets/csp/codon_dwell_times/, then ejection + dissociation free runs).

Run it

cd tutorials/07_csp_cylinder

python -m cosmo.csp.cylinder -f cylinder.ini    # -> synth_out_cyl/L_<L>/
#   installed console script:  cosmo-cylinder -f cylinder.ini

The config defaults to device = CPU so it runs anywhere; switch to device = GPU for a real run. Kinetics are per-codon: mrna.txt gives the codon sequence and codon_times points at the E. coli 310 K translation-time table under assets/csp/codon_dwell_times/. max_steps_per_stage clamps each residue’s dwell (otherwise ~10⁶ steps) down to a traceable test size — raise it, extend L_max, and switch to GPU for production.

Stitch a movie

python -m cosmo.csp.movie -o synth_out_cyl      # layout auto-detected
#   installed console script:  cosmo-csp-movie -o synth_out_cyl

Writes a fixed-width VMD-playable movie (movie.dcd / movie.psf / movie.tcl) that plays the growing chain length by length.

What it produces

  • synth_out_cyl/L_005/ L_010/ — one folder per chain length, each with the MD trajectory and the nascent structure at that length.

  • synth_out_cyl/ejection/ then synth_out_cyl/dissociation/ — the post-synthesis free runs: the C-terminus restraint is dropped (ejection_steps) so the finished chain diffuses out of the bore, then a second free run (dissociation_steps) lets it drift fully clear. Set either to 0 to skip.

  • synth_out_cyl/dwell_times.dat — per-residue codon + dwell-time table; the per-codon variation is visible here (e.g. AUU ≈ 2 ms vs. CGU ≈ 72 ms).

Generated synth_out_*/ directories are git-ignored (bulky trajectories/checkpoints). Delete them and re-run to reproduce.

Where this sits in the series

Tutorials 7–10 explored how to confine the nascent chain. cosmo.csp consolidates those into one package with codon-resolved O’Brien kinetics and post-elongation phases. This tutorial is its analytic-tunnel mode; the explicit coarse-grained ribosome mode is Tutorial 8.