import phate
from sklearn.manifold import Isomap

class ManifoldTournament:
    def __init__(self, data):
        self.data = data
        
    def run_phate(self):
        op = phate.PHATE(t='auto', n_jobs=-1)
        coords = op.fit_transform(self.data)
        return coords, op

    def run_isomap(self, n_neighbors=15):
        iso = Isomap(n_neighbors=n_neighbors, n_components=2)
        return iso.fit_transform(self.data)