smftools.informatics.storage_planner#

Per-reference storage planning for locus and genome analyses.

Functions

iter_reference_tiles(plan)

Yield core_start, core_end, load_start, load_end for a reference.

plan_references(frame, reference_lengths, *)

Choose locus/genome and full/tiled policies independently per reference.

Classes

ReferencePlan(reference, analysis_mode, ...)

Materialization policy for one stranded reference.

class smftools.informatics.storage_planner.ReferencePlan(reference, analysis_mode, cache_mode, reference_length, n_reads, estimated_dense_bytes, tile_size, tile_halo)#

Bases: object

Materialization policy for one stranded reference.

reference: str#
analysis_mode: str#
cache_mode: str#
reference_length: int#
n_reads: int#
estimated_dense_bytes: int#
tile_size: int#
tile_halo: int#
to_dict()#

Return an HDF5/JSON-friendly representation.

Return type:

dict[str, object]

smftools.informatics.storage_planner.plan_references(frame, reference_lengths, *, analysis_mode='auto', load_cache_mode='auto', max_full_matrix_gb=8.0, tile_size=10000, tile_halo=1000)#

Choose locus/genome and full/tiled policies independently per reference.

Return type:

list[ReferencePlan]

smftools.informatics.storage_planner.iter_reference_tiles(plan)#

Yield core_start, core_end, load_start, load_end for a reference.

Return type:

Iterable[tuple[int, int, int, int]]