expose expected model plotting as a command line tool

Issue #8 on hold
Thomas Gilgenast created an issue

currently, expected model plotting is triggered via the -o/--plot_outfile API when calling the expected subcommand, but there is no way to plot expected models (with or without overlaying) from the command line as a separate step

this is probably pretty low-priority, since serious overlay plotters will write simple scripts like the one used for the comparison manuscript which allow fine control over the plotting details (this follows the principle of "only allow simple visualizations to be drawn from the command line because plotting can get very complicated very quickly" - the command line visualizers in lib5c are only there for quick inspection of a countsfile)

Comments (5)

  1. Thomas Gilgenast reporter

    a related issue is that the -o/--plot_outfile API does not allow any adaptations for logging or not logging the axes

    now that pipelines are including logging up-front, we might not want to log the y-axis on these plots (since doing so is effectively double-logging), but there is no way to control this behavior on lib5c expected

    in fact, comparison-manuscript is now using custom plotting code that uses plot_fit() since plot_bin_expected() doesn't support unlogging the y-axis:

        obs_regional_counts = load_counts(obs_countsfile, pixelmap)[region]
        exp_regional_counts = load_counts(exp_countsfile, pixelmap)[region]
        xs, ys = zip(*[[i - j, obs_regional_counts[i, j]]
                       for i in range(len(obs_regional_counts))
                       for j in range(i + 1)
                       if np.isfinite(obs_regional_counts[i, j])])
        plot_fit(np.array(xs), np.array(ys),
                 exp_regional_counts[0, :][np.array(xs)],
                 logx=False, logy=False, outfile=outfile)
    

    so overall we would want to overhaul plot_bin_expected() as well to give it feature parity with plot_fit() (and probably become a client of plot_fit() too)

  2. Thomas Gilgenast reporter

    this is not likely to get a fix, because it doesn’t seem to be in heavy demand. the recommended short-term workaround is to use the custom plotting approach mentioned in the comment above. if we see this getting heavy use in the wild we will reopen this.

  3. Log in to comment