Source code for bioverse.transforms.standardize_pairwise
import numpy as np
from ..transform import Transform
[docs]
class StandardizePairwise(Transform):
"""Standardize pairwise targets stored in assets (e.g. lDDT matrices)."""
def __init__(self, meta: str = "lddt"):
self.meta = meta
def fit(self, batches, split, assets):
table = assets[self.meta]
matrix = np.load(table["path"], mmap_mode="r").astype(np.float64)
self.mean = float(np.mean(matrix))
self.std = float(np.std(matrix))
if self.std == 0:
self.std = 1.0
def transform_assets(self, assets):
table = dict(assets[self.meta])
table["standardize_mean"] = float(self.mean)
table["standardize_std"] = float(self.std)
assets[self.meta] = table
return assets
def inverse_transform(self, y):
y["target"] = y["target"] * self.std + self.mean
return y