torchcell.data.compute_experiment_reference_index_sequential

compute_experiment_reference_index_sequential(dataset: Dataset) → list[ExperimentReferenceIndex][source]

Build the reference index in ONE streaming grouping pass (memory-bounded).

Streams every record in TRUE dataset-index order, hashes its reference, and appends the record’s index to that reference’s bucket – keeping each unique reference object exactly once (first sighting). Time is O(N); memory is O(unique references) + the O(N) output (member indices sum to N), never the former O(references x N) dense masks. This is what makes genome-scale datasets (Hoepfner ~30M records) buildable. First-sighting order is preserved so the output is deterministic.