Пример #1
0
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,
    )
Пример #2
0
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()
Пример #3
0
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,
		)
Пример #4
0
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,
			)
Пример #5
0
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,
			)
Пример #6
0
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()
Пример #7
0
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',
		)
Пример #8
0
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,
		)
Пример #9
0
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,
		)
Пример #10
0
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()
Пример #11
0
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',
    )