Is it possible to append new figure to an existing html generated by mne.report module

External Email - Use Caution

Dear group,

I would like to know whether it is possible to append a new figure to an
offline html report that generated by mne_report.

For example, say we have a report_raw_to_first_phase.html (e.g., html) .
Then, in other run, I would like to append a new figure (e.g., Fig1) to the
report_raw_to_first_phase.html and save a new html file.

I am thinking of something lime rep.ANY_FUNCTION_APPEND_FIG1(html_old ,Fig1
) as shown in the function second_run() below.

import mne

from mne.datasets import sample

from mne.report import Report

data_path = sample.data_path()

raw_fname = data_path + '/MEG/sample/sample_audvis_raw.fif'

raw = mne.io.read_raw_fif(raw_fname, preload=True)

def first_run():

    raw1 = raw.copy().crop(0, 20)

    raw1.save(data_path + '/MEG/sample/sub-01_raw.fif', overwrite=True)

    event_id = {'Auditory/Left': 3, 'Auditory/Right': 4}

    def raw_to_evoked(raw_fname, tmin=-0.1, tmax=0.5):

        raw = mne.io.read_raw_fif(data_path + '/MEG/sample/' + raw_fname,
preload=True)

        raw.filter(0, 40.)

        events = mne.find_events(raw, stim_channel='STI 014')

        epochs = mne.Epochs(raw, events, event_id, tmin, tmax)

        fig2 = epochs.plot();

        evoked_l = epochs['Left'].average();

        fig3 = evoked_l.plot_topomap()

        fig4 = evoked_l.plot();

        return [fig2, fig3, fig4]

    rep = Report()

    rep.add_figs_to_section(raw_to_evoked('sub-01_raw.fif'),
captions=['Epochs', 'Topomap', 'Butterfly'])

    rep.save('report_raw_to_first_phase.html')

def second_run():

    fig1 = raw.plot();

    html_old = open('report_raw_to_first_phase.html')

    rep = Report()

    rep.ANY_FUNCTION_APPEND_FIG1(html_old ,Fig1 )

    rep.save('report_raw_to_second_run.html')

first_run()

second_run()

If this is not possible, what is the best advice to generate a
pre_processing report given that I would like to monitor the quality of the
pre_processing at each step.

Regards

Rodney

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20200826/91287fd6/attachment-0001.html

External Email - Use Caution

Hi Rodney,

this is possible if you save the report as .h5 file: report.save('my_report.h5')
and later open it using: mne.open_report('my_report.h5'). Since you probably
also want the report as HTML so you can view it in the browser, I suggest saving
it twice, once as .h5 and once as .html.

You can see this technique in action in my "conpy" analysis pipeline, for
example here:
https://github.com/AaltoImagingLanguage/conpy/blob/master/scripts/04_epochs.py#L71

best,
Marijn.