def test_show_design_matrix(): # test that the show code indeed (formally) runs frame_times = np.linspace(0, 127 * 1., 128) dmtx = make_first_level_design_matrix(frame_times, drift_model='polynomial', drift_order=3) ax = plot_design_matrix(dmtx) assert (ax is not None) with InTemporaryDirectory(): ax = plot_design_matrix(dmtx, output_file='dmtx.png') assert os.path.exists('dmtx.png') assert (ax is None) plot_design_matrix(dmtx, output_file='dmtx.pdf') assert os.path.exists('dmtx.pdf')
def _dmtx_to_svg_url(design_matrices): """Accepts a FirstLevelModel or SecondLevelModel object with fitted design matrices & generates SVG Image URL, which can be inserted into an HTML template. Parameters ---------- design_matrices : List[pd.Dataframe] Design matrices computed in the model. Returns ------- svg_url_design_matrices : String SVG Image URL for the plotted design matrices. """ html_design_matrices = [] dmtx_template_path = os.path.join(HTML_TEMPLATE_ROOT_PATH, 'design_matrix_template.html' ) with open(dmtx_template_path) as html_template_obj: dmtx_template_text = html_template_obj.read() for dmtx_count, design_matrix in enumerate(design_matrices, start=1): dmtx_text_ = string.Template(dmtx_template_text) dmtx_plot = plot_design_matrix(design_matrix) dmtx_title = 'Session {}'.format(dmtx_count) plt.title(dmtx_title, y=0.987) dmtx_plot = _resize_plot_inches(dmtx_plot, height_change=.3) url_design_matrix_svg = _plot_to_svg(dmtx_plot) # prevents sphinx-gallery & jupyter from scraping & inserting plots plt.close() dmtx_text_ = dmtx_text_.safe_substitute( {'design_matrix': url_design_matrix_svg, 'dmtx_title': dmtx_title, } ) html_design_matrices.append(dmtx_text_) svg_url_design_matrices = ''.join(html_design_matrices) return svg_url_design_matrices
# preprocess the data subject_data = do_subjects_preproc(jobfile, dataset_dir=dataset_dir)[0] # construct design matrix nscans = len(subject_data.func[0]) frametimes = np.linspace(0, (nscans - 1) * tr, nscans) drift_model = 'Cosine' hrf_model = 'spm + derivative' design_matrix = make_first_level_design_matrix(frametimes, paradigm, hrf_model=hrf_model, drift_model=drift_model, high_pass=hfcut) # plot and save design matrix ax = plot_design_matrix(design_matrix) ax.set_position([.05, .25, .9, .65]) ax.set_title('Design matrix') dmat_outfile = os.path.join(subject_data.output_dir, 'design_matrix.png') plt.savefig(dmat_outfile, bbox_inches="tight", dpi=200) # specify contrasts contrasts = {} _, matrix, names = check_design_matrix(design_matrix) contrast_matrix = np.eye(len(names)) for i in range(len(names)): contrasts[names[i]] = contrast_matrix[i] # more interesting contrasts""" contrasts = {'active-rest': contrasts['active'] - contrasts['rest']}