xpectra.pipeline.core

Training, preprocessing, and prediction helpers for FTIR model routes.

Functions

align_features_to_artifact(df, artifact)

artifact_matches(artifact, path, requested)

artifact_path(models_dir, route, model_name)

available_models(df, config)

combine_normalized_to_grid(df[, config, ...])

config_with_overrides([config])

derivative_route_dataframe(normalized_df, order)

ensure_prediction_metadata(df, config)

evaluate_holdout(estimator, X_raw, y, config)

fit_final_model(estimator, X_raw, y, config)

force_absorbance_input(df[, scale_factor])

is_wavenumber_column(column)

load_artifacts(models_dir, route[, model_names])

load_training_dataframe(route, ...)

make_artifact(route, model_name, model, ...)

make_prediction_route_dataframes(input_df[, ...])

map_polymer_type(polymer)

metadata_frame(df)

normalize_routes(routes)

predict_csv(input_csv, output_csv[, routes, ...])

predict_with_artifact(df, artifact[, ...])

preprocess_raw_dataframe(df[, config, ...])

read_csv(path)

safe_name(name)

Return a stable filesystem/column-safe version of a model name.

select_models(models, requested[, limit])

spectral_columns_sorted(df[, wn_min, wn_max])

train_route(route[, processed_dir, ...])

train_routes([routes, processed_dir, ...])

training_arrays(df, config)

xpectra.pipeline.core.safe_name(name)[source]

Return a stable filesystem/column-safe version of a model name.

Parameters:

name (str)

Return type:

str

xpectra.pipeline.core.normalize_routes(routes)[source]
Parameters:

routes (Iterable[str] | None)

Return type:

list[str]

xpectra.pipeline.core.read_csv(path)[source]
Parameters:

path (str | Path)

Return type:

DataFrame

xpectra.pipeline.core.is_wavenumber_column(column)[source]
Parameters:

column (Any)

Return type:

bool

xpectra.pipeline.core.spectral_columns_sorted(df, wn_min=None, wn_max=None)[source]
Parameters:
  • df (DataFrame)

  • wn_min (float | None)

  • wn_max (float | None)

Return type:

tuple[list[str], ndarray]

xpectra.pipeline.core.metadata_frame(df)[source]
Parameters:

df (DataFrame)

Return type:

DataFrame

xpectra.pipeline.core.map_polymer_type(polymer)[source]
Parameters:

polymer (Any)

Return type:

str

xpectra.pipeline.core.load_training_dataframe(route, processed_dir, config)[source]
Parameters:
Return type:

DataFrame

xpectra.pipeline.core.training_arrays(df, config)[source]
Parameters:
Return type:

dict[str, Any]

xpectra.pipeline.core.available_models(df, config)[source]
Parameters:
Return type:

dict[str, Any]

xpectra.pipeline.core.select_models(models, requested, limit=None)[source]
Parameters:
Return type:

dict[str, Any]

xpectra.pipeline.core.evaluate_holdout(estimator, X_raw, y, config)[source]
Parameters:
Return type:

dict[str, Any]

xpectra.pipeline.core.fit_final_model(estimator, X_raw, y, config, fit_on='full')[source]
Parameters:
Return type:

tuple[Any, StandardScaler, dict[str, Any]]

xpectra.pipeline.core.artifact_path(models_dir, route, model_name)[source]
Parameters:
Return type:

Path

xpectra.pipeline.core.make_artifact(route, model_name, model, scaler, arrays, config, source_file, metrics, fit_info)[source]
Parameters:
Return type:

dict[str, Any]

xpectra.pipeline.core.train_route(route, processed_dir=None, models_dir=None, model_names=None, config=None, fit_on='full', evaluate=False, skip_existing=False, limit_models=None)[source]
Parameters:
Return type:

list[dict[str, Any]]

xpectra.pipeline.core.train_routes(routes=None, processed_dir=None, models_dir=None, model_names=None, config=None, fit_on='full', evaluate=False, skip_existing=False, limit_models=None)[source]
Parameters:
Return type:

DataFrame

xpectra.pipeline.core.ensure_prediction_metadata(df, config)[source]
Parameters:
Return type:

DataFrame

xpectra.pipeline.core.force_absorbance_input(df, scale_factor=None)[source]
Parameters:
  • df (DataFrame)

  • scale_factor (float | None)

Return type:

DataFrame

xpectra.pipeline.core.preprocess_raw_dataframe(df, config=None, force_absorbance=False, absorbance_scale_factor=None, plot=False)[source]
Parameters:
Return type:

DataFrame

xpectra.pipeline.core.combine_normalized_to_grid(df, config=None, study_name='prediction')[source]
Parameters:
Return type:

DataFrame

xpectra.pipeline.core.derivative_route_dataframe(normalized_df, order, config=None)[source]
Parameters:
Return type:

DataFrame

xpectra.pipeline.core.make_prediction_route_dataframes(input_df, routes=None, config=None, input_stage='raw', force_absorbance=False, absorbance_scale_factor=None, save_features_dir=None)[source]
Parameters:
Return type:

dict[str, DataFrame]

xpectra.pipeline.core.artifact_matches(artifact, path, requested)[source]
Parameters:
Return type:

bool

xpectra.pipeline.core.load_artifacts(models_dir, route, model_names=None)[source]
Parameters:
Return type:

list[tuple[Path, dict[str, Any]]]

xpectra.pipeline.core.align_features_to_artifact(df, artifact)[source]
Parameters:
Return type:

ndarray

xpectra.pipeline.core.predict_with_artifact(df, artifact, include_probabilities=False)[source]
Parameters:
  • df (DataFrame)

  • artifact (dict[str, Any])

  • include_probabilities (bool)

Return type:

DataFrame

xpectra.pipeline.core.predict_csv(input_csv, output_csv, routes=None, models_dir=None, model_names=None, config=None, input_stage='raw', force_absorbance=False, absorbance_scale_factor=None, include_probabilities=False, save_features_dir=None)[source]
Parameters:
Return type:

DataFrame

xpectra.pipeline.core.config_with_overrides(config=None, **overrides)[source]
Parameters:
Return type:

PreprocessConfig