Changelog¶
All notable changes to TOPO are documented here. The format is loosely based on Keep a Changelog; releases correspond to git tags.
[Unreleased]¶
[2026.3] — 2026-07-21¶
Headline: SAXS-calibrated IDR defaults — a generic cohesion term and transferable van der Waals radii bring disordered-chain dimensions in line with experiment, and TOPO is now described as a unified model for globular and disordered proteins.
Added¶
Generic cohesion for disordered regions. The IDR–IDR well depth is now
max(eps_NN, eps_gen + idr_scale * eps_BT): a sequence-independent generic termeps_gen_kj(new optionaldisordered:key) added to the sequence-dependent BT sidechain–sidechain energy.eps_gensets the overall level of collapse and is the knob to turn first when tuning how compact a disordered chain is;eps_BTmodulates it by residue-pair type.
Changed¶
IDR defaults are now SAXS-calibrated (behavior change).
eps_gen_kjdefaults to 2.25 kJ/mol andidr_scaleto 1.0 (was0.03, i.e. the sequence-dependent BT term now enters at full strength). The pair was calibrated against SAXS radii of gyration for 24 fully-disordered proteins (90 ns each): RMS fractional Rg error 33%, Pearson r 0.79, OLS slope 0.71 — comparable to the HPS-Urry force field (29% / 0.69 / 0.54) on the same benchmark. See the new Validation against SAXS section ofusage/disordered_regionsfor the plot and protocol. A run with adisordered:section that omits these keys will produce substantially more compact ensembles than before; pineps_gen_kj/idr_scaleexplicitly to reproduce older results, and do not mix old and new IDR trajectories in one analysis.idr_scale: 0alone is no longer a self-avoiding chain. Becauseeps_gen_kjnow defaults to 2.25, a pure self-avoiding chain requires bothidr_scale: 0andeps_gen_kj: 0.IDR well positions use a transferable per-AA van der Waals radius. Disordered residues now carry
rvdw(~11% tighter than the bareRmin/2they used before), and pair wells are the plain sum of per-bead radii. A folded bead keeps its native Karanicolas–Brooks radius in folded–IDR cross pairs (previously it was also shrunk). Folded–folded pairs are unchanged. The same radius now reaches both the intra-chain and nascent↔ribosome excluded-volume channels consistently. Seeusage/disordered_regionsfor howrvdwis derived.TOPO is now described as “a unified coarse-grained model for globular and disordered proteins.” The old tagline (“TOPOlogy-based coarse-grained model for folded prOteins”) predated IDR support and undersold what the model covers; the acronym expansion is dropped and TOPO is simply the name. Applied across the README, docs,
pyproject.tomldescription, module docstrings, andCITATION.cff(title + abstract, so the next Zenodo release deposits under the new name).
Fixed¶
Minimizer no longer spins forever when the max force cannot reach the 10 kJ/mol/nm target: the tolerance loop now exits at the floor and reports progress per iteration.
model_parametersuses standard average residue masses.
Docs¶
usage/model_theoryper-residue table corrected. The masses were stale and several were plain wrong (ARG 114 → 156.19, HIS 114 → 137.14, PRO 114 → 97.12, CYS 114 → 103.14, ASP, GLU, GLN); theRadii (nm)column was neither the right header nor the right numbers — it isRmin_2and the values were ~1.8× too large (ALA 0.504 → 0.2862). All 20 rows now matchmodel_parametersexactly.Rmin_2is documented as a transferable parameter. New section explaining that the table is per residue type and is used only where a bead has no native structure to measure (ribosome scenery, IDR beads, the nascent-chain fallback) — a folded domain never uses it, taking per-residue Karanicolas–Brooks radii from the input structure instead.The contact-potential pair-class table covers disorder. It previously listed only native and non-native pairs; IDR–ordered (excluded volume, folded bead keeps its K–B radius) and IDR–IDR (
rvdwsum,max(eps_NN, eps_gen + s_IDR * eps_BT)) are now spelled out alongside them.IDP/IDR support is stated up front in the README,
index,overview,modules/introduction, andusage/model_theory, which all described TOPO as folded-proteins-only. Removed the note inmodules/introductionclaiming COSMO was the more appropriate tool for disordered proteins — TOPO handles them.Removed the stale “Heads-up for readers of older docs” note about a Gaussian-quartic dihedral, and rendered the 12-10-6 equations with proper fractions.
[2026.2] — 2026-07-18¶
Headline: intrinsically disordered regions (IDRs) in the Cα model, together with a per-part tutorial reorganization and a round of optimizer / config refinements.
Added¶
Disordered / IDR regions. An optional
disordered:section in thedomain_defYAML marks residues whose native contacts are removed and replaced by a weak, non-specific attraction. One knob —idr_scale(default0.03;0= a pure self-avoiding chain). The mask reaches the energy path (apply_disorder), the native-contact (Q) analysis, and the nscale optimizer (IDR-involving contacts are excluded from Q), and continuous synthesis gets it for free — all from the single section. Folded-only runs (nodisordered:section) are byte-for-byte identical.intra_domainsis now optional, so a fully-disordered chain needs onlydisordered:+n_residues.Tutorial A.7 — a protein with IDRs (mixed folded + disordered, P28566) and a Disordered / IDR regions user guide (how the model treats each pair class, how to write the
disordered:section, and sourcing IDR ranges via MobiDB or the AlphaFold pLDDT < 70 proxy).IDR build-log reporting: a compact, range-collapsed domain/IDR overlap notice, and an “IDR masking” line reporting how many input-structure native contacts are excluded vs kept.
Changed¶
Tutorials renumbered to a per-part scheme: Part A
A.1–A.7, Part BB.1–B.2(folders and doc stubs renamed accordingly, cross-references updated).Optimizer / config: control files no longer need an
[OPTIONS]header; each round’smd.iniis headerless;outdiris a control key; STRIDE is computed once into the optimization root and reused every round; the--pythonflag was dropped.Default protocol:
md_steps10 000, output frequency 5000, optimizerref_t300 K.Internal refactors: a single
run_strideintopo.utils.external; the non-bonded energy constants flattened into named UPPER_CASE module constants.
Fixed¶
The build-time large-force check prints a concise notice instead of a multi-line
RuntimeWarningfor a benign, unminimized input.
Docs¶
README Citation section with Zenodo DOI badges; the enhanced-sampling and custom-MD examples split into self-contained folders; an optimizer control-options page plus option-table cleanup; stale references to an earlier tutorial layout removed; meta-commentary trimmed across the doc set.
[2026.1] — 2026-07-12¶
Initial tagged release. Releases use CalVer YEAR.N; this first 2026 release
(2026.1) keeps TOPO in lockstep with its
sibling project COSMO (whose cosmo.csp mirrors
topo.csp). This entry summarizes TOPO’s feature set at first release.
TOPO is a topology-based (Gō-like) coarse-grained MD engine for folded proteins, built on OpenMM. From one folded-protein structure it builds a one-bead-per-residue, structure-based model and powers two complementary workflows.
Part A — Folded-protein simulation¶
Structure-based (Gō) model: bonds, angles, sequence-dependent periodic torsions, Debye–Hückel electrostatics, and a native-contact potential (STRIDE secondary structure; PULCHRA back-mapping).
Per-domain contact scaling —
nscaleper domain and per interface via adomain.yamldefinition file.topo-mdrunsimulation runner (md.ini): PBC, Langevin thermostat + barostat, minimization, and checkpoint/restart.Temperature protocols — annealing / quenching (jump and linear-ramp).
Multi-copy runs — pack
n_copiesindependent, non-interacting chains into one system to saturate a GPU and collect N trajectories per run (split_chains).topo-optimize— calibrate per-domainnscalefrom stability criteria.Analysis — native-contact and mirror-image (chirality) detection utilities.
Part B — Co-translational protein synthesis (topo.csp)¶
Grows the nascent chain N→C with codon-resolved kinetics, in two confinement models:
Cylinder model (
topo-cylinder) — an analytic cylindrical exit tunnel (no ribosome beads; fast, never jams).CG-ribosome model (
topo-csp) — an explicit coarse-grained ribosome as rigid scenery, with the 3-stage elongation cycle and the A→P C-terminus switch.
Standalone CG ribosome — no external CHARMM
.cor/.psf/.prmat runtime; the ribosome loads from a truncated CG PDB. Structures are provided for four organisms — E. coli, yeast, N. crassa, and human — swapped via theribosomekey.Per-codon kinetics with dwell-time tables (E. coli, human, yeast, N. crassa); mRNA generator (
topo-make-mrna) in fastest / slowest / median synonymous-codon modes.tRNA tether, rigid-bond (
AllBonds) support, resume (continue from the last completed residue), and a post-synthesis ejection phase.Movie tool (
topo-csp-movie) — stitch per-residue/-stage trajectories into a VMD movie, with--tunnel(analytic tunnel) or--ribosome(CG ribosome) scenery.
Tooling & docs¶
Console commands:
topo-mdrun,topo-optimize,topo-csp,topo-cylinder,topo-csp-movie,topo-make-mrna.Eight hands-on tutorials (single-domain, multidomain, restart, multi-copy, nscale optimization, anneal/quench, cylinder synthesis, ribosome synthesis) and full Sphinx documentation (usage guides + API reference), including a “Visualizing the synthesis process” page.
The CG ribosome pipeline is standalone with model parameters consolidated into a single source of truth (
model_parameters), and 100% docstring coverage.
Credit¶
The topo.csp continuous-synthesis subsystem follows the published continuous-synthesis
protocol (Jiang, Nissley & O’Brien), adapted to TOPO’s structure-based Gō model.