Source code for maayanlab_bioinformatics.normalization.cpm

import logging
import numpy as np
import pandas as pd
from functools import singledispatch


[docs] @singledispatch def cpm_normalize(mat): ''' Compute counts-per-million value of counts Simple division of each column by the total sum of its counts and multiplying it by 10^6 ''' logging.warn('Unrecognized type: ' + type(mat).__name__) return cpm_normalize_np(mat)
[docs] @cpm_normalize.register def cpm_normalize_np(mat: np.ndarray): return (mat / mat.sum(axis=0)) * 1e6
[docs] @cpm_normalize.register def cpm_normalize_pd(mat: pd.DataFrame): return (mat / mat.sum(axis=0)) * 1e6