Releases: BU-ISCIII/relecov-tools
Release list
Release v1.8.0
RELEASE v1.8.0 CHANGELOG
[1.8.0] - 2025-02-03
Added
- Full integration of extra_config support, enabling structured overriding and validation of configurations on top of the base configuration.
- New
topic_configargument in theadd-extra-configmodule to improve scoping and selective configuration removal. - Three default
initial_config.yamlfiles for project-specific initialization:relecovmepramEQA2026
- Automatic loading of
initial_config-relecov.yamlbefore executing test workflows. - Extended documentation for
add-extra-config, including improved descriptions ofrequired_confand new parameters. - Minor improvements in linting, CI configuration, and dependency handling.
Changed
- Refactored configuration management by migrating project-specific settings from
configuration.jsonto dedicatedinitial_config.yamlfiles. - Updated
build_schemato recursively traverse nested properties for more complete and consistent schema generation. - Modified internal functions to consistently pass
extra_config=Truewhere required. - Reworked project name extraction logic to ensure compatibility with the new
initial_configstructure. - Improved schema title handling and whitespace validation for more robust API and metadata validation.
- Updated README documentation to reflect the new configuration architecture and
extra_configusage.
Fixed
- Fixed compatibility issues in multiple modules (
download,validate,read-lab-metadata) when using the newextra_configschema structure. - Resolved CI workflow issues to ensure proper loading of
extra_configand required environment variables during test execution. - Corrected inconsistencies in JSON schema example generation, header ordering, and value typing.
Removed
- Removed project-specific configuration entries from
configuration.json, consolidating them into project-specificinitial_config.yamlfiles to eliminate duplication and simplify the base configuration.
Release v1.7.4
🔔 Release v1.7.4
This release introduces important improvements in metadata parsing, schema generation, and result summarization, with a particular focus on supporting complex/nested fields across the metadata lifecycle.
It also improves robustness in the download workflow and updates project requirements to consistently target Python ≥ 3.10.
⚙️ Major Workflow Changes
🧬 Metadata Parsing & Utilities
- Added
metadata_nextstrain_parser.pytopipeline_utils, enabling structured parsing of Nextstrain-related metadata for downstream processing.
#822 - Extended
read_lab_metadatato support complex and nested fields, ensuring correct ingestion of enriched laboratory metadata.
#832
📐 Schema Builder Enhancements
- Adapted schema builder Excel generation to properly handle nested and complex fields, improving consistency between schema definitions and generated templates.
#826
📊 Results & Reporting
- Updated
create_summary_tables.pyto generate separate result outputs depending on the pathogen, improving clarity and usability for epidemiological reporting.
#841
🛠 Fixes and Stability
- Fixed compression handling in the
downloadmodule to correctly reflect compressed files in the log summary report. - Removed legacy organism ontology mappings, aligning the workflow with the current metadata model.
#831
📦 Requirements & Infrastructure
- Updated GitHub Actions:
python_lintnow runs using Python 3.10. - Updated
README.mdto correctly reflect Python ≥ 3.10 as the minimum supported version.
#839
Release v1.7.3
🔔 Release v1.7.3
This mini-release focuses on enhancing database update flexibility and addressing a critical issue in long table identifier parsing.
It extends the capabilities of the update_database module and ensures improved consistency in sample ID handling across Relecov workflows.
⚙️ Key Updates
🚀 Database Update Modes
- Extended
update_databaseto support Full Update Modes (1–4), enabling selective updates of specific data types and platforms.
This improvement simplifies maintenance and integration workflows for data synchronization across Relecov environments.
#820
🧬 Metadata Handling Fix
- Fixed an issue in
long_tablewhere unique ID selection failed when thesequencing_sample_idcontained underscores (_).
This ensures consistent mapping between sequencing and unique sample identifiers during long table generation.
#818
Release v1.7.2
🔔 Release v1.7.2
This release focuses on improving data synchronization with iSkyLIMS, expanding schema compatibility, and reinforcing the stability of key modules like upload_database, wrapper, read-bioinfo-metadata, and upload-results.
It also introduces new analytics scripts and enhances logging, ensuring smoother integration with institutional systems and better traceability of Relecov submissions.
⚙️ Major Workflow Changes
🧩 iSkyLIMS Integration
- Introduced a new function in
upload_database.pyto feed iSkyLIMS POST data withlab_requestsfields, ensuring complete synchronization between laboratory requests and database uploads. - Added a new iSkyLIMS API endpoint to retrieve mappings for
lab_requestfields, configurable viaconfiguration.json.
#803
🧬 Metadata & Schema Enhancements
- Updated
relecov_schemato versions v3.2.1 and v3.2.3, introducing support for Midnight amplicon panel versions and improving validation flexibility. - Normalized long-table sample identifiers to consistently use
unique_sample_idwithinread-bioinfo-metadata.
#802, #807, #813
📤 Upload & Reporting Modules
- Added
input_directoriessupport toupload-results, improving compatibility with batch processing pipelines. - Enhanced mail error handling and improved logging consistency for the mail module.
#808, #814
📊 Analytics & Institutional Data
- Added a UCCT status analytics script to monitor submission coverage and trends.
- Updated upload logic to send
collecting_institution_code_1to the Relecov Platform, ensuring institutional traceability in every record. - Expanded
laboratory_adress.jsonwith new laboratories to improve metadata completeness.
#806, #813
🛠 Fixes and Stability
- Fixed incorrect messages and
KeyErrorduring uploads to iSkyLIMS. - Prevented upload of corrupted files to the SFTP in
wrapper, improving reliability of upload workflows. - Fixed
create_summary_tables.pyto properly generate CSV variant files for epidemiological reporting.
#803, #808, #809
🧹 Cleanups & Minor Improvements
- General improvements in exception handling and mail logging consistency across modules.
- Minor refactoring and JSON metadata updates for better maintainability.
Release v1.7.1
Release v1.7.1
This release focuses on improving stability, robustness, and correctness across key modules. It addresses several issues related to database uploads, API responses, pipeline-manager checks, and wrapper outputs, ensuring smoother integration in production workflows.
⚙️ Fixes and Stability Improvements
🗄️ Database & Upload Module
- Removed obsolete
sample_fingerprintusage in theupload-databasemodule to align with the newunique_sample_idapproach.
#790
🌐 REST API Consistency
- Fixed data completeness issues in
rest_api.standardize_response. - Corrected list handling logic in
rest_api.py, preventing unexpected errors.
#791, #792
📥 Download & Pipeline Manager
- Fixed handling of invalid folders during
download, ensuring invalid samples are properly managed. - Corrected R1 check logic in
pipeline-managerwhen processing single-end FASTQs.
#792
📑 Wrapper & Reporting
- Fixed missing and empty
report.xlsxfiles after wrapper execution, ensuring reports are consistently generated.
#798
👥 Credits
Release v1.7.0
🔔 Release v1.7.0
This release introduces major improvements in sample traceability, institutional metadata standardization (REGCESS integration), and pipeline modularization.
Key modules like pipeline_manager, read-bioinfo-metadata, validate, upload_database, and build-schema have been refactored or extended to improve interoperability, maintainability, and alignment with epidemiological workflows.
⚙️ Major Workflow Changes
📤 Pipeline Manager Integration
- Added support for uploading samples to relecov-platform from
pipeline_manager, storing the returnedunique_sample_idinjson_data. - FASTQ and analysis files are now renamed with
unique_sample_idwhile retainingsequencing_sample_idfor traceability. - Added fingerprint generation utility to create stable sample identifiers.
- Introduced parameter
skip_upload_dbto allow skipping DB upload during testing. - Changed exit behavior to raise exceptions instead of
exit(0).
#737, #738, #774
🧬 Metadata & Schema Enhancements
- Support for using
unique_sample_idas key identifier inread_bioinfo_metadata, with fallback to combined ID format. - Refactored
read-bioinfo-metadatafor structure, readability, and maintainability. - Renamed
add_bioinfo_files_path→map_and_extract_bioinfo_pathsfor clarity. - Enhanced
validate_samplenameslogic to support combined identifier format. - Updated
relecov_schemato v3.2.0 with new Genomic Typing fields.
#738, #775, #777, #783
🏥 Institutional Metadata Standardization
- Integrated REGCESS as the main institutional metadata source, merging CCN and CODCNH datasets, enriching with geolocation, updating schema & validation logic.
- Updated build-schema to generate hospital dropdowns using hospital-city-CCN mappings.
- Standardized collecting institution codes as
collecting_institution_code_[1,2]. - Updated hospital DB generation: merge REGCESS + CNH, enrich/normalize metadata, auto-geolocate cities, generate all JSON outputs.
#726, #749, #781
📑 Validation & Upload Improvements
upload_databasenow acceptsjson_dataas path or list of dicts and returns API upload results.- Reordered initialization in
validateandupload_databaseto follow consistent structure. - Included project name in email subject for
upload_results.
#692, #774, #780
📊 Epidemiological Data Handling
- Updated
create_summary_tables.pyto organize data by epidemiological season.
#772
🛠 Fixes and Stability
- Fixed geolocation cities file and improved city normalization.
- Fixed issues with submitting institutions metadata.
- Fixed potential inconsistency when no folder name is found in metadata (warn & skip).
- Fixed broken platform config references (
platform→platform-data→platform-params). - Improved robustness and internal consistency of
pipeline_utilsandviralrecon.pywith annotations, docstrings, and cleanup.
#774, #775, #781
🧹 Cleanups & Removals
- Removed unused
ResultsUploadclass and stale variables (self.json_file). - Cleaned up unused imports.
#774
🙌 Credits
Release v1.6.2
🔔 Release v1.6.2
This patch release tightens up the relecov-tools 1.6 series with targeted bug fixes, improved configuration handling, and the removal of now-obsolete registry code.
🛠 Fixes
- Correctly handle an empty "target_folders": "" setting in the download module.
- Make pipeline_manager locate valided.json reliably.
- Eliminate triple-counting of folder-only samples in log_summary.json.
⚙️ Changed
- Revise main and default config_json to adopt the new merged-config layout (commands + params).
- Pass the wrapper’s --output_dir flag down to download so all modules respect the same output path.
- Clarify the error message shown when output_dir is missing in extra_config.
🗑 Removed
- All registry-related functionality has been excised from the code base.
Pull Requests
- Introduced new validation workflow to discard samples in platform db by @Shettland in #721
- Updated
create_summary_tables.pyto organize data jointly by @victor5lm in #722 - Updated schema and configuration by @svarona in #724
- Refactor
configuration.jsonstructure by grouping fields bymodule usageby @Aberdur in #725 - Moved sample_id_ontology used by validate to configuration.json by @Shettland in #733
- Fixed download param override and target_folders malfunctioning by @Shettland in #736
- Standardized RestApi response dictionaries with an aux function by @Shettland in #741
- Fix detection of missing
labelinJSON-Schemaproperties by @Aberdur in #743 - Minor fix left in PR #741.
datais directly included in api response by @Shettland in #744 - Fix wrapper file-name lookup and prevent duplicate upload of invalid sample by @Aberdur in #748
- pre-release 1.6.1 by @Aberdur in #753
- Fix CHANGELOG to its corresponding version by @Aberdur in #755
- Fix
"target_folders": ""handling indownloadmodule by @Aberdur in #760 - minor fix in pipeline_manager so it finds valided json by @saramonzon in #764
- Update
__main__&config_jsonfor new merged-config structure(commands + params)by @Aberdur in #765 - Improve path handling & logging across wrapper, download, and validation by @Aberdur in #766
- Refactor registry use and relecov-tools validate by @saramonzon in #767
- Release 1.6.2 by @saramonzon in #771
Full Changelog: v1.6.0...v1.6.2
Release v1.6.1
Release v1.6.1 – Smarter API, Database-Aware Validation & Config Refactor
2025-07-28
This minor-version release focuses on API consistency, database checks during validation, and a cleaner configuration layout while delivering several quality-of-life fixes.
🚀 Enhancements
| Area | Highlight | PR |
|---|---|---|
| REST API | rest_api.get_request() now accepts credentials and query params, plus fresh doc-strings for every public method. |
#721 |
| Validation workflow | New database-aware path: with --check_db, validate discards samples already present in the Relecov platform. |
#721 |
| Ion Torrent support | Schema + configuration updated to recognise Ion Torrent read metrics. | #724 |
| Summary tables | create_summary_tables.py now groups data more intuitively for downstream QC. |
#722 |
| Configuration refactor | configuration.json fields are now grouped by module for easier maintenance. |
#725 |
| Uniform API responses | All rest_api methods pass through standardize_response() for predictable output. |
#741 |
🛠 Fixes
- Download – Correct target-folder logic and stop overriding CLI args with config defaults. #736
- Schema validation – Properly detects missing
labelin JSON-Schema properties. #743 - Wrapper – Restored correct filename lookup for read-lab-metadata output and prevents double-upload of invalid samples. #748
🔄 Changes
sample_id_ontologymoved from code toconfiguration.jsonfor user customisation. #733- Removed default
RELECOV/sub-folder assumption inupload-resultsanddownloadCLI entry-points. #736 upload_databaseand related callers updated to consume the new standardised REST API responses. #741- All
rest_apihelpers now return parsed JSON underdata, when available. #744
⬆️ Upgrade Notes
- Config update – Merge the new module-grouped structure into your custom
configuration.json. - Validation flag – Add
--check_dbtorelecov-tools validateif you want automatic exclusion of already-uploaded samples. - Ion Torrent users – Verify your metadata complies with the new schema fields before running pipelines.
Enjoy the smoother workflows!
Release v1.6.0
🔔 Release v1.6.0
This release includes substantial changes to the validation and metadata processing workflows, improving robustness, modularity, and end-to-end traceability. Key modules like validate, read-bioinfo-metadata, download, build-schema, and the wrapper have been somewhat refactored and extended to support a more scalable and error-resilient system.
⚙️ Major Workflow Changes
-
🔄 Redesigned Validation Workflow
Thevalidatemodule now supports automated uploading of invalid samples and reports directly to the SFTP server. This replaces previous manual or wrapper-based logic, centralizing responsibility in the validation stage.
#708, #715 -
📤 Wrapper Refactor
Upload logic for invalid files has been removed from the wrapper. It now delegates entirely to thevalidatemodule, simplifying wrapper responsibilities and avoiding redundancy.
#708 -
📑 Metadata Validation Refactor
Theread-bioinfo-metadatamodule was overhauled to: -
📐 SchemaBuilder &
build-schemaEnhancements -
📊 Validation Infrastructure Overhaul
validate_instances()is now a static method and accepts custom validators to easy outer integration- Utility logic like
summarize_errors,unique_id_generator, and parameter checks are now standalone functions get_sample_id_field()added as a schema inspection utility
#684
-
🛠Download module validation process revamped
- Download module now only skips those samples that cannot be traced by any means (no possible ID nor file).
- All the invalid files are now downloaded so their metadata can be processed and validated prior to send-mail
🧪 Test Improvements
- Added new test cases for the validation pipeline in
tests/test_validate.py - Integrated
software_versions.ymlfor proper test environment setup - Test data updated to support the new upload workflow
#708, #713
🛠 Fixes and Stability
- Improved error messaging and exception handling in
sftp_client, validation, and config parsing - Fixed issues in:
logs_to_excelfilename generationdownload_onlymode behavior- Validation error message counts
- Sample skipping logic in
wrapper
- Ensured metadata validation still occurs for folders with invalid samples
- Replaced
sys.exit()usage with properValueErrorexceptions
#672, #673, #684, #705, #707, #713
🧹 Cleanups & Minor Improvements
- Enforced Python 3.8+ as the minimum version
- Replaced deprecated `pkg
Release v1.5.5
🔖 Release v1.5.5.
This release focuses on improving the consistency and reliability of metadata processing across the toolchain. The primary goal is name homogenization across metadata files, schema validation, and processing modules to reduce ambiguity and ensure compatibility with public standards.
✨ Highlights
🧩 Name Homogenization
- Unified naming conventions across metadata fields in templates (
lab,bioinfo) and schema definitions, along with module parameters and variables. - Normalized sample ID and patient-related field names for consistency with GISAID and ENA submission formats.
- Removed redundant or inconsistent field aliases in the JSON schema.
✅ Validation Enhancements
- Strengthened validation rules in
read-bioinfo-metadataandvalidatecommands to reflect updated naming standards. - Improved error messaging for invalid or missing fields now aligned with standardized field names.
🧪 Template and Schema Updates
- Updated schema to
v3.1.1, incorporating normalized field names and new validations for several fields like pcr_ct values. - Re-generated metadata templates using the unified schema.
🔧 Stability Improvements
- Fixed issues where mismatched names previously led to silent failures or incorrect validations.
- Improved resilience of
update-dband other CLI tools under incomplete metadata conditions.