class NameMatching(TransformerMixin): def __init__(self): super().__init__() self.naming = NamingService('recon') def fit(self, X, y=None): return self def transform(self, X, y=None): return self.naming.to(X)
def hmdb_disease_normalization(): dataset = DataReader().read_hmdb_diseases() naming = NamingService('hmdb') nor_data = dict() for dis, categories in dataset.items(): for cat, measurements in categories.items(): named_measurements = naming.to(dict(measurements)) if len(named_measurements) >= 10: nor_data['%s %s' % (dis, cat)] = { k: round( min(v - 1, 100) if v >= 1 else max(1 - v**-1, -100), 3) for k, v in named_measurements.items() } DataWriter('normalization_hmdb').write_json(nor_data)
class MetabolicSolutionScaler(TransformerMixin): """Scaler for converting change level data to pathway level""" def __init__(self, vectorizer: DictVectorizer): self.vectorizer = vectorizer self.solution_service = SolutionService() self.naming = NamingService('ecolin') def fit(self, X, y): return self def transform(self, X, y=[]): ecolin_X = self.naming.to(X) solutions = self.solution_service.get_solutions(ecolin_X) return solutions def fit_transform(self, X, y): return self.fit(X, y).transform(X, y)