Team Ai
Datasetpublic

SubstrateCommons/parity-fixtures

SubstrateCommons/parity-fixtures Two other simulators' own released substrates, walked here on their surfaces at their acquisitions: the cross-ENGINE check that this engine is not being compared with itself. The reference it reproduces is Robust Monte-Carlo Simulations in Diffusion-MRI: Effect of the Substrate Complexity and Parameter Choice on the Reproducibility of Results (Frontiers in Neuroinformatics), on the same object: grade A by the rule of dmipy-sim#459. Every one of… See the full description on the dataset page: https://huggingface.co/datasets/SubstrateCommons/parity-fixtures.

sourceHugging Faceotherupdated 2d agoView on Hugging Face
0likes286downloads
Dataset Card

SubstrateCommons/parity-fixtures

Two other simulators' own released substrates, walked here on their surfaces at their acquisitions: the cross-ENGINE check that this engine is not being compared with itself. The reference it reproduces is Robust Monte-Carlo Simulations in Diffusion-MRI: Effect of the Substrate Complexity and Parameter Choice on the Reproducibility of Results (Frontiers in Neuroinformatics), on the same object: grade A by the rule of dmipy-sim#459. Every one of the gate's 55 checks passed.

Every number on this card is read from a record in records/ of this dataset, written by the stage that measured it (the reference-pack protocol, dmipy-sim#482); none of it is transcribed, so this card, the gate and any paper read the same files.

The packs

packsubstratechannelsKband (Hz)Twalkerspositions: floor / err / targetcontact: floor / err / targetsizelicencecommit
parity-fixtures/disimpy-cylinder_mesh_closeddisimpy/cylinder_mesh_closedpositions, boundarylocaltime, compartment644570.07 s100,0000.00658 / 9e-05 / 0.003 below target0.0006 / 2e-11 / 0.003 meets82.1 MBMIT2d857bbb
parity-fixtures/mcdc-uAxon_d_1.0_amp_0.2_wL_32.0mcdc-robust/uAxon_d_1.0_amp_0.2_wL_32.0positions, boundarylocaltime, compartment645980.05352 s100,0000.0036 / 4.8e-05 / 0.003 below target8.3e-05 / 2.5e-11 / 0.003 meets82.1 MBLGPL-2.130ad9b9a
parity-fixtures/mcdc-uAxon_d_1.0_amp_1.0_wL_12.0mcdc-robust/uAxon_d_1.0_amp_1.0_wL_12.0positions, boundarylocaltime, compartment645980.05352 s100,0000.00396 / 0.00011 / 0.003 below target4.78e-05 / 1.5e-11 / 0.003 meets82.1 MBLGPL-2.130ad9b9a
parity-fixtures/mcdc-uAxon_d_1.0_amp_2.6_wL_4.0mcdc-robust/uAxon_d_1.0_amp_2.6_wL_4.0positions, boundarylocaltime, compartment645980.05352 s100,0000.00747 / 8.2e-05 / 0.003 below target2.05e-05 / 1.9e-11 / 0.003 meets82.1 MBLGPL-2.130ad9b9a

Published with a hold. disimpy-cylinder ships and its manifest row says so, with a reservation recorded beside the verdict: dmipy-sim#488: this pack's MISST comparison is open. The gate compares the ONE measurement this family declares -- the last of the fixture's protocol, its highest b -- and there the pack agrees with the MISST reference to 1.8e-5, so it passes. #488's evidence is a VECTOR over the protocol's 100 measurements, which no scalar quantity this protocol can express will see (dmipy-sim#493). Read the pack as a faithful record of a walk whose reference is in question.

Read with a caveat of its own: disimpy-cylinder (below, under § What is inside). A caveat keyed on a pack's own name is about THAT pack, and the card puts it beside it.

The trade the design records: the target floor 0.003 needs 485,760 walkers and the 60 GB memory budget allows 185,006 (measured: 0.32 MB resident per walker in the pack stage on this window). The design therefore sets 185,006 walkers; the tier that holds its target at that count is contact, and every tier's achieved floor is certified in the pack and shown on the card.

The save grid is 20 us over 0.05352 s (2,677 saves): MC/DC's own TE on a grid four times finer than their 5,000 steps, so every Delta, delta and pad of their scheme falls on a sample (io.mcdc.read_scheme's lattice rule)

packwalksub-stepsrefused stepswall timepeak residentbudget
disimpy-cylinder100,000 walkers (recorded, not re-walked)150959 s6.5 GB60.0 GB
mcdc-0.2-32.0100,000 walkers (recorded, not re-walked)102159 s8.3 GB60.0 GB
mcdc-1.0-12.0100,000 walkers (recorded, not re-walked)101812 s13.9 GB60.0 GB
mcdc-2.6-4.0100,000 walkers (recorded, not re-walked)10962 s14.1 GB60.0 GB
  • —the pack was walked at 100,000 walkers where this design's pilot sets 185,006; the walk is not repeated, and what holds it to the budget is its own RECORDED peak of 13.9 GB rather than the pilot's projection
  • —the pack was walked at 100,000 walkers where this design's pilot sets 185,006; the walk is not repeated, and what holds it to the budget is its own RECORDED peak of 14.1 GB rather than the pilot's projection
  • —the pack was walked at 100,000 walkers where this design's pilot sets 185,006; the walk is not repeated, and what holds it to the budget is its own RECORDED peak of 6.5 GB rather than the pilot's projection
  • —the pack was walked at 100,000 walkers where this design's pilot sets 185,006; the walk is not repeated, and what holds it to the budget is its own RECORDED peak of 8.3 GB rather than the pilot's projection

What is inside

Three orthogonal cross-sections through the centre of each substrate, rendered from the spec the pack embeds by dmipy_sim.spec.preview -- the same membership test the walk uses, so the picture cannot show a substrate the walk does not have.

disimpy-cylinder

[image]

  • —surface kinds: mesh; pools extra, intra
  • —pixel 0.06944 um, scale bar 5 um
  • —area fraction in the x-centre section: extra 0.0000, intra 1.0000
Caveat — `disimpy-cylinder`. HELD on [dmipy-sim#488](https://github.com/dmrai-lab/dmipy-sim/issues/488), and this gate cannot see why. The gate below compares ONE declared measurement -- the last of the fixture's own protocol, its highest b -- and there this pack agrees with the MISST reference to 1.8e-5, so it passes. The evidence for the hold is a VECTOR: over the protocol's 100 measurements the worst is 1.97e-3, 7.27 sigma, with 31 of them outside their own 3-sigma band. A ReferenceQuantity is a scalar, so no scalar comparison this protocol can express will fail this pack; dmipy-sim#493 is the item that would let the gate carry a vector and therefore see it.

What #488 is about: since #483 fixed the pickle's face winding the mesh walks correctly, and yet at 100,000 walkers neither the mesh NOR the analytic cylinder of the same radius reproduces this MISST reference to the Monte-Carlo floor (1.97e-3 and 1.31e-3, 7.27 and 5.66 sigma). The measured faceting term -- mesh against the analytic cylinder at the same N, seed and waveform, MISST not involved -- is 8.00e-4 and sits inside its own band, so the two geometries agree with each other and both disagree with MISST. #488 is whether that is MISST's own truncation or ours. Until it says, read this pack as a faithful record of a walk whose reference is in question, and see records/pre-protocol/gate.json for the vector comparison that held it.

mcdc-0.2-32.0

[image]

  • —surface kinds: mesh; pools extra, intra
  • —pixel 0.6944 um, scale bar 50 um
  • —area fraction in the x-centre section: extra 0.7181, intra 0.2819 (the spec's realisation: enclosedvolumem3 1.706e-16, surfaceaream2 6.927e-10, tuberadiusm 4.925e-07)

mcdc-1.0-12.0

[image]

  • —surface kinds: mesh; pools extra, intra
  • —pixel 0.671 um, scale bar 20 um
  • —area fraction in the x-centre section: extra 0.9313, intra 0.0687 (the spec's realisation: enclosedvolumem3 2.073e-16, surfaceaream2 8.414e-10, tuberadiusm 4.926e-07)

mcdc-2.6-4.0

[image]

  • —surface kinds: mesh; pools extra, intra
  • —pixel 0.696 um, scale bar 50 um
  • —area fraction in the x-centre section: extra 0.9588, intra 0.0412 (the spec's realisation: enclosedvolumem3 7.852e-16, surfaceaream2 3.209e-09, tuberadiusm 4.893e-07)

The reproduction

Grade A. the released data itself on the same released geometry: no free parameter marked 'ours' changes it. Their sample: the same objects: MC/DC's own released undulating-axon surfaces and Disimpy's own released cylinder mesh, each walked here on THEIR surface at THEIR acquisition and diffusivity, the MC/DC ones seeded from their own released initial-walker list (the same object).

substratequantityreplayed (this pack)our direct walktheirsfromvs directbandholdsvs theirs
disimpy-cylindersignalattop_b0.876289 -0.876289 (SE 0.06%, delta_method, 100,000 walkers)0.876304 -the last of the 100 normalised values of misstcylindersignalsmalldelta30msbigdelta40msradius5um.txt0.000% (7e-09 σ)3.23 σ = 0.258%yes0.002% (0.022 σ), no uncertainty stated
mcdc-0.2-32.0signalattop_b0.358456 -0.358456 (SE 0.54%, delta_method, 100,000 walkers)0.361632 -the last measurement of ActiveAxG140PM.scheme in uAxond1.0amp0.2wL32.0DWI.bfloat, an unnormalised sum over walkers divided by the count its b = 0 rows state0.000% (1.7e-09 σ)3.23 σ = 3.756%yes0.878% (0.6 σ)
mcdc-1.0-12.0signalattop_b0.441452 -0.441452 (SE 0.41%, delta_method, 100,000 walkers)0.443975 -the last measurement of ActiveAxG140PM.scheme in uAxond1.0amp1.0wL12.0DWI.bfloat, an unnormalised sum over walkers divided by the count its b = 0 rows state0.000% (6.1e-10 σ)3.23 σ = 2.996%yes0.568% (0.48 σ)
mcdc-2.6-4.0signalattop_b0.864486 -0.864486 (SE 0.07%, delta_method, 100,000 walkers)0.864286 -the last measurement of ActiveAxG140PM.scheme in uAxond1.0amp2.6wL4.0DWI.bfloat, an unnormalised sum over walkers divided by the count its b = 0 rows state0.000% (4.5e-09 σ)3.23 σ = 1.060%yes0.023% (0.051 σ)

The quantity is compared on the grid the reference record states, with the solver it states; the gate refuses a reproduction on any other grid, because the grid is part of the measurement.

The free parameters, and whose they are:

  • —TE / delta / Delta / G = ActiveAxG140PM.scheme - -- **theirs** (their scheme file): read by io.mcdc.readscheme, which puts TE, every Delta, every delta and every pad on a sample and refuses what the format leaves ambiguous
  • —diffusivity = 6e-10 m^2/s -- theirs (their .conf): stated; 2e-9 for the Disimpy fixture, from their own test
  • —seed positions = their released initial-walker list - -- theirs (*inipoints.txt): read cyclically as MC/DC reads it, which is why the spec's seeding rule is explicit and not a uniform draw over the lumen
  • —sub-step rule = the engine's own - -- ours (physics.resolvesubsteps): theirs is a fixed 5,000 steps over TE, recorded for comparison; a converged walk's signal does not depend on either
  • —surface relaxivity = 0.0 m/s -- ours (this family's walk): none: both references' walls are purely reflecting

Where each number comes from:

disimpy-cylinder -- Disimpy: A massively parallel Monte Carlo simulator for generating diffusion-weighted MRI data in Python (Kerkelae et al. 2020), whose tests/ fixtures the array is read from, the last of the 100 normalised values of misstcylindersignalsmalldelta30msbigdelta40msradius5um.txt (10.21105/joss.02527, resolved via crossref at 2026-09-27T02:19:21Z as 'Disimpy: A massively parallel Monte Carlo simulator for generating diffusion-weighted MRI data in Python'): read from https://github.com/kerkelae/disimpy, sha256 f8af9348eef1
mcdc-0.2-32.0 -- Robust Monte-Carlo Simulations in Diffusion-MRI: Effect of the Substrate Complexity and Parameter Choice on the Reproducibility of Results (Rafael-Patino et al. 2020), whose released Experiments-raw-signals archive the array is read from, the last measurement of ActiveAxG140PM.scheme in uAxond1.0amp0.2wL32.0DWI.bfloat, an unnormalised sum over walkers divided by the count its b = 0 rows state (10.3389/fninf.2020.00008, resolved via crossref at 2026-09-27T02:19:20Z as 'Robust Monte-Carlo Simulations in Diffusion-MRI: Effect of the Substrate Complexity and Parameter Choice on the Reproducibility of Results'): read from https://github.com/jonhrafe/Robust-Monte-Carlo-Simulations, sha256 c0f8fa05ab65
mcdc-1.0-12.0 -- Robust Monte-Carlo Simulations in Diffusion-MRI: Effect of the Substrate Complexity and Parameter Choice on the Reproducibility of Results (Rafael-Patino et al. 2020), whose released Experiments-raw-signals archive the array is read from, the last measurement of ActiveAxG140PM.scheme in uAxond1.0amp1.0wL12.0DWI.bfloat, an unnormalised sum over walkers divided by the count its b = 0 rows state (10.3389/fninf.2020.00008, resolved via crossref at 2026-09-27T02:19:20Z as 'Robust Monte-Carlo Simulations in Diffusion-MRI: Effect of the Substrate Complexity and Parameter Choice on the Reproducibility of Results'): read from https://github.com/jonhrafe/Robust-Monte-Carlo-Simulations, sha256 254d70cbc0a2
mcdc-2.6-4.0 -- Robust Monte-Carlo Simulations in Diffusion-MRI: Effect of the Substrate Complexity and Parameter Choice on the Reproducibility of Results (Rafael-Patino et al. 2020), whose released Experiments-raw-signals archive the array is read from, the last measurement of ActiveAxG140PM.scheme in uAxond1.0amp2.6wL4.0DWI.bfloat, an unnormalised sum over walkers divided by the count its b = 0 rows state (10.3389/fninf.2020.00008, resolved via crossref at 2026-09-27T02:19:21Z as 'Robust Monte-Carlo Simulations in Diffusion-MRI: Effect of the Substrate Complexity and Parameter Choice on the Reproducibility of Results'): read from https://github.com/jonhrafe/Robust-Monte-Carlo-Simulations, sha256 9b60772159b6

Caveats:

  • —direct -- These packs' walks were not retained: a 100,000-walker walk of 2,677 saves is 8 GB per fixture. The direct numbers are therefore the ones the walk that produced each pack recorded, in this family's own records/build.json, measured by the estimator crossengineparity.floors owns. Nothing is re-walked to obtain a number a record already holds.
  • —disimpy-cylinder -- HELD on [dmipy-sim#488](https://github.com/dmrai-lab/dmipy-sim/issues/488), and this gate cannot see why. The gate below compares ONE declared measurement -- the last of the fixture's own protocol, its highest b -- and there this pack agrees with the MISST reference to 1.8e-5, so it passes. The evidence for the hold is a VECTOR: over the protocol's 100 measurements the worst is 1.97e-3, 7.27 sigma, with 31 of them outside their own 3-sigma band. A ReferenceQuantity is a scalar, so no scalar comparison this protocol can express will fail this pack; dmipy-sim#493 is the item that would let the gate carry a vector and therefore see it.

What #488 is about: since #483 fixed the pickle's face winding the mesh walks correctly, and yet at 100,000 walkers neither the mesh NOR the analytic cylinder of the same radius reproduces this MISST reference to the Monte-Carlo floor (1.97e-3 and 1.31e-3, 7.27 and 5.66 sigma). The measured faceting term -- mesh against the analytic cylinder at the same N, seed and waveform, MISST not involved -- is 8.00e-4 and sits inside its own band, so the two geometries agree with each other and both disagree with MISST. #488 is whether that is MISST's own truncation or ours. Until it says, read this pack as a faithful record of a walk whose reference is in question, and see records/pre-protocol/gate.json for the vector comparison that held it.

  • —reduction -- A pack's signal is the MODULUS of the weighted ensemble mean, and both references sum cosines. Comparing one convention against the other read 1.2e-5 at b = 1925 s/mm^2 and 3.1e-3 at 13190 and filed #484 against the engine; the per-walker phases are identical across the routes. Every comparison on this card reduces both sides the same way.
  • —reproduces -- The reproduces- comparison is DEGENERATE for this family and its 1e-9 sigma should be read as such. Our direct number is measured on the pack's own decoded positions, because the walk that produced the pack was not retained, so reproduces- and served-equals-decoded are two readings of one channel and differ only by the reduction. The comparison that carries information here is published-, against the other engine's released array.

The gate

Deterministic, reading only the records: 55 checks, all passed. The tolerance is the design record's terms in quadrature -- an analytic standard error, the reference's own stated uncertainty, and any measured systematic -- with no coverage factor and no resampled error bar.

packverdictchecksfailures
disimpy-cylinderpass12—
mcdc-0.2-32.0pass12—
mcdc-1.0-12.0pass12—
mcdc-2.6-4.0pass12—

Use me

One call that reproduces one number of the table above. It was EXECUTED when this card was built (1.1 s, ceiling 60 s), against the local file of the same sha256 as packs/mcdc-0.2-32.0.rpk, and printed:

S = 0.995482
python
import numpy as np
from dmipy_sim.replay import ReplayPack
from examples.validation.cross_engine_parity import mcdc_envelope, MCDC_N_T, MCDC_TE
from dmipy_sim import pgse

pk = ReplayPack.load("hf://SubstrateCommons/parity-fixtures/packs/mcdc-0.2-32.0.rpk")
# the ActiveAx shell this fixture's number is read at, as a single PGSE row
seq = pgse([[1.0, 0.0, 0.0]], 0.01015, 0.03578, bvalues=[1.319e10], TE=MCDC_TE, n_t=pk.n_t, slew_rate=np.inf)
print("S = %.6f" % float(np.abs(np.asarray(pk.replay(seq))).ravel()[-1]))

Reference and licences

  • —the reference: Robust Monte-Carlo Simulations in Diffusion-MRI: Effect of the Substrate Complexity and Parameter Choice on the Reproducibility of Results, <https://doi.org/10.3389/fninf.2020.00008> -- cited, never redistributed. MC/DC (Rafael-Patino et al. 2020, Front. Neuroinform. 14:8, LGPL-2.1) and Disimpy (Kerkelae et al. 2020, JOSS 5(52):2527, MIT), whose MISST reference is Drobnjak, Zhang, Hall and Alexander's exact eigenfunction solution.
  • —disimpy: <https://github.com/kerkelae/disimpy> at disimpy, the repository's tests/ fixtures -- MIT (<https://github.com/kerkelae/disimpy/blob/master/LICENSE>), the host's text copied verbatim to records/licences/disimpy-MIT.txt (1069 characters, sha256 7a5ac08853b9); cylinder_mesh_closed.pkl (84d70244110d, 22.8 kB), misst_cylinder_signal_smalldelta_30ms_bigdelta_40ms_radius_5um.txt (f8af9348eef1, 1.3 kB), mesh-0fb59657031769ffa2771566.ply (893fa35b90c1, 25.9 kB)
  • —mcdc: <https://github.com/jonhrafe/Robust-Monte-Carlo-Simulations> at Robust-Monte-Carlo-Simulations, the released Experiments archive -- LGPL-2.1 (<https://github.com/jonhrafe/Robust-Monte-Carlo-Simulations/blob/master/LICENSE>), the host's text copied verbatim to records/licences/mcdc-LGPL-2.1.txt (26526 characters, sha256 20c17d8b8c48); uAxon_d_1.0_amp_0.2_wL_32.0.ply (7944c53171df, 282.6 kB), uAxon_d_1.0_amp_0.2_wL_32.0_ini_points.txt (286f6d9a0a78, 46.0 kB), uAxon_d_1.0_amp_0.2_wL_32.0_DWI.bfloat (c0f8fa05ab65, 1.5 kB), uAxon_d_1.0_amp_1.0_wL_12.0.ply (0802cd42dbdf, 759.3 kB), uAxon_d_1.0_amp_1.0_wL_12.0_ini_points.txt (e575921a853e, 118.3 kB), uAxon_d_1.0_amp_1.0_wL_12.0_DWI.bfloat (254d70cbc0a2, 1.5 kB), uAxon_d_1.0_amp_2.6_wL_4.0.ply (a2f3f9c82842, 2.4 MB), uAxon_d_1.0_amp_2.6_wL_4.0_ini_points.txt (0bbb9b2e18a1, 342.9 kB), uAxon_d_1.0_amp_2.6_wL_4.0_DWI.bfloat (9b60772159b6, 1.5 kB), ActiveAxG140_PM.scheme (85df9e654116, 24.3 kB), uAxon_d_1.0_amp_0.0_wL_4.0.conf (824332cc795a, 1.1 kB)
  • —the packs: the packs are the source's licence: LGPL-2.1 for the MC/DC fixtures, MIT for the Disimpy one; neither source's bytes are redistributed

Rendered by `dmipy_sim.replay.reference` from this dataset's `records/`. A bare republish of a pack regenerates the manifest-only card of `dmipy_sim.replay.publish` and drops this one; the protocol's publish stage writes this file last.