MEDYAN.addfilament_reaction!

Tuple{MEDYAN.SysDef, Symbol, Symbol, Pair{Vector{Symbol}, Vector{Symbol}}, Int64, AbstractString, Float64, Int64}

Add filament reaction. Return s. Add a filamentsite and reaction with callback to change the monomer state. This can be used for filament aging, filament catalyzed reactions, or simple binding reactions.

Arguments

  1. s::SysDef: the system to add to.
  2. filamenttypename::Symbol: the filament type name.
  3. filamentsitename::Symbol: the new name of the filamentsite added. This can be used as a catalyst in other reactions.
  4. changedstatenames::Pair{Vector{Symbol}, Vector{Symbol}}: the changes to the monomer states, the first is the states to match. The second is the new monomer states after the reaction. both should be the same length. Ordered minus end first.
  5. center::Int: Which index of changedstatenames.first is the actual location of the filamentsite. Used for determining what compartment the reaction goes in.
  6. reactantexpr::AbstractString: Allows adding other reactants or products to the reaction. " + filamentsite.$(filamenttypename).$(filamentsitename) + " gets added to both sides this to create the full reaction expression. See addreaction! for syntax.
  7. rate::Float64: Base rate for the reaction. ((nm³)^(invvolumepower)/s)
  8. invvolumepower::Int: volumefactor= (1/volume)^invvolumepower where volume is the volume of the compartment in nm³. volumefactor only applies to this reaction not any other reaction using filamentsitename Generally this is 0 for reactions without another diffusing reactant, and 1 if there is another diffusing reactant.

Examples

using MEDYAN
agent_names = AgentNames(
    filamentnames= [(:filname,[
                            :a,
                            :b,
                            :c,
                        ]),
    ],
)
s= SysDef(agent_names)
addfilament_reaction!(s, :filname, :ab,
    [:a]=>[:b], 1,
    "-->", 1.75E-3, 0,
)
addfilament_reaction!(s, :filname, :aabc,
    [:a,:a]=>[:b,:c], 2,
    "-->", 1.75E-3, 0,
)