From cd33b704aba31c35111957ab6a170cf4e5fc9b86 Mon Sep 17 00:00:00 2001 From: Saket Choudhary Date: Mon, 24 Apr 2023 19:36:10 -0400 Subject: [PATCH] Fix #190: Add checks for gse to srp conversion --- HISTORY.rst | 8 ++++++++ pysradb/sraweb.py | 2 +- tests/test_sraweb.py | 8 +++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 8a0d3188..93104fb7 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -2,10 +2,18 @@ History ####### +****************** +Unreleased +****************** + +* Fix for `gse-to-srp` returning unrequested GSEs (`#186 `) + + ****************** 2.0.2 (2023-04-09) ****************** +<<<<<<< HEAD * Fix for `gse-to-srp` to handle cases where a project is missing but SRXs are returned (`#186 `) * Fix gse-to-gsm (`#187 `) diff --git a/pysradb/sraweb.py b/pysradb/sraweb.py index b207a086..2a59c290 100644 --- a/pysradb/sraweb.py +++ b/pysradb/sraweb.py @@ -793,7 +793,7 @@ def gse_to_srp(self, gse, **kwargs): {"study_alias": gse_of_interest, "study_accession": srp_unique} ) gse_df_subset = pd.concat([gse_df_subset_gse, new_gse_df]) - + gse_df_subset = gse_df_subset.loc[gse_df_subset.study_alias.isin(gse)] return gse_df_subset[["study_alias", "study_accession"]].drop_duplicates() def gsm_to_srp(self, gsm, **kwargs): diff --git a/tests/test_sraweb.py b/tests/test_sraweb.py index 7b44c477..52cf72d2 100644 --- a/tests/test_sraweb.py +++ b/tests/test_sraweb.py @@ -130,7 +130,7 @@ def test_gse_to_gsm1(sraweb_connection): def test_gse_to_srp(sraweb_connection): """Test if gse is converted to srp correctly""" df = sraweb_connection.gse_to_srp("GSE63858") - assert df["study_accession"][0] == "SRP050548" + assert df["study_accession"].tolist()[0] == "SRP050548" def test_gse_to_srp2(sraweb_connection): @@ -254,3 +254,9 @@ def test_GCP_url(sraweb_connection): def test_GCP_url2(sraweb_connection): df = sraweb_connection.sra_metadata(["DRR138929"], detailed=True) assert df["gcp_url"].tolist()[-1].startswith("gs:") + + +def test_gse_to_srp3(sraweb_connection): + # https://github.com/saketkc/pysradb/issues/190 + df = sraweb_connection.gse_to_srp(["GSE89545"]) + assert df["study_accession"].tolist()[0] == "SRP093251"