From e49b7f2e8535b145db63ceb280b86e6dbc6c34f9 Mon Sep 17 00:00:00 2001 From: tdayris Date: Mon, 10 Jun 2024 15:12:43 +0200 Subject: [PATCH] fix nan query error --- CHANGELOG.md | 6 ++++++ workflow/rules/common.smk | 19 +++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef6df46..3675d83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# 3.6.2 + +## Fix: + +* Protect against nan values in genome queries + # 3.6.1 ## Features: diff --git a/workflow/rules/common.smk b/workflow/rules/common.smk index a2e48e2..a29f1ee 100644 --- a/workflow/rules/common.smk +++ b/workflow/rules/common.smk @@ -125,12 +125,15 @@ def lookup_genomes( """ Run lookup function with default parameters in order to search user-provided sequence/annotation files """ - query: str = ( - "species == '{wildcards.species}' & build == '{wildcards.build}' & release == '{wildcards.release}'".format( + query: str = "species == '{wildcards.species}' & build == '{wildcards.build}' & release == '{wildcards.release}'".format( wildcards=wildcards ) - ) - return getattr(lookup(query=query, within=genomes), key, default) + + query_result: str | float = getattr(lookup(query=query, within=genomes), key, default) + if query_result != query_result: + # Then the result of the query is nan + return default + return query_result def get_dna_fasta( @@ -139,11 +142,9 @@ def get_dna_fasta( """ Return path to the final DNA fasta sequences """ - default: str = ( - "reference/sequences/{wildcards.species}.{wildcards.build}.{wildcards.release}/{wildcards.species}.{wildcards.build}.{wildcards.release}.dna.fasta".format( + default: str = "reference/sequences/{wildcards.species}.{wildcards.build}.{wildcards.release}/{wildcards.species}.{wildcards.build}.{wildcards.release}.dna.fasta".format( wildcards=wildcards ) - ) return lookup_genomes(wildcards, key="dna_fasta", default=default, genomes=genomes) @@ -153,11 +154,9 @@ def get_cdna_fasta( """ Return path to the final cDNA fasta sequences """ - default: str = ( - "reference/sequences/{wildcards.species}.{wildcards.build}.{wildcards.release}/{wildcards.species}.{wildcards.build}.{wildcards.release}.cdna.fasta".format( + default: str = "reference/sequences/{wildcards.species}.{wildcards.build}.{wildcards.release}/{wildcards.species}.{wildcards.build}.{wildcards.release}.cdna.fasta".format( wildcards=wildcards ) - ) return lookup_genomes(wildcards, key="cdna_fasta", default=default, genomes=genomes)