GSEA algorithm