MEDYAN.def_fila_tip_probe!

Tuple{MEDYAN.SysDef}

def_fila_tip_probe!(s::SysDef; fila_type, name, is_minus_end, k_axial, k_lateral, reactions=[], description="")::SysDef

Define a link type for a tip probe: a ball tethered to one end of a fila_type filament, carrying tip reactions that obstacles slow down under baoab!. Attach a probe to a tip with make_fila_tip_probe!.

Use this in place of def_fila_tip_reaction! when running Langevin dynamics. A tip reaction is slowed by exp(-β·spacing·F) using the load force F at the end of the last mechanics run, which under baoab! is a single noisy sample. A probe instead uses the fraction of the last baoab! run during which the ball sat at least spacing beyond the tip, relative to the fraction expected with nothing in the way. This is a noisy but unbiased estimate of the gap-opening probability, which averages out over many chemistry windows and reduces to exp(-β·spacing·F) under a constant load. The factor is 1 before the first baoab! run and after minimize_energy!, which resets it.

The ball is held on the tip tangent line by a TangentLineRestraint and does not collide with the filament, so when unobstructed its offset along the tangent is Gaussian with σ = √(kT/k_axial). Choose k_axial so σ is comparable to spacing, and k_lateral stiff.

Keyword Arguments

  • fila_type::Symbol: Filament type.
  • name::Symbol: Name of the link type.
  • is_minus_end::Bool: Which end the probe attaches to.
  • k_axial::Float64: Tether stiffness along the tip tangent (pN/nm).
  • k_lateral::Float64: Tether stiffness across the tip tangent (pN/nm).
  • reactions::Vector = []: Tip reactions, each a NamedTuple with the keywords of def_fila_tip_reaction! except is_minus_end and both_ends. spacing = 0 means the reaction needs no gap. A custom affect! is called as (c; tip::FilaTipIdx, link::Link, chem_voxel, kwargs...) -> Int.
  • description::String = "": Description of the link type.

Examples

s = MEDYAN.SysDef()
def_fila_type!(s; name=:actin, mono_states=[:a, :plusend, :minusend], param=MEDYAN.ACTIN_TWIST_PARAMS)
def_diffusing_species!(s, :actin_mon; coeff=2.5e7)

def_fila_tip_probe!(s;
    fila_type = :actin,
    name = :plus_probe,
    is_minus_end = false,
    k_axial = 1.9,      # σ ≈ 1.5 nm at room temperature
    k_lateral = 100.0,
    reactions = [
        # polymerization, slowed by obstacles within one monomer spacing
        (;
            name = :pp,
            match = [:plusend],
            new = [:a, :plusend],
            spacing = 2.7,
            net_stoich = [:actin_mon => -1],
            base_rate = 1.93e7,
            invvolumepower = 1,
            reactants_extra = "diffusing.actin_mon",
        ),
    ],
)