run analysis