def METHOD_NAME(self, X):
    missing_cols = {'mz', 'ints', 'mz'}.difference(X.columns)
    assert not missing_cols, f'X is missing columns: {", ".join(missing_cols)}'
    mean_spectrum = hybrid_mean_spectrum(X, self.analyzer, self.align_sigma_1)
    spectrum = representative_spectrum(
        X,
        mean_spectrum,
        self.analyzer,
        self.align_sigma_1,
        denoise=True,
    )
    self.target_spectrum = spectrum[['mz', 'ints']].sort_values('mz')
    logger.info(f'Alignment spectrum has {len(spectrum)} peaks')
    self.min_mz = np.round(X.mz.min(), -1)
    self.max_mz = np.round(X.mz.max(), -1)
    return self