Пример #1
0
def evaluateQuality():
    data_dir = path.join(path.dirname(path.realpath(__file__)),
                         "../example_data/")
    df_path = path.join(data_dir, "f_reg_quality.csv")

    registration_qc(
        df_path,
        value={"similarity": "Similarity"},
        group={"subject": "Subject"},
        repeat={"session": "Session"},
        extra={"acquisition": "Acquisition"},
        save_as="registration_qc.png",
        show=False,
    )

    df = pd.read_csv(df_path)
    #model="similarity ~ C(acquisition) + C(session) + C(subject)"
    model = "similarity ~ C(session) + C(subject)"
    regression_model = smf.ols(model, data=df).fit()
    anova_summary = sm.stats.anova_lm(regression_model, typ=2)

    print(inline_anova(anova_summary, "C(subject)", style="python"))
    print(inline_anova(anova_summary, "C(session)", style="python", max_len=2))
    #print(inline_anova(anova_summary,"C(acquisition)",style="python"))
    print(inline_anova(anova_summary, "C(subject)", style="tex"))
    print(inline_anova(anova_summary, "C(session)", style="tex", max_len=2))
    #print(inline_anova(anova_summary,"C(acquisition)",style="tex"))

    # plotting variance results for different metrics
    # TODO: warum MI = 0?

    metrics = ['CC', 'MI', 'GC']
    means = []
    stds = []

    for metric in metrics:

        df_path = path.join('/media/nexus/storage/coding/github/SAMRI/',
                            "f_reg_quality_" + metric + ".csv")
        df = pd.read_csv(df_path)
        variances = df.groupby('subject').agg('var')
        std = sqrt(variances['similarity'].sum())
        mean = df.groupby('subject').agg('mean')['similarity'].sum()
        means.append(mean)
        stds.append(std)

    print(metrics)
    print(means)
    print(stds)

    return metrics, means, stds
Пример #2
0
def reg_gc():
    from samri.plotting.aggregate import registration_qc
    from samri.report.registration import iter_measure_sim
    from samri.typesetting import inline_anova

    df = iter_measure_sim(
        "~/ni_data/ofM.dr/preprocessing/composite",
        "~/.samri_files/templates/mouse/DSURQE/DSURQEc_200micron_average.nii",
        #modality="anat",
        metric="GC",
        radius_or_number_of_bins=0,
        sampling_strategy="Regular",
        sampling_percentage=0.5,
        save_as=False,
    )

    anova_summary = registration_qc(
        df,
        value={"similarity": "Similarity"},
        group={"sub": "Subject"},
        repeat={"ses": "Session"},
        show=False,
        save_as="/tmp/f_reg_gc.png",
    )

    subject_effect = inline_anova(anova_summary, "C(Subject)", style="python")
    print("Subject Main Effect: {}".format(subject_effect))
    session_effect = inline_anova(anova_summary, "C(Session)", style="python")
    print("Session Main Effect: {}".format(session_effect))
Пример #3
0
def reg_gc():
	from samri.plotting.aggregate import registration_qc
	from samri.report.registration import iter_measure_sim
	from samri.typesetting import inline_anova

	df = iter_measure_sim(
		"~/ni_data/ofM.dr/preprocessing/composite",
		"~/.samri_files/templates/mouse/DSURQE/DSURQEc_200micron_average.nii",
		#modality="anat",
		metric="GC",
		radius_or_number_of_bins = 0,
		sampling_strategy = "Regular",
		sampling_percentage=0.5,
		save_as=False,
		)

	anova_summary = registration_qc(df,
		value={"similarity":"Similarity"},
		group={"sub":"Subject"},
		repeat={"ses":"Session"},
		show=False,
		save_as='/tmp/f_reg_gc.png',
		)

	subject_effect = inline_anova(anova_summary,"C(Subject)",style="python")
	print("Subject Main Effect: {}".format(subject_effect))
	session_effect = inline_anova(anova_summary,"C(Session)",style="python")
	print("Session Main Effect: {}".format(session_effect))
Пример #4
0
def test_autofind():
	"""We may be able to turn this into a CI function, if we put together a data fetching script for dummy (empty) BIDS-formatted data.
	"""
	from samri.utilities import bids_autofind
	from samri.plotting.aggregate import registration_qc
	from samri.report.registration import get_scores
	from samri.typesetting import inline_anova
	from samri.utilities import bids_substitution_iterator

	path_template, substitutions = bids_autofind("~/ni_data/ofM.dr/preprocessing/composite","func")

	df = get_scores(path_template, substitutions,
		"~/ni_data/templates/DSURQEc_200micron_average.nii",
		metric="CC",
		radius_or_number_of_bins=10,
		sampling_strategy="Regular",
		sampling_percentage=0.33,
		save_as=False,
		)

	anova_summary = registration_qc(df,
		value={"similarity":"Similarity"},
		group={"sub":"Subject"},
		repeat={"ses":"Session"},
		show=False,
		save_as="/tmp/f_reg_cc10.png",
		)

	subject_effect = inline_anova(anova_summary,"C(Subject)",style="python")
	print("Subject Main Effect: {}".format(subject_effect))
	session_effect = inline_anova(anova_summary,"C(Session)",style="python")
	print("Session Main Effect: {}".format(session_effect))
Пример #5
0
def reg_cc(
    radius=5,
    autofind=True,
):
    from samri.utilities import bids_autofind
    from samri.plotting.aggregate import registration_qc
    from samri.report.registration import get_scores
    from samri.typesetting import inline_anova
    from samri.utilities import bids_substitution_iterator

    if autofind:
        path_template, substitutions = bids_autofind(
            "~/ni_data/ofM.dr/preprocessing/composite", "func")
    else:
        substitutions = bids_substitution_iterator(
            ["ofM", "ofM_aF", "ofM_cF1", "ofM_cF2", "ofM_pF"],
            [
                "4001", "4007", "4008", "4011", "5692", "5694", "5699", "5700",
                "5704", "6255", "6262"
            ],
            ["EPI_CBV_chr_longSOA", "EPI_CBV_jb_long"],
            "~/ni_data/ofM.dr/",
            "composite",
        )
        path_template = "~/ni_data/ofM.dr/preprocessing/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_trial-{trial}.nii.gz"

    df = get_scores(
        path_template,
        substitutions,
        "~/ni_data/templates/DSURQEc_200micron_average.nii",
        metric="CC",
        radius_or_number_of_bins=radius,
        sampling_strategy="Regular",
        sampling_percentage=0.33,
        save_as="f_reg_quality.csv",
    )

    anova_summary = registration_qc(
        df,
        value={"similarity": "Similarity"},
        group={"sub": "Subject"},
        repeat={"ses": "Session"},
        extra={"trial": "Type"},
        model="{value} ~ C({extra}) + C({repeat}) + C({group}) -1",
        save_as="registration_qc.png",
        print_model=True,
        print_anova=True,
        show=False,
    )

    subject_effect = inline_anova(anova_summary, "C(Subject)", style="python")
    print("Subject Main Effect: {}".format(subject_effect))
    session_effect = inline_anova(anova_summary,
                                  "C(Session)",
                                  style="python",
                                  max_len=2)
    print("Session Main Effect: {}".format(session_effect))
    type_effect = inline_anova(anova_summary, "C(Type)", style="python")
    print("Scan Type Main Effect: {}".format(type_effect))
Пример #6
0
from os import path
import matplotlib.pyplot as plt
from samri.plotting.aggregate import registration_qc
from samri.typesetting import inline_anova

this_path = path.dirname(path.realpath(__file__))

data_dir = path.join(this_path, "../../example_data/")
df_path = path.join(data_dir, "f_reg_quality.csv")

plt.style.use(path.join(this_path, "dark.conf"))
registration_qc(
    df_path,
    value={"similarity": "Similarity"},
    group={"subject": "Subject"},
    repeat={"session": "Session"},
    extra={"acquisition": "Type"},
    save_as="2017-09_aic-pom.pdf",
    show=False,
    samri_style=False,
    extra_cmap=["#FFFFFF", "#000000"],
    cmap=["#EE1111", "#11DD11", "#1111FF", "#CCCC22", "#AA11AA"],
    values_rename={
        "sub": "Subject",
        "EPI_CBV_chr_longSOA": "longer",
        "EPI_CBV_jb_long": "shorter",
    },
)
Пример #7
0
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
from os import path
from samri.plotting.aggregate import registration_qc
from samri.typesetting import inline_anova

data_dir = path.join(path.dirname(path.realpath(__file__)),
                     "../../example_data/")
df_path = path.join(data_dir, "f_reg_quality.csv")

registration_qc(
    df_path,
    value={"similarity": "Similarity"},
    group={"subject": "Subject"},
    repeat={"session": "Session"},
    extra={"acquisition": "Acquisition"},
    save_as="registration_qc.png",
    show=False,
)

df = pd.read_csv(df_path)
#model="similarity ~ C(acquisition) + C(session) + C(subject)"
model = "similarity ~ C(session) + C(subject)"
regression_model = smf.ols(model, data=df).fit()
anova_summary = sm.stats.anova_lm(regression_model, typ=2)

print(inline_anova(anova_summary, "C(subject)", style="python"))
print(inline_anova(anova_summary, "C(session)", style="python", max_len=2))
#print(inline_anova(anova_summary,"C(acquisition)",style="python"))
print(inline_anova(anova_summary, "C(subject)", style="tex"))
Пример #8
0
from os import path
from samri.plotting.aggregate import registration_qc
from samri.typesetting import inline_anova


data_dir = path.join(path.dirname(path.realpath(__file__)),"../../example_data/")
df_path = path.join(data_dir,"f_reg_quality.csv")

anova_summary = registration_qc(df_path,
	value={"similarity":"Similarity"},
	group={"sub":"Subject"},
	repeat={"ses":"Session"},
	extra={"trial":"Type"},
	model="{value} ~ C({extra}) + C({repeat}) + C({group}) -1",
	save_as="registration_qc.png",
	print_model=True,
	print_anova=True,
	show=False,
	anova_type=2,
	)

print(inline_anova(anova_summary,"C(Subject)",style="python"))
print(inline_anova(anova_summary,"C(Session)",style="python", max_len=2))
print(inline_anova(anova_summary,"C(Type)",style="python"))
print(inline_anova(anova_summary,"C(Subject)",style="tex"))
print(inline_anova(anova_summary,"C(Session)",style="tex", max_len=2))
print(inline_anova(anova_summary,"C(Type)",style="tex"))
Пример #9
0
data_dir = path.join(this_path, "../../example_data/")
df_path = path.join(data_dir, "f_reg_quality.csv")

plt.style.use(path.join(this_path, "dark.conf"))
anova_summary = registration_qc(
    df_path,
    value={"similarity": "Similarity"},
    group={"sub": "Subject"},
    repeat={"ses": "Session"},
    extra={"trial": "Type"},
    model="{value} ~ C({extra}) + C({repeat}) + C({group}) -1",
    save_as="2017-09_aic-pom.pdf",
    print_model=True,
    print_anova=True,
    show=False,
    anova_type=3,
    samri_style=False,
    extra_cmap=["#FFFFFF", "#000000"],
    cmap=["#EE1111", "#11DD11", "#1111FF", "#CCCC22", "#AA11AA"],
    values_rename={
        "sub": "Subject",
        "EPI_CBV_chr_longSOA": "longer",
        "EPI_CBV_jb_long": "shorter",
    },
)

print(inline_anova(anova_summary, "C(Subject)", style="python"))
print(inline_anova(anova_summary, "C(Session)", style="python", max_len=2))
print(inline_anova(anova_summary, "C(Type)", style="python"))
print(inline_anova(anova_summary, "C(Subject)", style="tex"))