def get_pd_from_molecule(molecule_name, structures): """ INPUT: molecule_name: name of the molecule as given in the structres file structures: structures file containing information (x, y, z coordinates) for all molecules OUTPUT: X_scaled: scaled persistence diagrams """ m = structures[structures['molecule_name'] == molecule_name][['x', 'y', 'z']].to_numpy() m = m.reshape((1, m.shape[0], m.shape[1])) homology_dimensions = [0, 1, 2] persistenceDiagram = VietorisRipsPersistence(metric='euclidean', homology_dimensions=homology_dimensions, n_jobs=1) persistenceDiagram.fit(m) X_diagrams = persistenceDiagram.transform(m) diagram_scaler = diag.Scaler() diagram_scaler.fit(X_diagrams) X_scaled = diagram_scaler.transform(X_diagrams) return X_scaled
def test_vrp_not_fitted(): vrp = VietorisRipsPersistence() with pytest.raises(NotFittedError): vrp.transform(X)