Skip to content

Commit

Permalink
fix: incorrect rt and mobility columns
Browse files Browse the repository at this point in the history
  • Loading branch information
mo-sameh committed Sep 1, 2024
1 parent 1332c70 commit f775179
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 4 deletions.
7 changes: 3 additions & 4 deletions alphadia/outputaccumulator.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,15 +137,14 @@ def parse_output_folder(
psm_df["raw_name"] = foldername

# remove decoy precursors
psm_df = psm_df[psm_df["decoy"] == 0]
# assert that decoy is int
psm_df["decoy"] = psm_df["decoy"].astype(int)
psm_df = psm_df[psm_df["decoy"] == 0].reset_index(drop=True)

self._precursor_df = pd.DataFrame()
for col in psm_df.columns:
self._precursor_df[col] = psm_df[col]

self._precursor_df["decoy"] = self._precursor_df["decoy"].astype(int)
self._precursor_df = psm_df[psm_df["decoy"] == 0].reset_index(drop=True)

# self._precursor_df.set_index('precursor_idx', inplace=True)
# Change the data type of the mods column to string
self._precursor_df["mods"] = self._precursor_df["mods"].astype(str)
Expand Down
36 changes: 36 additions & 0 deletions tests/unit_tests/test_outputaccumulator.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,3 +210,39 @@ def test_keep_top_constraint():
), f"{len(built_lib.precursor_df[built_lib.precursor_df['precursor_idx'] == precursor_idx])} != {keep_top}"

shutil.rmtree(temp_folder)


def test_default_column_assignment():
"""
Test that col [rt,mobility,mz] columns are correctly assigned where:
col = col_observed if col_observed is in columns
col = col_calibrated if col_observed is not in columns
col = col_library if col_observed is not in columns and col_calibrated is not in columns
"""
# Given:
config, temp_folder, raw_folders, psm_dfs, fragment_dfs = prepare_input_data()
keep_top = 2
config["transfer_library"]["top_k_samples"] = keep_top

# When:
output = outputtransform.SearchPlanOutput(config, temp_folder)
_ = output.build_transfer_library(raw_folders, save=True)
built_lib = SpecLibBase()
built_lib.load_hdf(
os.path.join(temp_folder, f"{output.TRANSFER_OUTPUT}.hdf"), load_mod_seq=True
)

# Then: The columns rt, mobility, mz should be correctly assigned
for col in ["rt", "mobility", "mz"]:
if f"{col}_observed" in built_lib.precursor_df.columns:
assert built_lib.precursor_df[f"{col}"].equals(
built_lib.precursor_df[f"{col}_observed"]
), f"{col} != {col}_observed"
elif f"{col}_calibrated" in built_lib.precursor_df.columns:
assert built_lib.precursor_df[f"{col}"].equals(
built_lib.precursor_df[f"{col}_calibrated"]
), f"{col} != {col}_calibrated"
else:
assert built_lib.precursor_df[f"{col}"].equals(
built_lib.precursor_df[f"{col}_library"]
), f"{col} != {col}_library"

0 comments on commit f775179

Please sign in to comment.