Source code for riboraptor.normalization

import numpy as np


[docs]def deseq2_normalization(list_of_profiles): """Perform DESeq2 like normalization position specific scores Parameters ---------- list_of_profiles: array-like array of profiles across samples for one gene Returns ------- normalized_profiles: array-like array of profiles across samples """ # Transpose the profiles so that the rows represent the positions, the columns represent the samples list_of_profiles = np.array(list_of_profiles).T + 1 geometric_mean_col = np.sqrt(list_of_profiles.prod(axis=1)) profiles_ratio = list_of_profiles / geometric_mean_col[:, None] size_factors = np.median(profiles_ratio, axis=0) normalized_profiles = profiles_ratio / size_factors return normalized_profiles.T