def temporal_qc_al_in_one(): import matplotlib.pyplot as plt import matplotlib.ticker as plticker import numpy as np from samri.report.snr import iter_base_metrics from samri.plotting.timeseries import multi from samri.utilities import bids_substitution_iterator substitutions = bids_substitution_iterator( ['testSTIM'], ['COILphantom'], ['CcsI'], '/home/chymera/ni_data/phantoms/', 'bids', acquisitions=[ 'EPIalladj', 'EPIcopyadjNODUM', 'EPIcopyadj', 'EPImoveGOP' ], ) timecourses = iter_base_metrics( '{data_dir}/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}.nii', substitutions) multi( timecourses, designs=[], events_dfs=[], subplot_titles='acquisition', quantitative=False, save_as="temp_qc.pdf", samri_style=True, ax_size=[16, 6], unit_ticking=True, )
def p_clusters(mask): from samri.plotting import summary, timeseries substitutions = bids_substitution_iterator( ["ofM", "ofM_aF", "ofM_cF1", "ofM_cF2", "ofM_pF"], ["4011", "4012", "5689", "5690", "5691"], # ["4007","4008","4011","4012","5689","5690","5691"], ["EPI_CBV_jb_long", "EPI_CBV_chr_longSOA"], "~/ni_data/ofM.dr/", "composite", l1_dir="dr", ) timecourses, designs, stat_maps, events_dfs, subplot_titles = summary.p_filtered_ts( substitutions, ts_file_template= "{data_dir}/preprocessing/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_task-{scan}.nii.gz", beta_file_template= "{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{scan}_cope.nii.gz", # p_file_template="{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{scan}_pstat.nii.gz", p_file_template= "{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{scan}_pfstat.nii.gz", design_file_template= "{data_dir}/l1/{l1_workdir}/_subject_session_scan_{subject}.{session}.{scan}/modelgen/run0.mat", event_file_template= "{data_dir}/preprocessing/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_task-{scan}_events.tsv", brain_mask=mask, p_level=0.05, ) timeseries.multi(timecourses, designs, stat_maps, events_dfs, subplot_titles, figure="timecourses") plt.show()
def temporal_qc_al_in_one(): import matplotlib.pyplot as plt import matplotlib.ticker as plticker import numpy as np from samri.report.snr import iter_base_metrics from samri.plotting.timeseries import multi from samri.utilities import bids_substitution_iterator substitutions = bids_substitution_iterator( ['testSTIM'], ['COILphantom'], ['CcsI'], '/home/chymera/ni_data/phantoms/', 'bids', acquisitions=['EPIalladj','EPIcopyadjNODUM','EPIcopyadj','EPImoveGOP'], ) timecourses = iter_base_metrics('{data_dir}/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}.nii', substitutions) multi(timecourses, designs=[], events_dfs=[], subplot_titles='acquisition', quantitative=False, save_as="temp_qc.pdf", samri_style=True, ax_size=[16,6], unit_ticking=True, )
def temporal_qc_separate(): import matplotlib.pyplot as plt import matplotlib.ticker as plticker import numpy as np import pandas as pd from samri.report.snr import base_metrics from samri.plotting.timeseries import multi from samri.utilities import bids_substitution_iterator substitutions = bids_substitution_iterator( ['testSTIM'], ['COILphantom'], ['CcsI'], '/home/chymera/ni_data/phantoms/', 'bids', acquisitions=['EPIalladj','EPIcopyadjNODUM','EPIcopyadj','EPImoveGOP'], ) for i in substitutions: timecourses = base_metrics('{data_dir}/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}.nii', i) events_df = pd.read_csv('{data_dir}/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}_events.tsv'.format(**i), sep='\t') multi(timecourses, designs=[], events_dfs=[events_df], subplot_titles='acquisition', quantitative=False, save_as='temp_{acquisition}.pdf'.format(**i), samri_style=True, ax_size=[16,6], unit_ticking=True, )
def temporal_qc_separate(): import matplotlib.pyplot as plt import matplotlib.ticker as plticker import numpy as np import pandas as pd from samri.report.snr import base_metrics from samri.plotting.timeseries import multi from samri.utilities import bids_substitution_iterator substitutions = bids_substitution_iterator( ['testSTIM'], ['COILphantom'], ['CcsI'], '/home/chymera/ni_data/phantoms/', 'bids', acquisitions=['EPIalladj','EPIcopyadjNODUM','EPIcopyadj','EPImoveGOP'], ) for i in substitutions: timecourses = base_metrics('{data_dir}/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}.nii', i) events_df = pd.read_csv('{data_dir}/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_events.tsv'.format(**i), sep='\t') multi(timecourses, designs=[], events_dfs=[events_df], subplot_titles='acquisition', quantitative=False, save_as='temp_{acquisition}.pdf'.format(**i), samri_style=True, ax_size=[16,6], unit_ticking=True, )
def roi(roi_path="~/ni_data/templates/roi/f_dr_chr.nii.gz"): from samri.plotting import summary, timeseries substitutions = bids_substitution_iterator( ["ofM","ofM_aF","ofM_cF1","ofM_cF2","ofM_pF"], [4007,4008,4009,4011,4012], ["EPI_CBV_jb_long"], "~/ni_data/ofM.dr/", "composite", ) timecourses, designs, stat_maps, subplot_titles = summary.roi_ts(substitutions, roi_path=roi_path,) timeseries.multi(timecourses, designs, stat_maps, subplot_titles, figure="timecourses") plt.show()
def test_multi_roi_timeseries(): import matplotlib.pyplot as plt from os import path from samri.plotting import summary, timeseries from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel substitutions = bids_substitution_iterator( sessions=[ 'ofM', 'ofMaF', ], subjects=[ '4007', ], runs=[ '0', '1', ], modalities=[ 'bold', 'cbv', ], data_dir='/usr/share/samri_bidsdata', # BOLD scans are not recognized, since the current (=sci-biology/samri_bidsdata-0.2) filt file suffix also contains `_maths_` for CBV, but not for BOLD. validate_for_template="{data_dir}/l1/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_{modality}.nii.gz", ) mapping='/usr/share/mouse-brain-atlases/dsurqe_labels.csv' atlas='/usr/share/mouse-brain-atlases/dsurqec_40micron_labels.nii' my_roi = roi_from_atlaslabel(atlas, mapping=mapping, label_names=['cortex'], ) timecourses, designs, _, events_dfs, subplot_titles = summary.ts_overviews(substitutions, my_roi, ts_file_template="{data_dir}/l1/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_{modality}.nii.gz", betas_file_template="{data_dir}/l1/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_{modality}_betas.nii.gz", design_file_template="{data_dir}/l1/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_{modality}_design.mat", event_file_template='{data_dir}/preprocessing/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_events.tsv', n_jobs_percentage=0.5, ) style_file = path.join(path.dirname(path.realpath(__file__)),'../samri_multiple-ts.conf') plt.style.use(style_file) timeseries.multi(timecourses, designs, events_dfs, subplot_titles, quantitative=False, save_as='_multi_roi_timeseries.pdf', )
def qc_regressor(sessions, subjects, scans, workflow_name, mask, data_dir="~/ni_data/ofM.dr", save_as="", ): from samri.plotting import summary, timeseries plt.style.use('samri_multiple-ts.conf') substitutions = bids_substitution_iterator(sessions,subjects,scans,data_dir,workflow_name) timecourses, designs, stat_maps, events_dfs, subplot_titles = summary.ts_overviews(substitutions, mask, ts_file_template="{data_dir}/preprocessing/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_trial-{scan}.nii.gz", beta_file_template="{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_trial-{scan}_cope.nii.gz", design_file_template="{data_dir}/l1/{l1_workdir}/_subject_session_scan_{subject}.{session}.{scan}/modelgen/run0.mat", event_file_template="{data_dir}/preprocessing/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_trial-{scan}_events.tsv", ) timeseries.multi(timecourses, designs, stat_maps, events_dfs, subplot_titles, figure="timecourses", quantitative=False, save_as=save_as, )
def qc_regressor(sessions, subjects, scans, workflow_name, mask, data_dir="~/ni_data/ofM.dr", save_as="", ): from samri.plotting import summary, timeseries plt.style.use('samri_multiple-ts.conf') substitutions = bids_substitution_iterator(sessions,subjects,scans,data_dir,workflow_name) timecourses, designs, stat_maps, events_dfs, subplot_titles = summary.ts_overviews(substitutions, mask, ts_file_template="{data_dir}/preprocessing/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_task-{scan}.nii.gz", beta_file_template="{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{scan}_cope.nii.gz", design_file_template="{data_dir}/l1/{l1_workdir}/_subject_session_scan_{subject}.{session}.{scan}/modelgen/run0.mat", event_file_template="{data_dir}/preprocessing/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_task-{scan}_events.tsv", ) timeseries.multi(timecourses, designs, stat_maps, events_dfs, subplot_titles, figure="timecourses", quantitative=False, save_as=save_as, )
def p_clusters(mask): from samri.plotting import summary, timeseries substitutions = bids_substitution_iterator( ["ofM","ofM_aF","ofM_cF1","ofM_cF2","ofM_pF"], ["4011","4012","5689","5690","5691"], # ["4007","4008","4011","4012","5689","5690","5691"], ["EPI_CBV_jb_long","EPI_CBV_chr_longSOA"], "~/ni_data/ofM.dr/", "composite", l1_dir="dr", ) timecourses, designs, stat_maps, events_dfs, subplot_titles = summary.p_filtered_ts(substitutions, ts_file_template="{data_dir}/preprocessing/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_task-{scan}.nii.gz", beta_file_template="{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{scan}_cope.nii.gz", # p_file_template="{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{scan}_pstat.nii.gz", p_file_template="{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{scan}_pfstat.nii.gz", design_file_template="{data_dir}/l1/{l1_workdir}/_subject_session_scan_{subject}.{session}.{scan}/modelgen/run0.mat", event_file_template="{data_dir}/preprocessing/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_task-{scan}_events.tsv", brain_mask=mask, p_level=0.05, ) timeseries.multi(timecourses, designs, stat_maps, events_dfs, subplot_titles, figure="timecourses") plt.show()
def test_multi_roi_timeseries(): import matplotlib.pyplot as plt from os import path from samri.plotting import summary, timeseries from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel substitutions = bids_substitution_iterator( sessions=[ 'ofM', 'ofMaF', ], subjects=[ '4007', ], runs=[ '0', '1', ], modalities=[ 'bold', 'cbv', ], data_dir='/usr/share/samri_bidsdata', # BOLD scans are not recognized, since the current (=sci-biology/samri_bidsdata-0.2) filt file suffix also contains `_maths_` for CBV, but not for BOLD. validate_for_template= "{data_dir}/l1/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_{modality}.nii.gz", ) mapping = '/usr/share/mouse-brain-atlases/dsurqe_labels.csv' atlas = '/usr/share/mouse-brain-atlases/dsurqec_40micron_labels.nii' my_roi = roi_from_atlaslabel( atlas, mapping=mapping, label_names=['cortex'], ) timecourses, designs, _, events_dfs, subplot_titles = summary.ts_overviews( substitutions, my_roi, ts_file_template= "{data_dir}/l1/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_{modality}.nii.gz", betas_file_template= "{data_dir}/l1/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_{modality}_betas.nii.gz", design_file_template= "{data_dir}/l1/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_{modality}_design.mat", event_file_template= '{data_dir}/preprocessing/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_task-JogB_acq-EPIlowcov_run-{run}_events.tsv', n_jobs_percentage=0.5, ) style_file = path.join(path.dirname(path.realpath(__file__)), '../samri_multiple-ts.conf') plt.style.use(style_file) timeseries.multi( timecourses, designs, events_dfs, subplot_titles, quantitative=False, save_as='_multi_roi_timeseries.pdf', )