Synthesis through an analytic tunnel (cylinder model)¶
The cylinder runner is the analytic-tunnel variant of protein synthesis: it replaces the explicit coarse-grained ribosome of the coarse-grained ribosome model with a cylindrical bore drilled through an infinite wall (a “hole in an infinite wall”). There are no ribosome beads — the simulated system is the nascent chain only — so it is fast, never jams on ribosome excluded volume, and the analytic tunnel keeps the in-tunnel segment extended so the chain threads out the exit.
CLI:
cosmo-cylinder -f cylinder.ini(orpython -m cosmo.csp.cylinder -f cylinder.ini)Worked example:
tutorials/07_csp_cylinder/(α-synuclein); a larger production configuration lives insandbox/validate/cylinder.ini.Module:
cosmo.csp.cylinder— a parallel of the explicit-beadcosmo.csp.protocol. It reuses the shared enginecosmo.csp.core(length model, seed / restrain / output path) and the timing corecosmo.csp.kinetics, adding only the one analytic tunnel force (add_tunnel_cylinder) and a nascent-only synthesis loop.
Tip
Same codon kinetics as the coarse-grained-ribosome runner (cosmo-csp) — each
residue’s MD length comes from its codon dwell time — but the cylinder runs one MD
segment per residue rather than three sub-stages, because the analytic tunnel has no A→P
translocation to model. For the full kinetics derivation (codon → seconds → integration
steps) see the coarse-grained ribosome page; this page
describes the tunnel model and the cylinder.ini options.
Note
Why the cylinder exists. The explicit-bead exit tunnel in the truncated CG ribosome is geometrically tight, and a disordered chain tends to jam or ball up at the PTC rather than thread it. The analytic bore is a clean idealization that reliably extrudes an IDP chain — purely steric, no electrostatics, no bead clashes.
Quick start¶
cd tutorials/07_csp_cylinder
cosmo-cylinder -f cylinder.ini # -> synth_out_cyl/
cosmo-csp-movie -o synth_out_cyl --tunnel cylinder.ini # stitch + draw the analytic tunnel
cd synth_out_cyl && vmd -e movie.tcl # movie.tcl loads its files by basename
cosmo-cylinder writes, per residue L, a standalone trajectory under <outdir>/L_<L>/,
optional post-synthesis phases (stall/, ejection/), and a per-residue
dwell-time log <outdir>/dwell_times.dat.
The model: analytic exit tunnel¶
The tunnel is a cylindrical bore of radius r along the X-axis, drilled through an
infinite wall from the closed PTC end (x_lo) to the exit face
(x_exit = x_lo + tunnel_length):
d (cytosol: free, any d)
^ |##### solid ribosome S #####|
r |···|············ bore ··········|··············> allowed past exit
+---|----------------------------|----------------> x
x_lo (PTC) x_exit
|##### solid ribosome S #####|
^ infinite exit-face wall (d > r)
A single CustomExternalForce over every nascent bead penalises its penetration depth
into the solid region S:
S = { x < x_exit AND d > r } ∪ { x < x_lo }, d = |(y,z) − (y0,z0)|
U = k·max(0, pen)² + k·min(0, x − x_lo)²
pen = (rounded) min( x_exit − x , d − r ) # 0 outside S; > 0 inside S
A bead escapes S via whichever face is nearer — the bore wall (d − r, a radial
inward push that keeps the in-tunnel chain extended) or the exit face (x_exit − x, a
+x push), so a cytosol bead can only re-enter through the bore, never off-axis. The 90°
inner corner at the mouth is rounded by a fillet of radius rho = tunnel_mouth_round so the
potential stays continuous and the MD stays stable.
The C-terminus is position-restrained on the tunnel axis at the PTC (x_lo, y0, z0)
(stiffness restraint_k). Each new residue is seeded one equilibrium peptide bond
deeper than that rest point — toward the closed PTC end — so the new L-1↔L bond
starts at its equilibrium length instead of collapsed onto the previous C-terminus; the
restraint and the closed-end wall then lift the new residue back onto the PTC while the
older chain ratchets forward. (This is the analytic-tunnel analogue of the explicit
protocol’s A/P-site offset, without the ribosome, and is what keeps a rigid AllBonds
build stable here too.) There is no A/P tRNA tether and no translocation switch — the
chain simply extrudes forward as it grows.
Note
How it differs from the coarse-grained ribosome model.
(1) No ribosome PDB — the tunnel is analytic, its geometry set by the tunnel_* keys.
(2) One MD segment per residue (no peptidyl-transfer / translocation / tRNA-binding
sub-stages), so time_stage_1 / time_stage_2 are inherited but unused — the whole
codon dwell is a single segment. (3) The post-synthesis phases are stall_steps (hold at
the PTC with the C-terminus restraint still on — ribosome stalling) then ejection_steps
(free run, dropping the C-terminus restraint) — same keywords as the explicit-ribosome
runner. (4) The explicit-ribosome
knobs (trna_tether, tunnel_wall) and the always-on PTC-geometry optimization do not apply.
(5) Purely steric — no ribosome electrostatics.
Configuration¶
Read by cosmo.csp.cylinder.read_cylinder_config. Every control key is documented in
one place: Synthesis control options — the shared keys (inputs, kinetics, integrator,
post-synthesis, resume) plus the Cylinder-runner-only tunnel_* geometry keys
(tunnel_radius, tunnel_length, tunnel_x_lo, tunnel_center, tunnel_k,
tunnel_mouth_round) that define the analytic bore. A runnable cylinder.ini example is
on that page and in tutorials/07_csp_cylinder/.
Two cylinder-specific points: there is no ribosome PDB (the tunnel is analytic), and
time_stage_1 / time_stage_2 are accepted but have no effect — with a single MD
segment per residue the whole codon dwell τ is one segment, not a three-way split.
Outputs¶
<outdir>/
├── L_<L>/ # one folder per residue L (single MD segment)
│ ├── traj.dcd # (nascent-only) trajectory for that length
│ ├── traj_final.pdb # last conformation (seeds the next residue)
│ └── traj.log, traj.psf, ...
├── stall/ # held at PTC, restraint on (if stall_steps > 0)
├── ejection/ # free run, restraint off (if ejection_steps > 0)
├── dwell_times.dat # per-residue: codon, sampled dwell (s), ns, integration steps
└── progress.log # append-only DONE/RUNNING resume status
Movie. cosmo-csp-movie -o <outdir> --tunnel cylinder.ini stitches the per-length
trajectories (it auto-detects the flat L_<L>/ layout used here vs. the 3-stage layout of
cosmo-csp) and draws the analytic tunnel — bore tube, closed PTC cap, and the
infinite exit-face wall — reading the geometry from the same cylinder.ini. Omit
--tunnel for a plain movie. For the interactive vs. cd <outdir> recipe, see
Visualizing the synthesis process.
Resume. Like cosmo-csp, an interrupted cylinder run continues from the last
completed residue when re-invoked (resume = auto, on by default) — the schedule is
re-read from dwell_times.dat and the seed reloaded from the last L_<L>/traj_final.pdb,
tracked by progress.log. See Resuming long synthesis runs.
See also¶
Synthesis on a coarse-grained ribosome — the explicit coarse-grained ribosome runner (
cosmo-csp): the same codon kinetics with three MD sub-stages per residue and an explicit-bead tunnel.Synthesis control options — the shared kinetics / MD control options in full.
cosmo.csp package — the API reference.