diff --git a/julia-docs/dev/docstrings.html b/julia-docs/dev/docstrings.html index 3159c47..79e7eb3 100644 --- a/julia-docs/dev/docstrings.html +++ b/julia-docs/dev/docstrings.html @@ -298,622 +298,622 @@

Docstrings

- + Base.:* - + Base.copy - + Base.delete! - + Base.empty! - + Base.getindex - + Base.haskey - + Base.iterate - + Base.length - + Base.push! - + Base.setindex! - + MEDYAN.AgentNames - + MEDYAN.Boundary - + MEDYAN.CadherinParams - + MEDYAN.CadherinState - + MEDYAN.Context - + MEDYAN.CubicGrid - + MEDYAN.Decimated2MonSiteMinAngleRange - + MEDYAN.Decimated2MonSiteRange - + MEDYAN.FilamentEndSiteGeneral - + MEDYAN.FilamentSiteGeneral - + MEDYAN.Link2MonParams - + MEDYAN.Link2MonSiteCount - + MEDYAN.Link2MonSiteMonomerStateMatch - + MEDYAN.Link2MonSiteMotorCatch - + MEDYAN.Link2MonSiteMotorStall - + MEDYAN.Link2MonSiteOne - + MEDYAN.Link2MonSiteSlipBond - + MEDYAN.Link2MonState - + MEDYAN.MembraneSiteDiffusing - + MEDYAN.MembraneSpeciesParams - + MEDYAN.MonLink2MonSiteOne - + MEDYAN.MonomerName - + MEDYAN.SysDef - + MEDYAN.VertexName - + MEDYAN.VertexState - + MEDYAN.adapt_membranes! - + MEDYAN.add_decimated_2mon_site! - + MEDYAN.add_diffusion_coeff! - + MEDYAN.add_filament_params! - + MEDYAN.add_link_2mon! - + MEDYAN.add_link_2mon_site! - + MEDYAN.add_membranesitereaction! - + MEDYAN.addcadherin! - + MEDYAN.addcadherinsite! - + MEDYAN.adddiffusingcount_rand! - + MEDYAN.addfilament_reaction! - + MEDYAN.addfilamentend_reaction! - + MEDYAN.addfilamentendsite! - + MEDYAN.addfilamentsite! - + MEDYAN.addmembranediffusingcount_rand! - + MEDYAN.addmembranesite! - + MEDYAN.addpossiblecadherinsite! - + MEDYAN.addreaction! - + MEDYAN.addreactioncallback! - + MEDYAN.addunbindinglink_2mon_site! - + MEDYAN.boundary_box - + MEDYAN.boundary_capsule - + MEDYAN.boundary_cylinder - + MEDYAN.boundary_plane - + MEDYAN.centerof - + MEDYAN.chem_adddiffusingcount! - + MEDYAN.chem_addfixedcount! - + MEDYAN.chem_depolymerize! - + MEDYAN.chem_newfilament! - + MEDYAN.chem_newlink_2mon! - + MEDYAN.chem_polymerize! - + MEDYAN.chem_removefilament! - + MEDYAN.chem_removelink_2mon! - + MEDYAN.chem_setlink_2mon_state! - + MEDYAN.chem_setmonomerstate! - + MEDYAN.compute_all_membrane_geometry!_system - + MEDYAN.defer_chem_caching! - + MEDYAN.fil_mon_states - + MEDYAN.fil_node_mon_ids - + MEDYAN.fil_node_positions - + MEDYAN.fil_num_unmin_ends - + MEDYAN.filter_grididat - + MEDYAN.filtype_fil_ids - + MEDYAN.grididat - + MEDYAN.is_chem_cache_valid - + MEDYAN.link_2mon_endnames - + MEDYAN.link_2mon_state - + MEDYAN.load_snapshot! - + MEDYAN.minimize_energy! - + MEDYAN.mon_3states - + MEDYAN.mon_exists - + MEDYAN.mon_minimized - + MEDYAN.mon_plusvector - + MEDYAN.mon_position - + MEDYAN.mon_position_plusvector - + MEDYAN.newfilament_rand! - + MEDYAN.newmembrane! - + MEDYAN.num_filtypes - + MEDYAN.num_vertexwithstate - + MEDYAN.randompoint - + MEDYAN.refresh_chem_cache! - + MEDYAN.resolve_all_filament_mesh_crossing! - + MEDYAN.run_chemistry! - + MEDYAN.set_chemboundary! - + MEDYAN.set_enable_cylinder_volume_exclusion! - + MEDYAN.set_mechboundary! - + MEDYAN.set_time! - + MEDYAN.sever_filament! - + MEDYAN.vertex_state - + NLSolversBase.value!! - + src/auxprocs.jl - + src/boundary.jl - + src/cadherins/possiblecadherinsite.jl - + src/context.jl - + src/decimated_2mon_sites.jl - + src/filamentendsites.jl - + src/filamentsites.jl - + src/grids.jl - + src/link_2mon_sites.jl - + src/membrane/membranesites.jl - + src/membrane/meshadapt.jl - + src/minimize_energy.jl - + src/mon_link_2mon_sites.jl - + src/sever_filament.jl - + src/sys_def-types.jl - + src/sys_def.jl - + src/trajectory-io/snapshot.jl - + src/util/math/cuboidslicing.jl - + src/util/stableindex.jl diff --git a/julia-docs/dev/medyan-tutorial.zip b/julia-docs/dev/medyan-tutorial.zip index 201f083..a74f6b9 100644 Binary files a/julia-docs/dev/medyan-tutorial.zip and b/julia-docs/dev/medyan-tutorial.zip differ diff --git a/julia-docs/dev/reference/fileformats.html b/julia-docs/dev/reference/fileformats.html index 9f793c4..fccd1d8 100644 --- a/julia-docs/dev/reference/fileformats.html +++ b/julia-docs/dev/reference/fileformats.html @@ -274,7 +274,7 @@

"medyan"<

header.json["medyan"] contains static metadata about the simulation that is constant over time.

Example header.json "medyan" value

-
+
using MEDYAN
 import JSON3
 cinit, s = MEDYAN.example_all_sites_context()
@@ -386,7 +386,7 @@ 

Snapshot group

Snapshot Versioning

The snapshot format is versioned by the “version” attribute. The current snapshot version is:

-
+
using MEDYAN
 MEDYAN.SNAPSHOT_VERSION
@@ -408,7 +408,7 @@

“#expe

Example snapshot

-
+
using MEDYAN
 using SmallZarrGroups
 cinit, s = MEDYAN.example_all_sites_context()
@@ -442,7 +442,7 @@ 

Example snapshot

time (s) -
+
attrs(group)["time (s)"]
0.0
@@ -455,7 +455,7 @@

Example snapshot

version -
+
attrs(group)["version"]
"0.8.0"
@@ -468,7 +468,7 @@

Example snapshot

uuid -
+
attrs(group)["uuid"]
"37eee81f-88ae-4d11-b6b3-d38e1ccf0a08"
@@ -496,7 +496,7 @@

Example snapshot

diffusingcounts -
+
collect(group["diffusingcounts"])
2×4 Matrix{Int32}:
@@ -512,7 +512,7 @@ 

Example snapshot

fixedcounts -
+
collect(group["fixedcounts"])
2×4 Matrix{Float64}:
@@ -559,7 +559,7 @@ 

Example snapshot

🔢 capsules -
+
collect(group["chemboundary/capsules"])
8×1 Matrix{Float64}:
@@ -580,7 +580,7 @@ 

Example snapshot

🔢 planes -
+
collect(group["chemboundary/planes"])
4×6 Matrix{Float64}:
@@ -627,7 +627,7 @@ 

Example snapshot

position_scale -
+
attrs(group["filaments"])["position_scale"]
3
@@ -658,7 +658,7 @@

Example snapshot

🔢 endloadforces -
+
collect(group["filaments/1/endloadforces"])
2×2 Matrix{Float64}:
@@ -673,7 +673,7 @@ 

Example snapshot

🔢 fids -
+
collect(group["filaments/1/fids"])
2-element Vector{Int32}:
@@ -687,7 +687,7 @@ 

Example snapshot

🔢 minusend_num_notminimized -
+
collect(group["filaments/1/minusend_num_notminimized"])
2-element Vector{Int32}:
@@ -701,7 +701,7 @@ 

Example snapshot

🔢 plusend_num_notminimized -
+
collect(group["filaments/1/plusend_num_notminimized"])
2-element Vector{Int32}:
@@ -715,7 +715,7 @@ 

Example snapshot

🔢 num_cylinders -
+
collect(group["filaments/1/num_cylinders"])
2-element Vector{Int32}:
@@ -729,7 +729,7 @@ 

Example snapshot

🔢 num_monomers -
+
collect(group["filaments/1/num_monomers"])
2-element Vector{Int32}:
@@ -743,7 +743,7 @@ 

Example snapshot

🔢 node_mids -
+
collect(group["filaments/1/node_mids"])
2-element Vector{Int32}:
@@ -764,7 +764,7 @@ 

Example snapshot

🔢 nodepositions -
+
collect(group["filaments/1/nodepositions"])
4×3 Matrix{Float64}:
@@ -780,7 +780,7 @@ 

Example snapshot

🔢 monomerstates -
+
collect(group["filaments/1/monomerstates"])
18-element Vector{UInt8}:
@@ -857,7 +857,7 @@ 

Example snapshot

num_link_2mons -
+
attrs(group["link_2mons/1"])["num_link_2mons"]
2
@@ -869,7 +869,7 @@

Example snapshot

next_lid -
+
attrs(group["link_2mons/1"])["next_lid"]
3
@@ -885,7 +885,7 @@

Example snapshot

🔢 endnames -
+
collect(group["link_2mons/1/endnames"])
2×6 Matrix{Int64}:
@@ -908,7 +908,7 @@ 

Example snapshot

🔢 lids -
+
collect(group["link_2mons/1/lids"])
2-element Vector{Int64}:
@@ -926,7 +926,7 @@ 

Example snapshot

Default: default link_2mon_state

See MEDYAN.chem_setlink_2mon_state! and MEDYAN.Link2MonState

The state of a link_2mon, organized in a nested struct of vector like form. Any static arrays will be unwrapped into a tuple of vectors, in column major order. The “name” attribute of each subgroup and dataset is the corresponding property name in the StructArray Any property in the default state that isn’t in the snapshot will stay at its default value.

-
+
group["link_2mons/1/state"]
📂
@@ -969,7 +969,7 @@ 

Example snapshot

🔢 capsules -
+
collect(group["mechboundary/capsules"])
8×1 Matrix{Float64}:
@@ -990,7 +990,7 @@ 

Example snapshot

🔢 planes -
+
collect(group["mechboundary/planes"])
4×6 Matrix{Float64}:
@@ -1036,7 +1036,7 @@ 

Example snapshot

num_membranes -
+
attrs(group["membranes"])["num_membranes"]
1
@@ -1048,7 +1048,7 @@

Example snapshot

position_scale -
+
attrs(group["membranes"])["position_scale"]
3
@@ -1090,7 +1090,7 @@

Example snapshot

type_id -
+
attrs(group["membranes/1"])["type_id"]
1
@@ -1105,7 +1105,7 @@

Example snapshot

🔢 trilist -
+
collect(group["membranes/1/trilist"])
3×1914 Matrix{Int64}:
@@ -1120,7 +1120,7 @@ 

Example snapshot

🔢 vertlist -
+
collect(group["membranes/1/vertlist"])
3×959 Matrix{Float64}:
@@ -1135,7 +1135,7 @@ 

Example snapshot

🔢 id -
+
collect(group["membranes/1/id"])
959-element Vector{Int64}:
@@ -1173,12 +1173,12 @@ 

Example snapshot

optional 🔢 copynumbers -
+
collect(group["membranes/1/copynumbers"])
3×959 Matrix{Int64}:
  0  0  0  0  0  0  0  0  0  0  0  0  0  …  0  0  0  0  0  0  0  0  0  0  0  0
- 0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0
+ 0  1  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0     0  0  0  0  0  0  0  0  0  0  0  0
diff --git a/julia-docs/dev/search.json b/julia-docs/dev/search.json index 1616638..e705eab 100644 --- a/julia-docs/dev/search.json +++ b/julia-docs/dev/search.json @@ -1334,7 +1334,7 @@ "href": "reference/fileformats.html", "title": "File Formats", "section": "", - "text": "MEDYAN.jl uses Zarr v2 zip store for saving snapshots.\n\n\n\n\n\n\nOther Languages\n\n\n\nTo open the snapshots in python use zarr\n\n\n\n\nTrajectory outputs and logs are stored in a directory.\nThe output directory contains a traj sub directory with a header.json file, many snap$(NUMBER).zarr.zip files where NUMBER is the frame number of the snapshot, and finally a footer.json.\nThe initial state returned by setup is stored in snap0.zarr.zip.\nInside the snap$(NUMBER).zarr.zip there is a snap/medyan group containing the snapshot of the MEDYAN.Context at the step. Other state may be stored in child groups of snap.\nThe header.json file also has a top level \"medyan\" key with a value describing the system being simulated.\nOther header information may be under other top level keys.\nSee https://github.com/medyan-dev/MEDYANSimRunner.jl for more details on the output directory structure.\n\n\n\nheader.json[\"medyan\"] contains static metadata about the simulation that is constant over time.\n\n\n\nusing MEDYAN\nimport JSON3\ncinit, s = MEDYAN.example_all_sites_context()\nJSON3.pretty(MEDYAN.header(cinit); allow_inf = true)\n\n{\n \"version\": \"0.1.0\",\n \"medyanInfo\": {\n \"title\": \"MEDYAN.jl\",\n \"version\": \"0.1.0\",\n \"sourceCodeUrl\": \"https://github.com/medyan-dev/MEDYAN.jl\"\n },\n \"size\": {\n \"x(nm)\": 2000,\n \"y(nm)\": 500,\n \"z(nm)\": 500\n },\n \"chem_grid_size\": {\n \"nx\": 4,\n \"ny\": 1,\n \"nz\": 1,\n \"voxel_x(nm)\": 500,\n \"voxel_y(nm)\": 500,\n \"voxel_z(nm)\": 500\n },\n \"diffusing_species\": [\n {\n \"name\": \"b\"\n },\n {\n \"name\": \"c\"\n }\n ],\n \"membrane_diffusing_species\": [\n {\n \"name\": \"ma\"\n },\n {\n \"name\": \"mb\"\n },\n {\n \"name\": \"mc\"\n }\n ],\n \"fixed_species\": [\n {\n \"name\": \"d\"\n },\n {\n \"name\": \"a\"\n }\n ],\n \"filaments\": [\n {\n \"name\": \"a\",\n \"radius(nm)\": 3,\n \"monomerstates\": [\n \"me\",\n \"a\",\n \"b\",\n \"c\",\n \"pe\"\n ]\n },\n {\n \"name\": \"b\",\n \"radius(nm)\": 3,\n \"monomerstates\": [\n \"me\",\n \"a\",\n \"b\",\n \"c\",\n \"pe\"\n ]\n }\n ],\n \"link_2mons\": [\n {\n \"name\": \"a\"\n },\n {\n \"name\": \"b\"\n },\n {\n \"name\": \"c\"\n },\n {\n \"name\": \"d\"\n }\n ]\n}\n\n\n\n\n\n\nA snapshot describes the state of a Context at a single point in time.\nA snapshot can be used to set the state of a Context if it was constructed with the same system and parameters as the Context used to create the snapshot. Trying to load a snapshot into a Context constructed with a different system or parameters may lead to unexpected results.\nBy default units are in nm, pN, and s. Coordinates are relative to the center of the grid.\nThe snapshot doesn’t hold the exact full state of a Context, simulations restarted from a snapshot may not have the exact same results because:\n\nThe snapshot doesn’t store the state of the random number generator.\nCoordinates may be rounded to save disk space.\nDictionaries and other internal data structures may get reordered and or resorted when the snapshot is loaded.\nMultithreading may be non deterministic.\n\nBut if rounding isn’t too extreme, the reloaded Context should have the same statistics.\n\n\nThe snapshot format is versioned by the “version” attribute. The current snapshot version is:\n\nusing MEDYAN\nMEDYAN.SNAPSHOT_VERSION\n\nv\"0.8.0\"\n\n\nCurrently before snapshot version 1.0.0 anything goes.\nAfter snapshot version 1.0.0 is released.\nSnapshots written with a previous snapshot version above v\"1\" should be readable. Snapshots written with a newer snapshot version are generally not readable.\nIf new agent types are added to MEDYAN.jl, usually only the minor version needs to be updated, as nothing special needs to be done to read older snapshot versions without that added agent type.\nIf new data is added to an existing agent type, also usually only the minor version needs to be increment, though the case of the new data not existing must be handled with some default.\nIf the way an existing agent type is stored significantly changes, such that external code analyzing the snapshot would need to be modified, the major version must be incremented. Also if possible there should be a function to update a snapshot from the old version to the new version.\n\n\nAny group, dataset, or attribute name prefixed with with “#” can change format or be removed without changing the snapshot version.\n“#experimental” is used for saving new types of agents or other data that doesn’t have a stable format yet.\n“#comment” is used for saving human readable comments that could change in format or wording.\n\n\n\n\n\nusing MEDYAN\nusing SmallZarrGroups\ncinit, s = MEDYAN.example_all_sites_context()\ngroup = MEDYAN.snapshot(cinit)\n\n\n\n\n\n\n\nSnapshot 📂\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\ntime (s)\n\n\nattrs(group)[\"time (s)\"]\n\n0.0\n\n\nDefault: No change\nSee MEDYAN.set_time!\n\n\n\nversion\n\n\nattrs(group)[\"version\"]\n\n\"0.8.0\"\n\n\nDefault: No change\nSee Snapshot Versioning\n\n\n\nuuid\n\n\nattrs(group)[\"uuid\"]\n\n\"37eee81f-88ae-4d11-b6b3-d38e1ccf0a08\"\n\n\nMust be set to exactly “37eee81f-88ae-4d11-b6b3-d38e1ccf0a08”\nto be considered a valid MEDYAN snapshot.\n\n\n\n\n\n\n\n\n\n\n🔢\n\n\n\n\n\n\n\ndiffusingcounts\n\n\ncollect(group[\"diffusingcounts\"])\n\n2×4 Matrix{Int32}:\n 0 100 40 0\n 0 1000 400 0\n\n\nDefault: Empty\nIndexed by [species id, compartment id] to give count.\nSee MEDYAN.chem_adddiffusingcount!\n\n\n\nfixedcounts\n\n\ncollect(group[\"fixedcounts\"])\n\n2×4 Matrix{Float64}:\n 10.25 0.0 0.0 0.0\n 0.0 0.0 0.0 20.25\n\n\nDefault: Empty\nIndexed by [species id, compartment id] to give count.\nSee MEDYAN.chem_addfixedcount!\n\n\n\n\n\n\n\n\n\n\n\n📂\n\n\n\n\n\n\n\n\n\n\n\n\nchemboundary\n\n\n\n\n\nThere is a dataset for each type of boundary, the total boundary is an intersection of the following.\nSee MEDYAN.Boundary\n\n\n🔢 capsules\n\n\ncollect(group[\"chemboundary/capsules\"])\n\n8×1 Matrix{Float64}:\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 10000.0\n 1.0\n\n\nDefault: Empty\nEach column of the dataset is a capsule.\n\n\n\n🔢 planes\n\n\ncollect(group[\"chemboundary/planes\"])\n\n4×6 Matrix{Float64}:\n -10.0 10.0 0.0 0.0 0.0 0.0\n 0.0 0.0 -10.0 10.0 0.0 0.0\n 0.0 0.0 0.0 0.0 -10.0 10.0\n 10000.0 10000.0 2500.0 2500.0 2500.0 2500.0\n\n\nDefault: Empty\nEach column of the dataset is a plane.\n\n\n\n\n\n\n\n\n\n\n\n\nfilaments\n\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nposition_scale\n\n\nattrs(group[\"filaments\"])[\"position_scale\"]\n\n3\n\n\nDefault: No effect\nFilament positions were rounded to the nearest 2^-position_scale nm when saved.\n\n\n\n\n\nThere is a subgroup for each filament type with at least one filament. The subgroups are named by their filament type id. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n🔢 endloadforces\n\n\ncollect(group[\"filaments/1/endloadforces\"])\n\n2×2 Matrix{Float64}:\n 0.0 0.0\n 0.0 0.0\n\n\nFilament end load forces (pN).\nEach row is the load force on the minus and plus ends of a filament.\n\n\n\n🔢 fids\n\n\ncollect(group[\"filaments/1/fids\"])\n\n2-element Vector{Int32}:\n 1\n 2\n\n\nFilament ids.\n\n\n\n🔢 minusend_num_notminimized\n\n\ncollect(group[\"filaments/1/minusend_num_notminimized\"])\n\n2-element Vector{Int32}:\n 0\n 0\n\n\nNumber of newly added monomers to the filament minus ends since last minimization.\n\n\n\n🔢 plusend_num_notminimized\n\n\ncollect(group[\"filaments/1/plusend_num_notminimized\"])\n\n2-element Vector{Int32}:\n 0\n 0\n\n\nNumber of newly added monomers to the filament plus ends since last minimization.\n\n\n\n🔢 num_cylinders\n\n\ncollect(group[\"filaments/1/num_cylinders\"])\n\n2-element Vector{Int32}:\n 1\n 1\n\n\nNumber of cylinders per filament.\n\n\n\n🔢 num_monomers\n\n\ncollect(group[\"filaments/1/num_monomers\"])\n\n2-element Vector{Int32}:\n 9\n 9\n\n\nNumber of monomers per filament.\n\n\n\n🔢 node_mids\n\n\ncollect(group[\"filaments/1/node_mids\"])\n\n2-element Vector{Int32}:\n 1\n 1\n\n\nThe monomer ids at the minus ends of the cylinders.\n |\n -----+-----|-----+-----\n minus end <---- M | M | (M) | M ----> plus end\n -----+-----|-----+-----\n |\n ^ A nodeposition is indicated by the line.\nThe monomer id with parenthesis (M) will in node_mids\n\n\n\n🔢 nodepositions\n\n\ncollect(group[\"filaments/1/nodepositions\"])\n\n4×3 Matrix{Float64}:\n -530.0 -50.0 -50.0\n -440.0 -50.0 -50.0\n -520.0 -49.0 -50.0\n -430.0 -49.0 -50.0\n\n\nEach row is a node position in nm.\n\n\n\n🔢 monomerstates\n\n\ncollect(group[\"filaments/1/monomerstates\"])\n\n18-element Vector{UInt8}:\n 0x01\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x05\n 0x01\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x05\n\n\nMonomer states.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlink_2mons\n\n\n\n\n\nThere is a subgroup for each link_2mon type with at least one link_2mon. The subgroups are named by their link_2mon type id. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nnum_link_2mons\n\n\nattrs(group[\"link_2mons/1\"])[\"num_link_2mons\"]\n\n2\n\n\nNumber of link_2mons of this type.\n\n\n\nnext_lid\n\n\nattrs(group[\"link_2mons/1\"])[\"next_lid\"]\n\n3\n\n\nThe default next link id for new links.\nThis should be greater than all the existing lids.\n\n\n\n\n\n\n🔢 endnames\n\n\ncollect(group[\"link_2mons/1/endnames\"])\n\n2×6 Matrix{Int64}:\n 1 1 2 1 1 2\n 1 1 2 1 2 2\n\n\nThe pairs of monomers that the link_2mons are linked between. The monomer pairs are directed and unique.\nEach row of this matrix represents two monomers. The 6 integers per row are in order:\n\nMinus end filament type id.\nMinus end filament id.\nMinus end monomer id.\nPlus end filament type id.\nPlus end filament id.\nPlus end monomer id.\n\n\n\n\n🔢 lids\n\n\ncollect(group[\"link_2mons/1/lids\"])\n\n2-element Vector{Int64}:\n 1\n 2\n\n\nThe link_2mon ids.\nLinks retain their ids while they remain bound.\n\n\n\n📂 state\n\nDefault: default link_2mon_state\nSee MEDYAN.chem_setlink_2mon_state! and MEDYAN.Link2MonState\nThe state of a link_2mon, organized in a nested struct of vector like form. Any static arrays will be unwrapped into a tuple of vectors, in column major order. The “name” attribute of each subgroup and dataset is the corresponding property name in the StructArray Any property in the default state that isn’t in the snapshot will stay at its default value.\n\ngroup[\"link_2mons/1/state\"]\n\n📂\n├─ 📂 1 🏷️ name => \"chemstate\",\n| ├─ 🔢 1: 2 Int64 🏷️ name => \"a\",\n| └─ 🔢 2: 2 Float64 🏷️ name => \"b\",\n├─ 📂 2 🏷️ name => \"mechstate\",\n| └─ 📂 1 🏷️ name => \"â\",\n| ├─ 🔢 1: 2 Float32 🏷️ name => \"1\",\n| ├─ 🔢 2: 2 Float32 🏷️ name => \"2\",\n| └─ 🔢 3: 2 Float32 🏷️ name => \"3\",\n└─ 🔢 3: 2 Bool 🏷️ name => \"is_minimized\",\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nmechboundary\n\n\n\n\n\nThere is a dataset for each type of boundary, the total boundary is an intersection of the following.\nSee MEDYAN.Boundary\n\n\n🔢 capsules\n\n\ncollect(group[\"mechboundary/capsules\"])\n\n8×1 Matrix{Float64}:\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 10000.0\n 1.0\n\n\nDefault: Empty\nEach column of the dataset is a capsule.\n\n\n\n🔢 planes\n\n\ncollect(group[\"mechboundary/planes\"])\n\n4×6 Matrix{Float64}:\n -10.0 10.0 0.0 0.0 0.0 0.0\n 0.0 0.0 -10.0 10.0 0.0 0.0\n 0.0 0.0 0.0 0.0 -10.0 10.0\n 10000.0 10000.0 2500.0 2500.0 2500.0 2500.0\n\n\nDefault: Empty\nEach column of the dataset is a plane.\n\n\n\n\n\n\n\n\n\n\n\n\nmembranes\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nnum_membranes\n\n\nattrs(group[\"membranes\"])[\"num_membranes\"]\n\n1\n\n\nTotal number of membranes.\n\n\n\nposition_scale\n\n\nattrs(group[\"membranes\"])[\"position_scale\"]\n\n3\n\n\nDefault: No effect\nPositions were rounded to the nearest 2^-position_scale nm when saved.\n\n\n\n\nThere is a subgroup for each membrane. The subgroups are named by the membrane index. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\ntype_id\n\n\nattrs(group[\"membranes/1\"])[\"type_id\"]\n\n1\n\n\nThis membrane’s type id.\n\n\n\n\n\n\n🔢 trilist\n\n\ncollect(group[\"membranes/1/trilist\"])\n\n3×1914 Matrix{Int64}:\n 2 871 836 517 520 462 409 416 … 792 688 226 201 450 326 164\n 848 807 732 412 362 635 656 845 913 354 652 920 923 956 781\n 238 630 203 190 623 853 733 608 875 944 373 958 958 959 959\n\n\nEach column is the 3 vertex indexes of a triangle. Indexes are one based, and follow the right hand rule. Looking at the triangle from the outside in, they have counterclockwise winding.\n\n\n\n🔢 vertlist\n\n\ncollect(group[\"membranes/1/vertlist\"])\n\n3×959 Matrix{Float64}:\n 115.0 -590.25 -552.0 226.75 … 182.375 -316.125 157.75\n -222.75 -232.875 -193.125 137.5 238.125 -429.875 -34.5\n -252.25 275.25 -343.25 -15.5 -49.125 -237.875 -279.875\n\n\nEach column is a vertex coordinate in nm.\n\n\n\n🔢 id\n\n\ncollect(group[\"membranes/1/id\"])\n\n959-element Vector{Int64}:\n 7814\n 10608\n 3334\n 14756\n 12541\n 9498\n 10903\n 2092\n 9775\n 10\n 12855\n 12136\n 1949\n ⋮\n 3653\n 5295\n 3951\n 8003\n 14307\n 12258\n 7204\n 4182\n 7834\n 9058\n 6485\n 10738\n\n\nArray of vertex IDs. Each vertex has an id which is assigned upon initialization and persists throughout its lifetime.\n\n\n\noptional 🔢 copynumbers\n\n\ncollect(group[\"membranes/1/copynumbers\"])\n\n3×959 Matrix{Int64}:\n 0 0 0 0 0 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 0 0 0 0 0\n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n\n\nArray of vertex membrane species copynumbers. If the membrane has no defined species this dataset will not exist.", + "text": "MEDYAN.jl uses Zarr v2 zip store for saving snapshots.\n\n\n\n\n\n\nOther Languages\n\n\n\nTo open the snapshots in python use zarr\n\n\n\n\nTrajectory outputs and logs are stored in a directory.\nThe output directory contains a traj sub directory with a header.json file, many snap$(NUMBER).zarr.zip files where NUMBER is the frame number of the snapshot, and finally a footer.json.\nThe initial state returned by setup is stored in snap0.zarr.zip.\nInside the snap$(NUMBER).zarr.zip there is a snap/medyan group containing the snapshot of the MEDYAN.Context at the step. Other state may be stored in child groups of snap.\nThe header.json file also has a top level \"medyan\" key with a value describing the system being simulated.\nOther header information may be under other top level keys.\nSee https://github.com/medyan-dev/MEDYANSimRunner.jl for more details on the output directory structure.\n\n\n\nheader.json[\"medyan\"] contains static metadata about the simulation that is constant over time.\n\n\n\nusing MEDYAN\nimport JSON3\ncinit, s = MEDYAN.example_all_sites_context()\nJSON3.pretty(MEDYAN.header(cinit); allow_inf = true)\n\n{\n \"version\": \"0.1.0\",\n \"medyanInfo\": {\n \"title\": \"MEDYAN.jl\",\n \"version\": \"0.1.0\",\n \"sourceCodeUrl\": \"https://github.com/medyan-dev/MEDYAN.jl\"\n },\n \"size\": {\n \"x(nm)\": 2000,\n \"y(nm)\": 500,\n \"z(nm)\": 500\n },\n \"chem_grid_size\": {\n \"nx\": 4,\n \"ny\": 1,\n \"nz\": 1,\n \"voxel_x(nm)\": 500,\n \"voxel_y(nm)\": 500,\n \"voxel_z(nm)\": 500\n },\n \"diffusing_species\": [\n {\n \"name\": \"b\"\n },\n {\n \"name\": \"c\"\n }\n ],\n \"membrane_diffusing_species\": [\n {\n \"name\": \"ma\"\n },\n {\n \"name\": \"mb\"\n },\n {\n \"name\": \"mc\"\n }\n ],\n \"fixed_species\": [\n {\n \"name\": \"d\"\n },\n {\n \"name\": \"a\"\n }\n ],\n \"filaments\": [\n {\n \"name\": \"a\",\n \"radius(nm)\": 3,\n \"monomerstates\": [\n \"me\",\n \"a\",\n \"b\",\n \"c\",\n \"pe\"\n ]\n },\n {\n \"name\": \"b\",\n \"radius(nm)\": 3,\n \"monomerstates\": [\n \"me\",\n \"a\",\n \"b\",\n \"c\",\n \"pe\"\n ]\n }\n ],\n \"link_2mons\": [\n {\n \"name\": \"a\"\n },\n {\n \"name\": \"b\"\n },\n {\n \"name\": \"c\"\n },\n {\n \"name\": \"d\"\n }\n ]\n}\n\n\n\n\n\n\nA snapshot describes the state of a Context at a single point in time.\nA snapshot can be used to set the state of a Context if it was constructed with the same system and parameters as the Context used to create the snapshot. Trying to load a snapshot into a Context constructed with a different system or parameters may lead to unexpected results.\nBy default units are in nm, pN, and s. Coordinates are relative to the center of the grid.\nThe snapshot doesn’t hold the exact full state of a Context, simulations restarted from a snapshot may not have the exact same results because:\n\nThe snapshot doesn’t store the state of the random number generator.\nCoordinates may be rounded to save disk space.\nDictionaries and other internal data structures may get reordered and or resorted when the snapshot is loaded.\nMultithreading may be non deterministic.\n\nBut if rounding isn’t too extreme, the reloaded Context should have the same statistics.\n\n\nThe snapshot format is versioned by the “version” attribute. The current snapshot version is:\n\nusing MEDYAN\nMEDYAN.SNAPSHOT_VERSION\n\nv\"0.8.0\"\n\n\nCurrently before snapshot version 1.0.0 anything goes.\nAfter snapshot version 1.0.0 is released.\nSnapshots written with a previous snapshot version above v\"1\" should be readable. Snapshots written with a newer snapshot version are generally not readable.\nIf new agent types are added to MEDYAN.jl, usually only the minor version needs to be updated, as nothing special needs to be done to read older snapshot versions without that added agent type.\nIf new data is added to an existing agent type, also usually only the minor version needs to be increment, though the case of the new data not existing must be handled with some default.\nIf the way an existing agent type is stored significantly changes, such that external code analyzing the snapshot would need to be modified, the major version must be incremented. Also if possible there should be a function to update a snapshot from the old version to the new version.\n\n\nAny group, dataset, or attribute name prefixed with with “#” can change format or be removed without changing the snapshot version.\n“#experimental” is used for saving new types of agents or other data that doesn’t have a stable format yet.\n“#comment” is used for saving human readable comments that could change in format or wording.\n\n\n\n\n\nusing MEDYAN\nusing SmallZarrGroups\ncinit, s = MEDYAN.example_all_sites_context()\ngroup = MEDYAN.snapshot(cinit)\n\n\n\n\n\n\n\nSnapshot 📂\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\ntime (s)\n\n\nattrs(group)[\"time (s)\"]\n\n0.0\n\n\nDefault: No change\nSee MEDYAN.set_time!\n\n\n\nversion\n\n\nattrs(group)[\"version\"]\n\n\"0.8.0\"\n\n\nDefault: No change\nSee Snapshot Versioning\n\n\n\nuuid\n\n\nattrs(group)[\"uuid\"]\n\n\"37eee81f-88ae-4d11-b6b3-d38e1ccf0a08\"\n\n\nMust be set to exactly “37eee81f-88ae-4d11-b6b3-d38e1ccf0a08”\nto be considered a valid MEDYAN snapshot.\n\n\n\n\n\n\n\n\n\n\n🔢\n\n\n\n\n\n\n\ndiffusingcounts\n\n\ncollect(group[\"diffusingcounts\"])\n\n2×4 Matrix{Int32}:\n 0 100 40 0\n 0 1000 400 0\n\n\nDefault: Empty\nIndexed by [species id, compartment id] to give count.\nSee MEDYAN.chem_adddiffusingcount!\n\n\n\nfixedcounts\n\n\ncollect(group[\"fixedcounts\"])\n\n2×4 Matrix{Float64}:\n 10.25 0.0 0.0 0.0\n 0.0 0.0 0.0 20.25\n\n\nDefault: Empty\nIndexed by [species id, compartment id] to give count.\nSee MEDYAN.chem_addfixedcount!\n\n\n\n\n\n\n\n\n\n\n\n📂\n\n\n\n\n\n\n\n\n\n\n\n\nchemboundary\n\n\n\n\n\nThere is a dataset for each type of boundary, the total boundary is an intersection of the following.\nSee MEDYAN.Boundary\n\n\n🔢 capsules\n\n\ncollect(group[\"chemboundary/capsules\"])\n\n8×1 Matrix{Float64}:\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 10000.0\n 1.0\n\n\nDefault: Empty\nEach column of the dataset is a capsule.\n\n\n\n🔢 planes\n\n\ncollect(group[\"chemboundary/planes\"])\n\n4×6 Matrix{Float64}:\n -10.0 10.0 0.0 0.0 0.0 0.0\n 0.0 0.0 -10.0 10.0 0.0 0.0\n 0.0 0.0 0.0 0.0 -10.0 10.0\n 10000.0 10000.0 2500.0 2500.0 2500.0 2500.0\n\n\nDefault: Empty\nEach column of the dataset is a plane.\n\n\n\n\n\n\n\n\n\n\n\n\nfilaments\n\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nposition_scale\n\n\nattrs(group[\"filaments\"])[\"position_scale\"]\n\n3\n\n\nDefault: No effect\nFilament positions were rounded to the nearest 2^-position_scale nm when saved.\n\n\n\n\n\nThere is a subgroup for each filament type with at least one filament. The subgroups are named by their filament type id. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n🔢 endloadforces\n\n\ncollect(group[\"filaments/1/endloadforces\"])\n\n2×2 Matrix{Float64}:\n 0.0 0.0\n 0.0 0.0\n\n\nFilament end load forces (pN).\nEach row is the load force on the minus and plus ends of a filament.\n\n\n\n🔢 fids\n\n\ncollect(group[\"filaments/1/fids\"])\n\n2-element Vector{Int32}:\n 1\n 2\n\n\nFilament ids.\n\n\n\n🔢 minusend_num_notminimized\n\n\ncollect(group[\"filaments/1/minusend_num_notminimized\"])\n\n2-element Vector{Int32}:\n 0\n 0\n\n\nNumber of newly added monomers to the filament minus ends since last minimization.\n\n\n\n🔢 plusend_num_notminimized\n\n\ncollect(group[\"filaments/1/plusend_num_notminimized\"])\n\n2-element Vector{Int32}:\n 0\n 0\n\n\nNumber of newly added monomers to the filament plus ends since last minimization.\n\n\n\n🔢 num_cylinders\n\n\ncollect(group[\"filaments/1/num_cylinders\"])\n\n2-element Vector{Int32}:\n 1\n 1\n\n\nNumber of cylinders per filament.\n\n\n\n🔢 num_monomers\n\n\ncollect(group[\"filaments/1/num_monomers\"])\n\n2-element Vector{Int32}:\n 9\n 9\n\n\nNumber of monomers per filament.\n\n\n\n🔢 node_mids\n\n\ncollect(group[\"filaments/1/node_mids\"])\n\n2-element Vector{Int32}:\n 1\n 1\n\n\nThe monomer ids at the minus ends of the cylinders.\n |\n -----+-----|-----+-----\n minus end <---- M | M | (M) | M ----> plus end\n -----+-----|-----+-----\n |\n ^ A nodeposition is indicated by the line.\nThe monomer id with parenthesis (M) will in node_mids\n\n\n\n🔢 nodepositions\n\n\ncollect(group[\"filaments/1/nodepositions\"])\n\n4×3 Matrix{Float64}:\n -530.0 -50.0 -50.0\n -440.0 -50.0 -50.0\n -520.0 -49.0 -50.0\n -430.0 -49.0 -50.0\n\n\nEach row is a node position in nm.\n\n\n\n🔢 monomerstates\n\n\ncollect(group[\"filaments/1/monomerstates\"])\n\n18-element Vector{UInt8}:\n 0x01\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x05\n 0x01\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x05\n\n\nMonomer states.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlink_2mons\n\n\n\n\n\nThere is a subgroup for each link_2mon type with at least one link_2mon. The subgroups are named by their link_2mon type id. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nnum_link_2mons\n\n\nattrs(group[\"link_2mons/1\"])[\"num_link_2mons\"]\n\n2\n\n\nNumber of link_2mons of this type.\n\n\n\nnext_lid\n\n\nattrs(group[\"link_2mons/1\"])[\"next_lid\"]\n\n3\n\n\nThe default next link id for new links.\nThis should be greater than all the existing lids.\n\n\n\n\n\n\n🔢 endnames\n\n\ncollect(group[\"link_2mons/1/endnames\"])\n\n2×6 Matrix{Int64}:\n 1 1 2 1 1 2\n 1 1 2 1 2 2\n\n\nThe pairs of monomers that the link_2mons are linked between. The monomer pairs are directed and unique.\nEach row of this matrix represents two monomers. The 6 integers per row are in order:\n\nMinus end filament type id.\nMinus end filament id.\nMinus end monomer id.\nPlus end filament type id.\nPlus end filament id.\nPlus end monomer id.\n\n\n\n\n🔢 lids\n\n\ncollect(group[\"link_2mons/1/lids\"])\n\n2-element Vector{Int64}:\n 1\n 2\n\n\nThe link_2mon ids.\nLinks retain their ids while they remain bound.\n\n\n\n📂 state\n\nDefault: default link_2mon_state\nSee MEDYAN.chem_setlink_2mon_state! and MEDYAN.Link2MonState\nThe state of a link_2mon, organized in a nested struct of vector like form. Any static arrays will be unwrapped into a tuple of vectors, in column major order. The “name” attribute of each subgroup and dataset is the corresponding property name in the StructArray Any property in the default state that isn’t in the snapshot will stay at its default value.\n\ngroup[\"link_2mons/1/state\"]\n\n📂\n├─ 📂 1 🏷️ name => \"chemstate\",\n| ├─ 🔢 1: 2 Int64 🏷️ name => \"a\",\n| └─ 🔢 2: 2 Float64 🏷️ name => \"b\",\n├─ 📂 2 🏷️ name => \"mechstate\",\n| └─ 📂 1 🏷️ name => \"â\",\n| ├─ 🔢 1: 2 Float32 🏷️ name => \"1\",\n| ├─ 🔢 2: 2 Float32 🏷️ name => \"2\",\n| └─ 🔢 3: 2 Float32 🏷️ name => \"3\",\n└─ 🔢 3: 2 Bool 🏷️ name => \"is_minimized\",\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nmechboundary\n\n\n\n\n\nThere is a dataset for each type of boundary, the total boundary is an intersection of the following.\nSee MEDYAN.Boundary\n\n\n🔢 capsules\n\n\ncollect(group[\"mechboundary/capsules\"])\n\n8×1 Matrix{Float64}:\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 10000.0\n 1.0\n\n\nDefault: Empty\nEach column of the dataset is a capsule.\n\n\n\n🔢 planes\n\n\ncollect(group[\"mechboundary/planes\"])\n\n4×6 Matrix{Float64}:\n -10.0 10.0 0.0 0.0 0.0 0.0\n 0.0 0.0 -10.0 10.0 0.0 0.0\n 0.0 0.0 0.0 0.0 -10.0 10.0\n 10000.0 10000.0 2500.0 2500.0 2500.0 2500.0\n\n\nDefault: Empty\nEach column of the dataset is a plane.\n\n\n\n\n\n\n\n\n\n\n\n\nmembranes\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nnum_membranes\n\n\nattrs(group[\"membranes\"])[\"num_membranes\"]\n\n1\n\n\nTotal number of membranes.\n\n\n\nposition_scale\n\n\nattrs(group[\"membranes\"])[\"position_scale\"]\n\n3\n\n\nDefault: No effect\nPositions were rounded to the nearest 2^-position_scale nm when saved.\n\n\n\n\nThere is a subgroup for each membrane. The subgroups are named by the membrane index. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\ntype_id\n\n\nattrs(group[\"membranes/1\"])[\"type_id\"]\n\n1\n\n\nThis membrane’s type id.\n\n\n\n\n\n\n🔢 trilist\n\n\ncollect(group[\"membranes/1/trilist\"])\n\n3×1914 Matrix{Int64}:\n 2 871 836 517 520 462 409 416 … 792 688 226 201 450 326 164\n 848 807 732 412 362 635 656 845 913 354 652 920 923 956 781\n 238 630 203 190 623 853 733 608 875 944 373 958 958 959 959\n\n\nEach column is the 3 vertex indexes of a triangle. Indexes are one based, and follow the right hand rule. Looking at the triangle from the outside in, they have counterclockwise winding.\n\n\n\n🔢 vertlist\n\n\ncollect(group[\"membranes/1/vertlist\"])\n\n3×959 Matrix{Float64}:\n 115.0 -590.25 -552.0 226.75 … 182.375 -316.125 157.75\n -222.75 -232.875 -193.125 137.5 238.125 -429.875 -34.5\n -252.25 275.25 -343.25 -15.5 -49.125 -237.875 -279.875\n\n\nEach column is a vertex coordinate in nm.\n\n\n\n🔢 id\n\n\ncollect(group[\"membranes/1/id\"])\n\n959-element Vector{Int64}:\n 7814\n 10608\n 3334\n 14756\n 12541\n 9498\n 10903\n 2092\n 9775\n 10\n 12855\n 12136\n 1949\n ⋮\n 3653\n 5295\n 3951\n 8003\n 14307\n 12258\n 7204\n 4182\n 7834\n 9058\n 6485\n 10738\n\n\nArray of vertex IDs. Each vertex has an id which is assigned upon initialization and persists throughout its lifetime.\n\n\n\noptional 🔢 copynumbers\n\n\ncollect(group[\"membranes/1/copynumbers\"])\n\n3×959 Matrix{Int64}:\n 0 0 0 0 0 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 0 0 0 0 0\n 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n\n\nArray of vertex membrane species copynumbers. If the membrane has no defined species this dataset will not exist.", "crumbs": [ "Reference", "File Formats" @@ -1367,7 +1367,7 @@ "href": "reference/fileformats.html#snapshot-group", "title": "File Formats", "section": "", - "text": "A snapshot describes the state of a Context at a single point in time.\nA snapshot can be used to set the state of a Context if it was constructed with the same system and parameters as the Context used to create the snapshot. Trying to load a snapshot into a Context constructed with a different system or parameters may lead to unexpected results.\nBy default units are in nm, pN, and s. Coordinates are relative to the center of the grid.\nThe snapshot doesn’t hold the exact full state of a Context, simulations restarted from a snapshot may not have the exact same results because:\n\nThe snapshot doesn’t store the state of the random number generator.\nCoordinates may be rounded to save disk space.\nDictionaries and other internal data structures may get reordered and or resorted when the snapshot is loaded.\nMultithreading may be non deterministic.\n\nBut if rounding isn’t too extreme, the reloaded Context should have the same statistics.\n\n\nThe snapshot format is versioned by the “version” attribute. The current snapshot version is:\n\nusing MEDYAN\nMEDYAN.SNAPSHOT_VERSION\n\nv\"0.8.0\"\n\n\nCurrently before snapshot version 1.0.0 anything goes.\nAfter snapshot version 1.0.0 is released.\nSnapshots written with a previous snapshot version above v\"1\" should be readable. Snapshots written with a newer snapshot version are generally not readable.\nIf new agent types are added to MEDYAN.jl, usually only the minor version needs to be updated, as nothing special needs to be done to read older snapshot versions without that added agent type.\nIf new data is added to an existing agent type, also usually only the minor version needs to be increment, though the case of the new data not existing must be handled with some default.\nIf the way an existing agent type is stored significantly changes, such that external code analyzing the snapshot would need to be modified, the major version must be incremented. Also if possible there should be a function to update a snapshot from the old version to the new version.\n\n\nAny group, dataset, or attribute name prefixed with with “#” can change format or be removed without changing the snapshot version.\n“#experimental” is used for saving new types of agents or other data that doesn’t have a stable format yet.\n“#comment” is used for saving human readable comments that could change in format or wording.\n\n\n\n\n\nusing MEDYAN\nusing SmallZarrGroups\ncinit, s = MEDYAN.example_all_sites_context()\ngroup = MEDYAN.snapshot(cinit)\n\n\n\n\n\n\n\nSnapshot 📂\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\ntime (s)\n\n\nattrs(group)[\"time (s)\"]\n\n0.0\n\n\nDefault: No change\nSee MEDYAN.set_time!\n\n\n\nversion\n\n\nattrs(group)[\"version\"]\n\n\"0.8.0\"\n\n\nDefault: No change\nSee Snapshot Versioning\n\n\n\nuuid\n\n\nattrs(group)[\"uuid\"]\n\n\"37eee81f-88ae-4d11-b6b3-d38e1ccf0a08\"\n\n\nMust be set to exactly “37eee81f-88ae-4d11-b6b3-d38e1ccf0a08”\nto be considered a valid MEDYAN snapshot.\n\n\n\n\n\n\n\n\n\n\n🔢\n\n\n\n\n\n\n\ndiffusingcounts\n\n\ncollect(group[\"diffusingcounts\"])\n\n2×4 Matrix{Int32}:\n 0 100 40 0\n 0 1000 400 0\n\n\nDefault: Empty\nIndexed by [species id, compartment id] to give count.\nSee MEDYAN.chem_adddiffusingcount!\n\n\n\nfixedcounts\n\n\ncollect(group[\"fixedcounts\"])\n\n2×4 Matrix{Float64}:\n 10.25 0.0 0.0 0.0\n 0.0 0.0 0.0 20.25\n\n\nDefault: Empty\nIndexed by [species id, compartment id] to give count.\nSee MEDYAN.chem_addfixedcount!\n\n\n\n\n\n\n\n\n\n\n\n📂\n\n\n\n\n\n\n\n\n\n\n\n\nchemboundary\n\n\n\n\n\nThere is a dataset for each type of boundary, the total boundary is an intersection of the following.\nSee MEDYAN.Boundary\n\n\n🔢 capsules\n\n\ncollect(group[\"chemboundary/capsules\"])\n\n8×1 Matrix{Float64}:\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 10000.0\n 1.0\n\n\nDefault: Empty\nEach column of the dataset is a capsule.\n\n\n\n🔢 planes\n\n\ncollect(group[\"chemboundary/planes\"])\n\n4×6 Matrix{Float64}:\n -10.0 10.0 0.0 0.0 0.0 0.0\n 0.0 0.0 -10.0 10.0 0.0 0.0\n 0.0 0.0 0.0 0.0 -10.0 10.0\n 10000.0 10000.0 2500.0 2500.0 2500.0 2500.0\n\n\nDefault: Empty\nEach column of the dataset is a plane.\n\n\n\n\n\n\n\n\n\n\n\n\nfilaments\n\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nposition_scale\n\n\nattrs(group[\"filaments\"])[\"position_scale\"]\n\n3\n\n\nDefault: No effect\nFilament positions were rounded to the nearest 2^-position_scale nm when saved.\n\n\n\n\n\nThere is a subgroup for each filament type with at least one filament. The subgroups are named by their filament type id. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n🔢 endloadforces\n\n\ncollect(group[\"filaments/1/endloadforces\"])\n\n2×2 Matrix{Float64}:\n 0.0 0.0\n 0.0 0.0\n\n\nFilament end load forces (pN).\nEach row is the load force on the minus and plus ends of a filament.\n\n\n\n🔢 fids\n\n\ncollect(group[\"filaments/1/fids\"])\n\n2-element Vector{Int32}:\n 1\n 2\n\n\nFilament ids.\n\n\n\n🔢 minusend_num_notminimized\n\n\ncollect(group[\"filaments/1/minusend_num_notminimized\"])\n\n2-element Vector{Int32}:\n 0\n 0\n\n\nNumber of newly added monomers to the filament minus ends since last minimization.\n\n\n\n🔢 plusend_num_notminimized\n\n\ncollect(group[\"filaments/1/plusend_num_notminimized\"])\n\n2-element Vector{Int32}:\n 0\n 0\n\n\nNumber of newly added monomers to the filament plus ends since last minimization.\n\n\n\n🔢 num_cylinders\n\n\ncollect(group[\"filaments/1/num_cylinders\"])\n\n2-element Vector{Int32}:\n 1\n 1\n\n\nNumber of cylinders per filament.\n\n\n\n🔢 num_monomers\n\n\ncollect(group[\"filaments/1/num_monomers\"])\n\n2-element Vector{Int32}:\n 9\n 9\n\n\nNumber of monomers per filament.\n\n\n\n🔢 node_mids\n\n\ncollect(group[\"filaments/1/node_mids\"])\n\n2-element Vector{Int32}:\n 1\n 1\n\n\nThe monomer ids at the minus ends of the cylinders.\n |\n -----+-----|-----+-----\n minus end <---- M | M | (M) | M ----> plus end\n -----+-----|-----+-----\n |\n ^ A nodeposition is indicated by the line.\nThe monomer id with parenthesis (M) will in node_mids\n\n\n\n🔢 nodepositions\n\n\ncollect(group[\"filaments/1/nodepositions\"])\n\n4×3 Matrix{Float64}:\n -530.0 -50.0 -50.0\n -440.0 -50.0 -50.0\n -520.0 -49.0 -50.0\n -430.0 -49.0 -50.0\n\n\nEach row is a node position in nm.\n\n\n\n🔢 monomerstates\n\n\ncollect(group[\"filaments/1/monomerstates\"])\n\n18-element Vector{UInt8}:\n 0x01\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x05\n 0x01\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x05\n\n\nMonomer states.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlink_2mons\n\n\n\n\n\nThere is a subgroup for each link_2mon type with at least one link_2mon. The subgroups are named by their link_2mon type id. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nnum_link_2mons\n\n\nattrs(group[\"link_2mons/1\"])[\"num_link_2mons\"]\n\n2\n\n\nNumber of link_2mons of this type.\n\n\n\nnext_lid\n\n\nattrs(group[\"link_2mons/1\"])[\"next_lid\"]\n\n3\n\n\nThe default next link id for new links.\nThis should be greater than all the existing lids.\n\n\n\n\n\n\n🔢 endnames\n\n\ncollect(group[\"link_2mons/1/endnames\"])\n\n2×6 Matrix{Int64}:\n 1 1 2 1 1 2\n 1 1 2 1 2 2\n\n\nThe pairs of monomers that the link_2mons are linked between. The monomer pairs are directed and unique.\nEach row of this matrix represents two monomers. The 6 integers per row are in order:\n\nMinus end filament type id.\nMinus end filament id.\nMinus end monomer id.\nPlus end filament type id.\nPlus end filament id.\nPlus end monomer id.\n\n\n\n\n🔢 lids\n\n\ncollect(group[\"link_2mons/1/lids\"])\n\n2-element Vector{Int64}:\n 1\n 2\n\n\nThe link_2mon ids.\nLinks retain their ids while they remain bound.\n\n\n\n📂 state\n\nDefault: default link_2mon_state\nSee MEDYAN.chem_setlink_2mon_state! and MEDYAN.Link2MonState\nThe state of a link_2mon, organized in a nested struct of vector like form. Any static arrays will be unwrapped into a tuple of vectors, in column major order. The “name” attribute of each subgroup and dataset is the corresponding property name in the StructArray Any property in the default state that isn’t in the snapshot will stay at its default value.\n\ngroup[\"link_2mons/1/state\"]\n\n📂\n├─ 📂 1 🏷️ name => \"chemstate\",\n| ├─ 🔢 1: 2 Int64 🏷️ name => \"a\",\n| └─ 🔢 2: 2 Float64 🏷️ name => \"b\",\n├─ 📂 2 🏷️ name => \"mechstate\",\n| └─ 📂 1 🏷️ name => \"â\",\n| ├─ 🔢 1: 2 Float32 🏷️ name => \"1\",\n| ├─ 🔢 2: 2 Float32 🏷️ name => \"2\",\n| └─ 🔢 3: 2 Float32 🏷️ name => \"3\",\n└─ 🔢 3: 2 Bool 🏷️ name => \"is_minimized\",\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nmechboundary\n\n\n\n\n\nThere is a dataset for each type of boundary, the total boundary is an intersection of the following.\nSee MEDYAN.Boundary\n\n\n🔢 capsules\n\n\ncollect(group[\"mechboundary/capsules\"])\n\n8×1 Matrix{Float64}:\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 10000.0\n 1.0\n\n\nDefault: Empty\nEach column of the dataset is a capsule.\n\n\n\n🔢 planes\n\n\ncollect(group[\"mechboundary/planes\"])\n\n4×6 Matrix{Float64}:\n -10.0 10.0 0.0 0.0 0.0 0.0\n 0.0 0.0 -10.0 10.0 0.0 0.0\n 0.0 0.0 0.0 0.0 -10.0 10.0\n 10000.0 10000.0 2500.0 2500.0 2500.0 2500.0\n\n\nDefault: Empty\nEach column of the dataset is a plane.\n\n\n\n\n\n\n\n\n\n\n\n\nmembranes\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nnum_membranes\n\n\nattrs(group[\"membranes\"])[\"num_membranes\"]\n\n1\n\n\nTotal number of membranes.\n\n\n\nposition_scale\n\n\nattrs(group[\"membranes\"])[\"position_scale\"]\n\n3\n\n\nDefault: No effect\nPositions were rounded to the nearest 2^-position_scale nm when saved.\n\n\n\n\nThere is a subgroup for each membrane. The subgroups are named by the membrane index. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\ntype_id\n\n\nattrs(group[\"membranes/1\"])[\"type_id\"]\n\n1\n\n\nThis membrane’s type id.\n\n\n\n\n\n\n🔢 trilist\n\n\ncollect(group[\"membranes/1/trilist\"])\n\n3×1914 Matrix{Int64}:\n 2 871 836 517 520 462 409 416 … 792 688 226 201 450 326 164\n 848 807 732 412 362 635 656 845 913 354 652 920 923 956 781\n 238 630 203 190 623 853 733 608 875 944 373 958 958 959 959\n\n\nEach column is the 3 vertex indexes of a triangle. Indexes are one based, and follow the right hand rule. Looking at the triangle from the outside in, they have counterclockwise winding.\n\n\n\n🔢 vertlist\n\n\ncollect(group[\"membranes/1/vertlist\"])\n\n3×959 Matrix{Float64}:\n 115.0 -590.25 -552.0 226.75 … 182.375 -316.125 157.75\n -222.75 -232.875 -193.125 137.5 238.125 -429.875 -34.5\n -252.25 275.25 -343.25 -15.5 -49.125 -237.875 -279.875\n\n\nEach column is a vertex coordinate in nm.\n\n\n\n🔢 id\n\n\ncollect(group[\"membranes/1/id\"])\n\n959-element Vector{Int64}:\n 7814\n 10608\n 3334\n 14756\n 12541\n 9498\n 10903\n 2092\n 9775\n 10\n 12855\n 12136\n 1949\n ⋮\n 3653\n 5295\n 3951\n 8003\n 14307\n 12258\n 7204\n 4182\n 7834\n 9058\n 6485\n 10738\n\n\nArray of vertex IDs. Each vertex has an id which is assigned upon initialization and persists throughout its lifetime.\n\n\n\noptional 🔢 copynumbers\n\n\ncollect(group[\"membranes/1/copynumbers\"])\n\n3×959 Matrix{Int64}:\n 0 0 0 0 0 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 0 0 0 0 0\n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n\n\nArray of vertex membrane species copynumbers. If the membrane has no defined species this dataset will not exist.", + "text": "A snapshot describes the state of a Context at a single point in time.\nA snapshot can be used to set the state of a Context if it was constructed with the same system and parameters as the Context used to create the snapshot. Trying to load a snapshot into a Context constructed with a different system or parameters may lead to unexpected results.\nBy default units are in nm, pN, and s. Coordinates are relative to the center of the grid.\nThe snapshot doesn’t hold the exact full state of a Context, simulations restarted from a snapshot may not have the exact same results because:\n\nThe snapshot doesn’t store the state of the random number generator.\nCoordinates may be rounded to save disk space.\nDictionaries and other internal data structures may get reordered and or resorted when the snapshot is loaded.\nMultithreading may be non deterministic.\n\nBut if rounding isn’t too extreme, the reloaded Context should have the same statistics.\n\n\nThe snapshot format is versioned by the “version” attribute. The current snapshot version is:\n\nusing MEDYAN\nMEDYAN.SNAPSHOT_VERSION\n\nv\"0.8.0\"\n\n\nCurrently before snapshot version 1.0.0 anything goes.\nAfter snapshot version 1.0.0 is released.\nSnapshots written with a previous snapshot version above v\"1\" should be readable. Snapshots written with a newer snapshot version are generally not readable.\nIf new agent types are added to MEDYAN.jl, usually only the minor version needs to be updated, as nothing special needs to be done to read older snapshot versions without that added agent type.\nIf new data is added to an existing agent type, also usually only the minor version needs to be increment, though the case of the new data not existing must be handled with some default.\nIf the way an existing agent type is stored significantly changes, such that external code analyzing the snapshot would need to be modified, the major version must be incremented. Also if possible there should be a function to update a snapshot from the old version to the new version.\n\n\nAny group, dataset, or attribute name prefixed with with “#” can change format or be removed without changing the snapshot version.\n“#experimental” is used for saving new types of agents or other data that doesn’t have a stable format yet.\n“#comment” is used for saving human readable comments that could change in format or wording.\n\n\n\n\n\nusing MEDYAN\nusing SmallZarrGroups\ncinit, s = MEDYAN.example_all_sites_context()\ngroup = MEDYAN.snapshot(cinit)\n\n\n\n\n\n\n\nSnapshot 📂\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\ntime (s)\n\n\nattrs(group)[\"time (s)\"]\n\n0.0\n\n\nDefault: No change\nSee MEDYAN.set_time!\n\n\n\nversion\n\n\nattrs(group)[\"version\"]\n\n\"0.8.0\"\n\n\nDefault: No change\nSee Snapshot Versioning\n\n\n\nuuid\n\n\nattrs(group)[\"uuid\"]\n\n\"37eee81f-88ae-4d11-b6b3-d38e1ccf0a08\"\n\n\nMust be set to exactly “37eee81f-88ae-4d11-b6b3-d38e1ccf0a08”\nto be considered a valid MEDYAN snapshot.\n\n\n\n\n\n\n\n\n\n\n🔢\n\n\n\n\n\n\n\ndiffusingcounts\n\n\ncollect(group[\"diffusingcounts\"])\n\n2×4 Matrix{Int32}:\n 0 100 40 0\n 0 1000 400 0\n\n\nDefault: Empty\nIndexed by [species id, compartment id] to give count.\nSee MEDYAN.chem_adddiffusingcount!\n\n\n\nfixedcounts\n\n\ncollect(group[\"fixedcounts\"])\n\n2×4 Matrix{Float64}:\n 10.25 0.0 0.0 0.0\n 0.0 0.0 0.0 20.25\n\n\nDefault: Empty\nIndexed by [species id, compartment id] to give count.\nSee MEDYAN.chem_addfixedcount!\n\n\n\n\n\n\n\n\n\n\n\n📂\n\n\n\n\n\n\n\n\n\n\n\n\nchemboundary\n\n\n\n\n\nThere is a dataset for each type of boundary, the total boundary is an intersection of the following.\nSee MEDYAN.Boundary\n\n\n🔢 capsules\n\n\ncollect(group[\"chemboundary/capsules\"])\n\n8×1 Matrix{Float64}:\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 10000.0\n 1.0\n\n\nDefault: Empty\nEach column of the dataset is a capsule.\n\n\n\n🔢 planes\n\n\ncollect(group[\"chemboundary/planes\"])\n\n4×6 Matrix{Float64}:\n -10.0 10.0 0.0 0.0 0.0 0.0\n 0.0 0.0 -10.0 10.0 0.0 0.0\n 0.0 0.0 0.0 0.0 -10.0 10.0\n 10000.0 10000.0 2500.0 2500.0 2500.0 2500.0\n\n\nDefault: Empty\nEach column of the dataset is a plane.\n\n\n\n\n\n\n\n\n\n\n\n\nfilaments\n\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nposition_scale\n\n\nattrs(group[\"filaments\"])[\"position_scale\"]\n\n3\n\n\nDefault: No effect\nFilament positions were rounded to the nearest 2^-position_scale nm when saved.\n\n\n\n\n\nThere is a subgroup for each filament type with at least one filament. The subgroups are named by their filament type id. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n🔢 endloadforces\n\n\ncollect(group[\"filaments/1/endloadforces\"])\n\n2×2 Matrix{Float64}:\n 0.0 0.0\n 0.0 0.0\n\n\nFilament end load forces (pN).\nEach row is the load force on the minus and plus ends of a filament.\n\n\n\n🔢 fids\n\n\ncollect(group[\"filaments/1/fids\"])\n\n2-element Vector{Int32}:\n 1\n 2\n\n\nFilament ids.\n\n\n\n🔢 minusend_num_notminimized\n\n\ncollect(group[\"filaments/1/minusend_num_notminimized\"])\n\n2-element Vector{Int32}:\n 0\n 0\n\n\nNumber of newly added monomers to the filament minus ends since last minimization.\n\n\n\n🔢 plusend_num_notminimized\n\n\ncollect(group[\"filaments/1/plusend_num_notminimized\"])\n\n2-element Vector{Int32}:\n 0\n 0\n\n\nNumber of newly added monomers to the filament plus ends since last minimization.\n\n\n\n🔢 num_cylinders\n\n\ncollect(group[\"filaments/1/num_cylinders\"])\n\n2-element Vector{Int32}:\n 1\n 1\n\n\nNumber of cylinders per filament.\n\n\n\n🔢 num_monomers\n\n\ncollect(group[\"filaments/1/num_monomers\"])\n\n2-element Vector{Int32}:\n 9\n 9\n\n\nNumber of monomers per filament.\n\n\n\n🔢 node_mids\n\n\ncollect(group[\"filaments/1/node_mids\"])\n\n2-element Vector{Int32}:\n 1\n 1\n\n\nThe monomer ids at the minus ends of the cylinders.\n |\n -----+-----|-----+-----\n minus end <---- M | M | (M) | M ----> plus end\n -----+-----|-----+-----\n |\n ^ A nodeposition is indicated by the line.\nThe monomer id with parenthesis (M) will in node_mids\n\n\n\n🔢 nodepositions\n\n\ncollect(group[\"filaments/1/nodepositions\"])\n\n4×3 Matrix{Float64}:\n -530.0 -50.0 -50.0\n -440.0 -50.0 -50.0\n -520.0 -49.0 -50.0\n -430.0 -49.0 -50.0\n\n\nEach row is a node position in nm.\n\n\n\n🔢 monomerstates\n\n\ncollect(group[\"filaments/1/monomerstates\"])\n\n18-element Vector{UInt8}:\n 0x01\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x05\n 0x01\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x02\n 0x05\n\n\nMonomer states.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlink_2mons\n\n\n\n\n\nThere is a subgroup for each link_2mon type with at least one link_2mon. The subgroups are named by their link_2mon type id. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nnum_link_2mons\n\n\nattrs(group[\"link_2mons/1\"])[\"num_link_2mons\"]\n\n2\n\n\nNumber of link_2mons of this type.\n\n\n\nnext_lid\n\n\nattrs(group[\"link_2mons/1\"])[\"next_lid\"]\n\n3\n\n\nThe default next link id for new links.\nThis should be greater than all the existing lids.\n\n\n\n\n\n\n🔢 endnames\n\n\ncollect(group[\"link_2mons/1/endnames\"])\n\n2×6 Matrix{Int64}:\n 1 1 2 1 1 2\n 1 1 2 1 2 2\n\n\nThe pairs of monomers that the link_2mons are linked between. The monomer pairs are directed and unique.\nEach row of this matrix represents two monomers. The 6 integers per row are in order:\n\nMinus end filament type id.\nMinus end filament id.\nMinus end monomer id.\nPlus end filament type id.\nPlus end filament id.\nPlus end monomer id.\n\n\n\n\n🔢 lids\n\n\ncollect(group[\"link_2mons/1/lids\"])\n\n2-element Vector{Int64}:\n 1\n 2\n\n\nThe link_2mon ids.\nLinks retain their ids while they remain bound.\n\n\n\n📂 state\n\nDefault: default link_2mon_state\nSee MEDYAN.chem_setlink_2mon_state! and MEDYAN.Link2MonState\nThe state of a link_2mon, organized in a nested struct of vector like form. Any static arrays will be unwrapped into a tuple of vectors, in column major order. The “name” attribute of each subgroup and dataset is the corresponding property name in the StructArray Any property in the default state that isn’t in the snapshot will stay at its default value.\n\ngroup[\"link_2mons/1/state\"]\n\n📂\n├─ 📂 1 🏷️ name => \"chemstate\",\n| ├─ 🔢 1: 2 Int64 🏷️ name => \"a\",\n| └─ 🔢 2: 2 Float64 🏷️ name => \"b\",\n├─ 📂 2 🏷️ name => \"mechstate\",\n| └─ 📂 1 🏷️ name => \"â\",\n| ├─ 🔢 1: 2 Float32 🏷️ name => \"1\",\n| ├─ 🔢 2: 2 Float32 🏷️ name => \"2\",\n| └─ 🔢 3: 2 Float32 🏷️ name => \"3\",\n└─ 🔢 3: 2 Bool 🏷️ name => \"is_minimized\",\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nmechboundary\n\n\n\n\n\nThere is a dataset for each type of boundary, the total boundary is an intersection of the following.\nSee MEDYAN.Boundary\n\n\n🔢 capsules\n\n\ncollect(group[\"mechboundary/capsules\"])\n\n8×1 Matrix{Float64}:\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 0.0\n 10000.0\n 1.0\n\n\nDefault: Empty\nEach column of the dataset is a capsule.\n\n\n\n🔢 planes\n\n\ncollect(group[\"mechboundary/planes\"])\n\n4×6 Matrix{Float64}:\n -10.0 10.0 0.0 0.0 0.0 0.0\n 0.0 0.0 -10.0 10.0 0.0 0.0\n 0.0 0.0 0.0 0.0 -10.0 10.0\n 10000.0 10000.0 2500.0 2500.0 2500.0 2500.0\n\n\nDefault: Empty\nEach column of the dataset is a plane.\n\n\n\n\n\n\n\n\n\n\n\n\nmembranes\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\nnum_membranes\n\n\nattrs(group[\"membranes\"])[\"num_membranes\"]\n\n1\n\n\nTotal number of membranes.\n\n\n\nposition_scale\n\n\nattrs(group[\"membranes\"])[\"position_scale\"]\n\n3\n\n\nDefault: No effect\nPositions were rounded to the nearest 2^-position_scale nm when saved.\n\n\n\n\nThere is a subgroup for each membrane. The subgroups are named by the membrane index. For example:\n\n\n\n\n\n\n\n📂 1\n\n\n\n\n\n\n\n\n\n\n\n🏷️\n\n\n\n\n\n\n\ntype_id\n\n\nattrs(group[\"membranes/1\"])[\"type_id\"]\n\n1\n\n\nThis membrane’s type id.\n\n\n\n\n\n\n🔢 trilist\n\n\ncollect(group[\"membranes/1/trilist\"])\n\n3×1914 Matrix{Int64}:\n 2 871 836 517 520 462 409 416 … 792 688 226 201 450 326 164\n 848 807 732 412 362 635 656 845 913 354 652 920 923 956 781\n 238 630 203 190 623 853 733 608 875 944 373 958 958 959 959\n\n\nEach column is the 3 vertex indexes of a triangle. Indexes are one based, and follow the right hand rule. Looking at the triangle from the outside in, they have counterclockwise winding.\n\n\n\n🔢 vertlist\n\n\ncollect(group[\"membranes/1/vertlist\"])\n\n3×959 Matrix{Float64}:\n 115.0 -590.25 -552.0 226.75 … 182.375 -316.125 157.75\n -222.75 -232.875 -193.125 137.5 238.125 -429.875 -34.5\n -252.25 275.25 -343.25 -15.5 -49.125 -237.875 -279.875\n\n\nEach column is a vertex coordinate in nm.\n\n\n\n🔢 id\n\n\ncollect(group[\"membranes/1/id\"])\n\n959-element Vector{Int64}:\n 7814\n 10608\n 3334\n 14756\n 12541\n 9498\n 10903\n 2092\n 9775\n 10\n 12855\n 12136\n 1949\n ⋮\n 3653\n 5295\n 3951\n 8003\n 14307\n 12258\n 7204\n 4182\n 7834\n 9058\n 6485\n 10738\n\n\nArray of vertex IDs. Each vertex has an id which is assigned upon initialization and persists throughout its lifetime.\n\n\n\noptional 🔢 copynumbers\n\n\ncollect(group[\"membranes/1/copynumbers\"])\n\n3×959 Matrix{Int64}:\n 0 0 0 0 0 0 0 0 0 0 0 0 0 … 0 0 0 0 0 0 0 0 0 0 0 0\n 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n\n\nArray of vertex membrane species copynumbers. If the membrane has no defined species this dataset will not exist.", "crumbs": [ "Reference", "File Formats" diff --git a/julia-docs/dev/sitemap.xml b/julia-docs/dev/sitemap.xml index e187959..e636faa 100644 --- a/julia-docs/dev/sitemap.xml +++ b/julia-docs/dev/sitemap.xml @@ -2,251 +2,251 @@ https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.set_chemboundary--0aa6e4e95c60f9f7.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_adddiffusingcount--2264be341b81a600.html - 2024-11-11T02:20:39.988Z + 2024-11-14T01:22:17.158Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_removelink_2mon--e25a3fd69f791cd0.html - 2024-11-11T02:20:39.948Z + 2024-11-14T01:22:17.122Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary_cylinder-33a45da15f9672d3.html - 2024-11-11T02:20:39.968Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.vertexstate-450b7005d2acebe8.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_link_2mon_site--b9548c4a2d23aac9.html - 2024-11-11T02:20:39.960Z + 2024-11-14T01:22:17.130Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monstate-9845e7e08620ea8a.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.146Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_plusvector-b7271c7721602813.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.138Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.load_snapshot--e534be293ce74465.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.set_mechboundary--b5e26b6b690256aa.html - 2024-11-11T02:20:39.956Z + 2024-11-14T01:22:17.130Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary_plane-2caa9b52b3b3f0cc.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_depolymerize--a5f262191e484dd4.html - 2024-11-11T02:20:39.968Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_minimized-5b17adaf7d8a4f62.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.defer_chem_caching--9538a1c449f3da93.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary_box-060d4c56df40146a.html - 2024-11-11T02:20:39.960Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_diffusion_coeff--a77d1ef833cfdedd.html - 2024-11-11T02:20:39.960Z + 2024-11-14T01:22:17.130Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_setmonomerstate--ed756af0de4db0ca.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.158Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsitemonomerstatematch-c495443de74016ce.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.membranesitediffusing-66734014eb12ddb1.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_removefilament--f36888837f14bad7.html - 2024-11-11T02:20:39.948Z + 2024-11-14T01:22:17.122Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.grididat-8671e01413346deb.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.fil_node_mon_ids-b1d3d66a81296343.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.146Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.agentnames-948e6a24b4fb0cb5.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_polymerize--7a5e88ac36e4ccbf.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.146Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_setlink_2mon_state--82213403237b28e5.html - 2024-11-11T02:20:39.988Z + 2024-11-14T01:22:17.162Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.empty--418304748816268d.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.146Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.decimated2monsiteminanglerange-fc006e574376cfff.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.138Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.adapt_membranes--1d26092defd0f4fa.html - 2024-11-11T02:20:39.968Z + 2024-11-14T01:22:17.138Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.fil_mon_states-3db9714621903b78.html - 2024-11-11T02:20:39.952Z + 2024-11-14T01:22:17.126Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary-f1e7be79002a27f8.html - 2024-11-11T02:20:39.956Z + 2024-11-14T01:22:17.130Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.newfilament_rand--432ec27232aad41e.html - 2024-11-11T02:20:39.948Z + 2024-11-14T01:22:17.122Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.length-7ea31a421de7d258.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.146Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/mon_link_2mon_sites.html - 2024-11-11T02:20:37.976Z + 2024-11-14T01:22:15.266Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/decimated_2mon_sites.html - 2024-11-11T02:20:37.980Z + 2024-11-14T01:22:15.270Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/link_2mon_sites.html - 2024-11-11T02:20:37.984Z + 2024-11-14T01:22:15.274Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/cadherins/possiblecadherinsite.html - 2024-11-11T02:20:37.984Z + 2024-11-14T01:22:15.274Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/util/stableindex.html - 2024-11-11T02:20:39.936Z + 2024-11-14T01:22:17.110Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/grids.html - 2024-11-11T02:20:37.976Z + 2024-11-14T01:22:15.266Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/filamentendsites.html - 2024-11-11T02:20:39.944Z + 2024-11-14T01:22:17.114Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/auxprocs.html - 2024-11-11T02:20:39.940Z + 2024-11-14T01:22:17.114Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/membrane/meshadapt.html - 2024-11-11T02:20:37.976Z + 2024-11-14T01:22:15.266Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/context.html - 2024-11-11T02:20:39.936Z + 2024-11-14T01:22:17.110Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_exists-898c415a5eddc619.html - 2024-11-11T02:20:39.956Z + 2024-11-14T01:22:17.130Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addunbindinglink_2mon_site--76d17dbe625169cd.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.138Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.set_enable_cylinder_volume_exclusion--38c20ab68ab8bf1a.html - 2024-11-11T02:20:39.968Z + 2024-11-14T01:22:17.138Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_decimated_2mon_site--ad56e7ee56067940.html - 2024-11-11T02:20:39.960Z + 2024-11-14T01:22:17.130Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.adddiffusingcount_rand--9d3ddfabbceeef92.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.run_chemistry--dda22fac5c555b9e.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.158Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsiteone-9886bc1476194731.html - 2024-11-11T02:20:39.952Z + 2024-11-14T01:22:17.126Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monparams-d960d08f0808df0c.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.146Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_position-83983d8916347411.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsiteslipbond-2cec57cbea12864e.html - 2024-11-11T02:20:39.956Z + 2024-11-14T01:22:17.126Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.num_filtypes-b9943bbf7a9c7781.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.sever_filament--a0475617dc0fbf93.html - 2024-11-11T02:20:39.956Z + 2024-11-14T01:22:17.126Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addreactioncallback--9c9d46adeded2d88.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.146Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.centerof-e902b9bb7b2a6caf.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.158Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addfilament_reaction--63195cbff2ab4237.html - 2024-11-11T02:20:39.992Z + 2024-11-14T01:22:17.190Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.---a21e771ed8ea7d6f.html - 2024-11-11T02:20:39.988Z + 2024-11-14T01:22:17.162Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addfilamentsite--eb6bfd871a21b6f4.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.setindex--725f722fff4cfa6d.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.copy-4ca5eb8401ab10b2.html - 2024-11-11T02:20:39.948Z + 2024-11-14T01:22:17.122Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.set_time--a6dd8f73f68a3759.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.158Z https://medyan-dev.github.io/julia-docs/dev/reference/fileformats.html @@ -286,250 +286,250 @@ https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addpossiblecadherinsite--ae8586daa0b5454a.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.membranespeciesparams-548fecb643fc2599.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_newfilament--7a45f2860949bee3.html - 2024-11-11T02:20:39.988Z + 2024-11-14T01:22:17.162Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsitemotorcatch-0185d4c95b91e30b.html - 2024-11-11T02:20:39.960Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addfilamentend_reaction--83ec3db37b4e2130.html - 2024-11-11T02:20:39.996Z + 2024-11-14T01:22:17.194Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsitecount-ab4fcc1eb50c2313.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.filamentsitegeneral-0d87ce44fed17b2c.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addmembranediffusingcount_rand--7b719dca63a36b1b.html - 2024-11-11T02:20:39.968Z + 2024-11-14T01:22:17.138Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.vertexname-2d87a6a86cabc4f5.html - 2024-11-11T02:20:39.988Z + 2024-11-14T01:22:17.162Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.randompoint-83e939bdee528294.html - 2024-11-11T02:20:39.960Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_link_2mon--b801c872b8ff168a.html - 2024-11-11T02:20:39.956Z + 2024-11-14T01:22:17.130Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.refresh_chem_cache--f90ebca1f896ad2c.html - 2024-11-11T02:20:39.992Z + 2024-11-14T01:22:17.166Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.iterate-5228367cd62c0bf2.html - 2024-11-11T02:20:39.948Z + 2024-11-14T01:22:17.122Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addfilamentendsite--95612d72d1fda05f.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.cubicgrid-fe4b7cc2dceb0431.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.158Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.haskey-e7d3f961991e2663.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.compute_all_membrane_geometry-_system-05b4d2a32e31560c.html - 2024-11-11T02:20:39.988Z + 2024-11-14T01:22:17.162Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.fil_num_unmin_ends-813ffc641f9ac9da.html - 2024-11-11T02:20:39.960Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_membranesitereaction--59d1fe245302e071.html - 2024-11-11T02:20:39.968Z + 2024-11-14T01:22:17.138Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.cadherinparams-b70febdaf4c8fba5.html - 2024-11-11T02:20:39.992Z + 2024-11-14T01:22:17.190Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_3states-6c16efb303a60058.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/membrane/membranesites.html - 2024-11-11T02:20:37.980Z + 2024-11-14T01:22:15.270Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/filamentsites.html - 2024-11-11T02:20:37.980Z + 2024-11-14T01:22:15.270Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/sever_filament.html - 2024-11-11T02:20:37.980Z + 2024-11-14T01:22:15.270Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/sys_def.html - 2024-11-11T02:20:37.976Z + 2024-11-14T01:22:15.262Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/trajectory-io/snapshot.html - 2024-11-11T02:20:39.944Z + 2024-11-14T01:22:17.114Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/util/math/cuboidslicing.html - 2024-11-11T02:20:37.980Z + 2024-11-14T01:22:15.270Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/sys_def-types.html - 2024-11-11T02:20:39.940Z + 2024-11-14T01:22:17.114Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/boundary.html - 2024-11-11T02:20:37.976Z + 2024-11-14T01:22:15.266Z https://medyan-dev.github.io/julia-docs/dev/docstrings/src/minimize_energy.html - 2024-11-11T02:20:39.944Z + 2024-11-14T01:22:17.114Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link_2mon_state-6d59dcd98ed7e303.html - 2024-11-11T02:20:39.948Z + 2024-11-14T01:22:17.122Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsitemotorstall-deb10f7964d5bef9.html - 2024-11-11T02:20:39.988Z + 2024-11-14T01:22:17.162Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_filament_params--74c7d0081157ca31.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.158Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.filter_grididat-58a94154d21e32b0.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.push--8715d52e2302aaeb.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addmembranesite--892875b2c079002d.html - 2024-11-11T02:20:39.952Z + 2024-11-14T01:22:17.126Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.decimated2monsiterange-8afd8f3188bbcd4a.html - 2024-11-11T02:20:39.968Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addcadherin--3c757785fa097c75.html - 2024-11-11T02:20:39.960Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addreaction--da9bd35e7d1df7c3.html - 2024-11-11T02:20:39.968Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link_2mon_endnames-5d0bca4b8e2e3509.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.context-736368ed32b08894.html - 2024-11-11T02:20:39.972Z + 2024-11-14T01:22:17.146Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.filtype_fil_ids-d333c38b9f9b3584.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.cadherinstate-0cd5353e58a90ec2.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.delete--56ef520341df3c06.html - 2024-11-11T02:20:39.956Z + 2024-11-14T01:22:17.126Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary_capsule-1700142f310bd9db.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.154Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.filamentendsitegeneral-7a32ac96fb4364ea.html - 2024-11-11T02:20:39.988Z + 2024-11-14T01:22:17.162Z https://medyan-dev.github.io/julia-docs/dev/docstrings/base.getindex-f593dde852851bc8.html - 2024-11-11T02:20:39.960Z + 2024-11-14T01:22:17.130Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.vertex_state-aa3350c08b68b63a.html - 2024-11-11T02:20:39.968Z + 2024-11-14T01:22:17.142Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.resolve_all_filament_mesh_crossing--a8be83a7d2ad65c7.html - 2024-11-11T02:20:39.992Z + 2024-11-14T01:22:17.190Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_position_plusvector-927d0affbbdfef6f.html - 2024-11-11T02:20:39.948Z + 2024-11-14T01:22:17.122Z https://medyan-dev.github.io/julia-docs/dev/docstrings/nlsolversbase.value---d4fdd3b317023c0e.html - 2024-11-11T02:20:39.980Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.is_chem_cache_valid-8336a8adc58a252f.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.158Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.sysdef-c0c4da7a2b3d4fef.html - 2024-11-11T02:20:39.992Z + 2024-11-14T01:22:17.190Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.monlink2monsiteone-77707f45e082c27e.html - 2024-11-11T02:20:39.992Z + 2024-11-14T01:22:17.166Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addcadherinsite--9e21ac42968d0196.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.138Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.monomername-bb517706cb60c4f5.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.134Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.num_vertexwithstate-3cf6fcd964588d37.html - 2024-11-11T02:20:39.976Z + 2024-11-14T01:22:17.150Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_newlink_2mon--e4f84fe5cfa9a727.html - 2024-11-11T02:20:39.956Z + 2024-11-14T01:22:17.130Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.minimize_energy--84c4aeab5457d3ee.html - 2024-11-11T02:20:39.988Z + 2024-11-14T01:22:17.162Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.fil_node_positions-618a66637eb50781.html - 2024-11-11T02:20:39.964Z + 2024-11-14T01:22:17.138Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_addfixedcount--0286edfebf8ea5e6.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.158Z https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.newmembrane--a714b4a1c87062be.html - 2024-11-11T02:20:39.984Z + 2024-11-14T01:22:17.154Z diff --git a/julia-docs/dev/tutorials/1install.html b/julia-docs/dev/tutorials/1install.html index aac809c..bb9f7b0 100644 --- a/julia-docs/dev/tutorials/1install.html +++ b/julia-docs/dev/tutorials/1install.html @@ -247,7 +247,7 @@

1. Installing MEDYAN.jl

Install julia

MEDYAN.jl is a julia package so first install the julia programming language.

This tutorial was generated using:

-
+
Julia Version 1.11.1
 Commit 8f5b7ca12ad (2024-10-16 10:53 UTC)
diff --git a/julia-docs/dev/tutorials/2rdme.html b/julia-docs/dev/tutorials/2rdme.html
index 573fe46..34276b5 100644
--- a/julia-docs/dev/tutorials/2rdme.html
+++ b/julia-docs/dev/tutorials/2rdme.html
@@ -276,7 +276,7 @@ 

2. Rock Paper Scissors Stochastic Reaction Diffusion

Setup

Open a julia REPL or jupyter notebook using the medyan-tutorial environment you created in tutorial 1.

Load MEDYAN with MEDYANVis for visualization

-
+
using MEDYAN
 using MEDYANVis
 using CairoMakie
@@ -289,7 +289,7 @@ 

Setup

Declaring agent names

The first step is declaring the names of agents in the system.

This system will contain three diffusing species.

-
+
agent_names = MEDYAN.AgentNames(;
     diffusingspeciesnames=[
         :R, # Rock
@@ -306,7 +306,7 @@ 

Declaring agent name

Defining System

After the agent names are declared, the system can be defined.

This is done by constructing a MEDYAN.SysDef object from the agent_names and then mutating it to add parameters, reactions, and callbacks.

-
+
s = MEDYAN.SysDef(agent_names)
MEDYAN.SysDef
@@ -318,7 +318,7 @@ 

Defining System

Add a diffusion coefficient of 1E6 nm²/s to all species. All units are based on nm, s, pN

add_diffusion_coeff!

-
+
D = 1E6
 add_diffusion_coeff!(s, :R, D) # nm²/s
 add_diffusion_coeff!(s, :P, D) # nm²/s
@@ -334,7 +334,7 @@ 

Defining System

Add reactions, paper “beats” rock, scissors “beats” paper, rock “beats” scissors. In this simulation “beats” means convert to self type.

In this case because the reaction is between two diffusing species, it has units of nm³/s. You can think of this as the volume where if exactly one of each reactant existed the rate would be 1 per second.

addreaction!

-
+
rate = 50.0*(500.0^3) # nm³/s
 addreaction!(s,
     "diffusing.P + diffusing.R --> 2diffusing.P",
@@ -370,7 +370,7 @@ 

Creating a grid

This is a box that contains the simulation.

The grid is composed of chemistry voxels, small cubes that can have different counts of the various diffusing species.

Create a 50 by 50 by 1 grid of 500 nm side length voxels.

-
+
L = 50
 grid = CubicGrid((L,L,1),500.0)
@@ -382,7 +382,7 @@

Creating a grid

Creating a Context

The Context is the object the handles the state of a running simulation.

Create a Context using s and grid

-
+
c = MEDYAN.Context(s, grid)
MEDYAN.Context at time 0.0s in CubicGrid([50, 50, 1], 500.0)
@@ -394,7 +394,7 @@

Add agents to th

The context starts empty.

Distribute 2000 of each species randomly to the chem voxels by mutating the context.

adddiffusingcount_rand!

-
+
adddiffusingcount_rand!(c, s.diffusing.R, 2000)
 adddiffusingcount_rand!(c, s.diffusing.P, 2000)
 adddiffusingcount_rand!(c, s.diffusing.S, 2000)
@@ -403,24 +403,24 @@

Add agents to th

Run chemistry

Run chemistry for 1.0s and visualize the results.

-
+
vis = Visualizer()
 setvisible!(vis["/Grid"], false)
 setvisible!(vis["/Axes"], false)
 setvisible!(vis["/Background"], false)

If you open the visualizer in a browser with open(vis) and run the following you should get an animated version of below.

-
+
for i in 1:100
     run_chemistry!(c, 0.01)
     MEDYANVis.drawdiffusing!(vis["diffusing"], c.grid, c.chemistryengine, s; size = 0.8)
     sleep(0.02)
 end
-
+
-