From 3ce560a38dc5339eeceea2048c87542d39039c1e Mon Sep 17 00:00:00 2001 From: dylanpilz Date: Wed, 20 Nov 2024 15:41:50 -0500 Subject: [PATCH 1/3] Simplify error handling --- freyja/_cli.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/freyja/_cli.py b/freyja/_cli.py index e4bf335..ee442b8 100644 --- a/freyja/_cli.py +++ b/freyja/_cli.py @@ -126,18 +126,14 @@ def demix(variants, depths, output, eps, barcodes, meta, print('demixing') df_barcodes, mix, depths_ = reindex_dfs(df_barcodes, mix, depths_) - try: - sample_strains, abundances, error = solve_demixing_problem(df_barcodes, - mix, - depths_, - eps, adapt, - a_eps, - solver) - except Exception as e: - print(e) - print('Error: Demixing step failed. Returning empty data output') - sample_strains, abundances = [], [] - error = -1 + + sample_strains, abundances = solve_demixing_problem(df_barcodes, + mix, + depths_, + eps, adapt, + a_eps, + solver) + # merge intra-lineage diversity if multiple hits. if len(set(sample_strains)) < len(sample_strains): localDict = {} @@ -157,7 +153,7 @@ def demix(variants, depths, output, eps, barcodes, meta, # assemble into series and write. sols_df = pd.Series(data=(localDict, sample_strains, abundances, - error, cov), + cov), index=['summarized', 'lineages', 'abundances', 'resid', 'coverage'], name=mix.name) From ce12459b8fbe972cd47fa534cd5192da8b077eea Mon Sep 17 00:00:00 2001 From: dylanpilz Date: Wed, 20 Nov 2024 15:43:33 -0500 Subject: [PATCH 2/3] linting --- freyja/_cli.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/freyja/_cli.py b/freyja/_cli.py index ee442b8..dc675ef 100644 --- a/freyja/_cli.py +++ b/freyja/_cli.py @@ -126,14 +126,13 @@ def demix(variants, depths, output, eps, barcodes, meta, print('demixing') df_barcodes, mix, depths_ = reindex_dfs(df_barcodes, mix, depths_) - sample_strains, abundances = solve_demixing_problem(df_barcodes, - mix, - depths_, - eps, adapt, - a_eps, - solver) - + mix, + depths_, + eps, adapt, + a_eps, + solver) + # merge intra-lineage diversity if multiple hits. if len(set(sample_strains)) < len(sample_strains): localDict = {} From 09e46a6f4f1a7a938ea7ce3c58f9908b10f53af3 Mon Sep 17 00:00:00 2001 From: joshuailevy Date: Wed, 20 Nov 2024 14:00:20 -0800 Subject: [PATCH 3/3] add error/resid back for successful run --- freyja/_cli.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/freyja/_cli.py b/freyja/_cli.py index d67ebfc..45f0513 100644 --- a/freyja/_cli.py +++ b/freyja/_cli.py @@ -140,12 +140,13 @@ def demix(variants, depths, output, eps, barcodes, meta, autoadapt) df_barcodes, mix, depths_ = reindex_dfs(df_barcodes, mix, depths_) print('demixing') - sample_strains, abundances = solve_demixing_problem(df_barcodes, - mix, - depths_, - eps, adapt, - a_eps, - solver) + sample_strains, abundances, error = solve_demixing_problem(df_barcodes, + mix, + depths_, + eps, + adapt, + a_eps, + solver) # merge intra-lineage diversity if multiple hits. if len(set(sample_strains)) < len(sample_strains): localDict = {} @@ -165,7 +166,7 @@ def demix(variants, depths, output, eps, barcodes, meta, # assemble into series and write. sols_df = pd.Series(data=(localDict, sample_strains, abundances, - cov), + error, cov), index=['summarized', 'lineages', 'abundances', 'resid', 'coverage'], name=mix.name)