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.
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
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)
- 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
- 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
- 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
- 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
- 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).
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 ambiguousdiffusivity= 6e-10 m^2/s -- theirs (their .conf): stated; 2e-9 for the Disimpy fixture, from their own testseed positions= their released initial-walker list - -- theirs (*inipoints.txt): read cyclically as MC/DC reads it, which is why the spec's seeding rule isexplicitand not a uniform draw over the lumensub-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 eithersurface 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 f8af9348eef1mcdc-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 c0f8fa05ab65mcdc-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 254d70cbc0a2mcdc-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 9b60772159b6Caveats:
- 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
ReferenceQuantityis 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, soreproduces-andserved-equals-decodedare two readings of one channel and differ only by the reduction. The comparison that carries information here ispublished-, 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.
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.995482import 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 torecords/licences/disimpy-MIT.txt(1069 characters, sha2567a5ac08853b9);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 torecords/licences/mcdc-LGPL-2.1.txt(26526 characters, sha25620c17d8b8c48);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.
