Skip to content

Release v1.5.0

Choose a tag to compare

@gordonkoehn gordonkoehn released this 25 Sep 09:55
· 55 commits to main since this release

This release introduces several significant updates to the Loculus submission workflow and related configuration, focusing on stricter environment variable handling, improved duplicate submission detection, enhanced file upload logic, and more robust metadata handling. The changes also include dependency and workflow updates, and some cleanup of environment and requirements files. We also resolve a critical but +1 shift in positions of amino acid alignments.

Key changes include:

Critical Bug Fix: Amino Acid Alignment Shift

  • turned out this was a double bug
  • for one, positions were taken equal to offsets, but offset = position - 1
  • This led to a shift in amino acids and nucleotides by +1
  • was compensated by 0-indexing error of -bam in pysam
  • corrected bam_to_fastq_handle_indels()
  • done in (#350)

Loculus Submission Workflow Improvements

  • The submit method in LoculusClient now requires both a processed file and a nucleotide alignment file, uploading both via pre-signed URLs and mapping them with correct key names (siloReads and nucleotideAlignment). It also adds a resubmit_duplicate flag to control duplicate submission behavior and checks for previously released samples using a new released_samples function. [1] [2] [3] [4] [5]

  • Added the released_samples and get_original_metadata utility functions to fetch and process released sample IDs from the Loculus API, handling revoked entries and supporting both JSON and NDJSON API responses.

Metadata and Field Handling

  • The create_metadata_file method now maps specific metadata fields from snake_case to camelCase and writes only the specified fields, ensuring consistent output. The parse_metadata method is updated to return metadata in snake_case, aligning with internal conventions. [1] [2] [3]

Configuration and Dependency Updates

  • The .env.example file is removed, and all code for loading .env files via python-dotenv is deleted, reflecting a move to rely solely on system environment variables. Corresponding dependencies (python-dotenv) are removed from pyproject.toml and conda-recipe/meta.yaml. [1] [2] [3] [4]

  • The get_organism function now enforces that the ORGANISM environment variable must be set, exiting with an error if it is missing.

CI and Workflow Modernization

  • GitHub Actions workflows are updated to use actions/setup-python@v6 instead of @v5 for both documentation and testing jobs. [1] [2]

Minor Cleanups

  • Imports and function calls in main.py are updated to reflect the refactored submission logic. [1] [2]

Full Changelog: v1.5.0...v1.5.0