Core Concepts

Gunz-Utils serves as the shared foundational layer for the Gunz ecosystem.

1. The Core Registry

In a multi-library project, sharing configurations and constants is difficult. Gunz-Utils provides the base classes (like BaseStrEnum) that ensure gunz-cm and gunz-ml speak the same “language” when referring to experiment modes, data formats, and processing steps.

2. Security Buffer

One of the primary goals of Gunz-Utils is to provide safe wrappers around standard operations. This includes:

  • Path Sanitization: Preventing path traversal when reading genomic data.

  • Validation: Ensuring that research parameters conform to expected types before heavy computation starts.

3. Infrastructure Discovery

The project module handles the complexities of discovering repository roots and managing data paths across different environments (Local Workstations vs. Slurm Cluster). By using these utilities, we ensure that code written locally “just works” when submitted to the cluster.