From 7cf2461c9ac6eee1bb8c38f1713283f6327f0e61 Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Thu, 8 Jan 2026 16:10:09 -0500 Subject: [PATCH 1/3] Added method for getting available reference genomes --- bbconf/bbagent.py | 21 +++++++++++++++++++++ bbconf/modules/bedfiles.py | 31 ++++++++++++++++--------------- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/bbconf/bbagent.py b/bbconf/bbagent.py index ca8de8c8..2a6169d5 100644 --- a/bbconf/bbagent.py +++ b/bbconf/bbagent.py @@ -6,6 +6,7 @@ import numpy as np from sqlalchemy.orm import Session +from sqlalchemy.engine import ScalarResult from sqlalchemy.sql import and_, distinct, func, or_, select from bbconf.config_parser.bedbaseconfig import BedBaseConfig @@ -21,6 +22,7 @@ UsageBedSetMeta, UsageFiles, UsageSearch, + ReferenceGenome, ) from bbconf.models.base_models import ( AllFilesInfo, @@ -778,3 +780,22 @@ def _get_geo_stats(self, sa_session: Session) -> GEOStatistics: median=round(statistics.median(file_sizes), 2), ), ) + + def get_reference_genomes(self) -> Dict[str, str]: + """ + Get mapping of genome aliases to reference genome names. + + :return: dict mapping genome_alias -> reference_genome_name + """ + + genomes = {} + + with Session(self.config.db_engine.engine) as session: + results: ScalarResult[ReferenceGenome] = session.scalars( + select(ReferenceGenome) + ) + + for genome in results: + genomes[genome.digest] = genome.alias + + return genomes diff --git a/bbconf/modules/bedfiles.py b/bbconf/modules/bedfiles.py index 1792725a..80d2a447 100644 --- a/bbconf/modules/bedfiles.py +++ b/bbconf/modules/bedfiles.py @@ -556,21 +556,22 @@ def add( if not overwrite: bed_metadata = StandardMeta(**metadata) - ## OLD: - # self._update_sources( - # identifier=identifier, - # global_sample_id=metadata_standard.global_sample_id, - # global_experiment_id=metadata_standard.global_experiment_id, - # ) - - with Session(self._sa_engine) as session: - statement = select(Bed).where(Bed.id == identifier) - bed_object = session.scalar(statement) - self._update_metadata( - sa_session=session, - bed_object=bed_object, - bed_metadata=bed_metadata, - ) + ## UPDATE ONLY sources: + self._update_sources( + identifier=identifier, + global_sample_id=bed_metadata.global_sample_id, + global_experiment_id=bed_metadata.global_experiment_id, + ) + + ## IF we want to update all metadata on add if exists: (DO not remove this code) + # with Session(self._sa_engine) as session: + # statement = select(Bed).where(Bed.id == identifier) + # bed_object = session.scalar(statement) + # self._update_metadata( + # sa_session=session, + # bed_object=bed_object, + # bed_metadata=bed_metadata, + # ) if not nofail: raise BedFIleExistsError( f"Bed file with id: {identifier} already exists in the database." From d54f9bc6fb53f614d96e7426751abcda5b8b8041 Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Tue, 20 Jan 2026 23:59:27 -0500 Subject: [PATCH 2/3] added docs and bumped version --- bbconf/_version.py | 2 +- docs/changelog.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bbconf/_version.py b/bbconf/_version.py index f075dd36..745162e7 100644 --- a/bbconf/_version.py +++ b/bbconf/_version.py @@ -1 +1 @@ -__version__ = "0.14.1" +__version__ = "0.14.2" diff --git a/docs/changelog.md b/docs/changelog.md index 74b80c0c..f021748f 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -3,6 +3,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) and [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format. +### [0.14.2] - 2026-01-21 +### Added: +- Added method that fetches available reference genomes + ### [0.14.0] - 2025-12-18 ### Fixed: - Insertion of tokenized files From 7ab038b66da3ab138b63cc4ef045492397dbc660 Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Wed, 21 Jan 2026 00:01:11 -0500 Subject: [PATCH 3/3] updated requirements versions --- requirements/requirements-all.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements/requirements-all.txt b/requirements/requirements-all.txt index 9c3e7060..6c97f84d 100644 --- a/requirements/requirements-all.txt +++ b/requirements/requirements-all.txt @@ -1,7 +1,7 @@ yacman >= 0.9.1 sqlalchemy >= 2.0.0 -gtars >= 0.5.2 -geniml[ml] >= 0.8.3 +gtars >= 0.5.3 +geniml[ml] >= 0.8.4 psycopg >= 3.1.15 coloredlogs pydantic >= 2.9.0