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.