Source code for VmaxBuilder.protein.proteomics_implementation
"""Generated: validation needed.
Description:
Proteomics submodule implementation used by protein-stage coordinator.
"""
from __future__ import annotations
import pandas as pd
from VmaxBuilder.config.dataclasses import APIConfig
from VmaxBuilder.core.protocols import Scaffold
from VmaxBuilder.protein.input_resolution import resolve_dataframe_input
[docs]
class DefaultProteomicsImplementation:
"""Generated: validation needed.
Description:
Resolve proteomics input and apply placeholder imputation workflow.
"""
[docs]
def resolve_proteomics_frame(
self,
scaffold: Scaffold,
config: APIConfig,
) -> pd.DataFrame | None:
"""Generated: validation needed.
Description:
Resolve proteomics dataframe from configured scaffold/config sources.
Args:
scaffold (Scaffold): Shared pipeline scaffold.
config (APIConfig): Root API configuration.
Returns:
pd.DataFrame | None: Proteomics dataframe when available.
"""
return resolve_dataframe_input(scaffold, config, input_key="proteomics")
[docs]
def impute_proteomics(
self,
proteomics_df: pd.DataFrame,
) -> pd.DataFrame:
"""Generated: validation needed.
Description:
Apply simple two-step placeholder imputation for missing proteomics values.
Args:
proteomics_df (pd.DataFrame): Proteomics input table.
Returns:
pd.DataFrame: Imputed proteomics table.
"""
if proteomics_df.empty:
return proteomics_df.copy()
imputed_df = proteomics_df.copy()
row_medians = imputed_df.median(axis=1)
imputed_df = imputed_df.T.fillna(row_medians).T
sample_medians = imputed_df.median(axis=0)
imputed_df = imputed_df.fillna(sample_medians)
return imputed_df