Skip to content

Beta barrel parametrization#682

Open
everyday847 wants to merge 4 commits intoRosettaCommons:mainfrom
everyday847:beta-barrel-parametrization
Open

Beta barrel parametrization#682
everyday847 wants to merge 4 commits intoRosettaCommons:mainfrom
everyday847:beta-barrel-parametrization

Conversation

@everyday847
Copy link
Copy Markdown
Member

No description provided.

Andy Watkins added 4 commits April 30, 2026 20:46
Foundation for parametric beta-barrel backbone generation. Defines the
BBPC_Parameters enum (r0, delta_omega0, delta_z0, delta_omega1 as
perturbable; minor helix params from crick_params as invariant).

BarrelParametrizationCalculator::build_strand() reuses the Crick
equation infrastructure from helical_bundle/util, treating each
barrel strand as a helix with omega0=0 on a cylindrical surface.

BarrelParameters and BarrelParametersSet extend the core parametric
containers with barrel-specific metadata (n_strands, shear_number,
antiparallel topology, barrel_radius).
Completes the parametric beta-barrel system:
- MakeBarrel/MakeBarrelStrand: builds a beta-barrel from parameters
  (n_strands, shear_number, r0, antiparallel topology) using Crick
  equations with beta_strand.crick_params
- PerturbBarrel/PerturbBarrelStrand: MC perturbation of barrel
  parameters with per-strand or global perturbation settings
- util: compute_strand_positions() derives per-strand azimuthal
  position, axial stagger, and inversion from barrel globals
- Factory registration in init.MoverCreators/Registrators.ihh
- Build system registration in protocols_a.6.src.settings
- Unit tests for barrel construction and cylindrical geometry
Add omega0, delta_t, and epsilon to BBPC_Parameters enum:
- omega0: superhelical twist per residue. Zero for closed barrels
  (strands parallel to axis); nonzero for solenoids/beta-helices
  (strands spiral around axis). Enables solenoid modeling.
- delta_t: backbone offset in residues, matching helical bundle.
- epsilon: lateral squash for non-circular cross-sections,
  relevant for TIM barrels and deformed barrels.

build_strand() now reads these from the parameter values instead
of hardcoding omega0=0 and epsilon=1. For TIM barrels, the strand
elements use this calculator; alpha-helical elements between
strands can be modeled with the existing helical bundle system.
@vmullig
Copy link
Copy Markdown
Member

vmullig commented May 1, 2026 via email

@everyday847
Copy link
Copy Markdown
Member Author

That's true. Really maybe the right approach is to think of this as a convenience thing: each more specialized class could ensure that the parameters being requested are generally in the range of helices/strands in their internal and collective parameters. What do you think?

@vmullig
Copy link
Copy Markdown
Member

vmullig commented May 1, 2026 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants