## Contents

- Contrast Properties
- Signal intensity and contrast vs. sequence parameters in a spin echo sequence
- Signal intensities for an Inversion Recovery Sequence.
- Signal intensities for a FLASH Sequence
- Flip angle, TR, T1

    function MRPhysics()

## Contrast Properties

In many cases, it is possible to approximate the signal intensities of various body tissues for any given pulse sequence, if properties of the tissue are known.

The crucial tissue properties are: Proton density (usually close to 1) T1, T2, T2* - (T2* is not exactly a tissue property...)

All three relaxation parameters have a field strength dependence. T2* depends also on the location of the tissue within the magnetic field.

Here we will use the known signal intensity equations for a few common imaging sequences and tissues to examine contrast behavior

Starting with tissues

We use a struct definition for convenience. A tissue is defined as

     Tissue.t1
     Tissue.t2
     Tissue.pd
     Tissue.t2star

Here are nominal values at 3 Tesla

We assume that the magnet is shimmed to within 0.25 ppm giving

    T2prime = 150;    % msec
    R2prime = 1/T2prime;

    Grey.t1 = 1500;  % msec
    Grey.t2 = 75;
    Grey.pd = 0.95;
    GreyR2 = 1/Grey.t2;
    % The observed relaxation rate depends on both T2 and T2prime:
    Grey.t2star = 1/(GreyR2 + R2prime)

    White.t1 = 1400;
    White.t2 = 65;
    White.pd = 0.95;
    WhiteR2 = 1/White.t2;
    White.t2star = 1/(WhiteR2 + R2prime)

    CSF.t1 = 3000;
    CSF.t2 = 180;
    CSF.pd = 1;
    CSFR2 = 1/CSF.t2;
    CSF.t2star = 1/(CSFR2 + R2prime)

    Grey =

            t1: 1500
            t2: 75
            pd: 0.9500
        t2star: 50

    White =

            t1: 1400
            t2: 65
            pd: 0.9500
        t2star: 45.3488

    CSF =

            t1: 3000
            t2: 180
            pd: 1
        t2star: 81.8182

## Signal intensity and contrast vs. sequence parameters in a spin echo sequence

We can make plot of the signals as functions of sequence parameters. It is useful to have a set of starting parameters

    tr = 500;
    te = 20;

    trmax = tr * 3;
    trmin = 0;
    trstep = (trmax-trmin)/499;    % Plot 500 points

    temax = 150;
    temin = 0;
    temax = max(te*3, temax); % we plot long te values in all cases.
    testep = (temax-temin)/499;    % Plot 500 points

    % The SpinEcho function is defined in SpinEcho.m
    GreySE_TR = SpinEcho( Grey, trmin:trstep:trmax, te );   % Signal for a range of tr's
    GreySE_TE = SpinEcho( Grey, tr, temin:testep:temax );   % Signal for a range of te's
    GreyColor = [0.6 0.6 0.6];  % grey

    WhiteSE_TR = SpinEcho( White, trmin:trstep:trmax, te );
    WhiteSE_TE = SpinEcho( White, tr, temin:testep:temax );
    WhiteColor = [0 0 0];   % black

    CSFSE_TR = SpinEcho( CSF, trmin:trstep:trmax, te );
    CSFSE_TE = SpinEcho( CSF, tr, temin:testep:temax );
    CSFColor = [0 0 1]; % blue

    % Plot the tissue signals vs. tr
    figure;
    subplot(2,2,1);
    plot( trmin:trstep:trmax, GreySE_TR, 'Color', GreyColor);
    set(gcf,'Color','White');
    hold;
    plot( trmin:trstep:trmax, WhiteSE_TR, 'Color', WhiteColor);
    plot( trmin:trstep:trmax, CSFSE_TR, 'Color', CSFColor);
    set(gca,'xlim',[trmin trmax]);
    xlabel( 'tr (msec)' );
    YAxisLabel = sprintf('Nominal signal\nte = %d msec',te);
    ylabel(YAxisLabel);
    legend1 = legend('Grey','White','CSF');
    legend(legend1,'boxoff');
    set(legend1,'Location','SouthOutside','Orientation','Horizontal');

    % Plot the grey-white contrast
    subplot(2,2,3);
    plot( trmin:trstep:trmax, 100 * (GreySE_TR - WhiteSE_TR), 'linewidth', 2, 'Color', 'red');
    set(gca,'xlim',[trmin trmax]);
    xlabel( 'tr (msec)' );
    YAxisLabel = sprintf('Grey-White Contrast (%%)\nte = %d msec',te);
    ylabel(YAxisLabel);

    % Plot the tissue signals vs. te
    subplot(2,2,2);
    plot( temin:testep:temax, GreySE_TE, 'Color', GreyColor);
    hold;
    plot( temin:testep:temax, WhiteSE_TE, 'Color', WhiteColor);
    plot( temin:testep:temax, CSFSE_TE, 'Color', CSFColor);
    set(gca,'xlim',[temin temax]);
    xlabel( 'te (msec)' );
    YAxisLabel = sprintf('Nominal signal\ntr = %d msec',tr);
    ylabel(YAxisLabel);

    % Plot the grey-white contrast
    subplot(2,2,4);
    plot( temin:testep:temax, 100 * (GreySE_TE - WhiteSE_TE), 'linewidth', 2, 'Color', 'red');
    set(gca,'xlim',[temin temax]);
    xlabel( 'te (msec)' );
    YAxisLabel = sprintf('Grey-White Contrast (%%)\ntr = %d msec',tr);
    ylabel(YAxisLabel);

    Current plot held
    Current plot held

## Signal intensities for an Inversion Recovery Sequence.

Plot the tissue signals vs. tr, te and ti The IR function is defined in IR.m

    % We start with shorter tr's and te's for IR than for the other
    % sequences

    tr = 3000;
    te = 20;
    ti = 1138;
    Magnitude = false;   % Magnitude images only (not phase sensitive)

    trmax = tr * 3;
    trmin = ti;
    trstep = (trmax-trmin)/499;    % Plot 500 points

    temax = 100;
    temin = 0;
    temax = max(te*3, temax); % we plot long te values in all cases.
    testep = (temax-temin)/499;    % Plot 500 points

    timin = 0;
    timax = max(tr,3*ti);
    tistep = (timax-timin)/499;

    GreyIR_TR = IR( Grey, trmin:trstep:trmax, te, ti, Magnitude );
    GreyIR_TE = IR( Grey, tr, temin:testep:temax, ti, Magnitude );
    GreyIR_ti = IR( Grey, tr, te, timin:tistep:timax, Magnitude );
    GreyColor = [0.6 0.6 0.6];  % grey

    WhiteIR_TR = IR( White, trmin:trstep:trmax, te, ti, Magnitude );
    WhiteIR_TE = IR( White, tr, temin:testep:temax, ti, Magnitude );
    WhiteIR_ti = IR( White, tr, te, timin:tistep:timax, Magnitude );
    WhiteColor = [0 0 0];   % black

    CSFIR_TR = IR( CSF, trmin:trstep:trmax, te, ti, Magnitude );
    CSFIR_TE = IR( CSF, tr, temin:testep:temax, ti, Magnitude );
    CSFIR_ti = IR( CSF, tr, te, timin:tistep:timax, Magnitude );
    CSFColor = [0 0 1]; % blue

    % Plot the tissue signals vs. tr
    figure;
    subplot(2,3,1);
    plot( trmin:trstep:trmax, GreyIR_TR, 'Color', GreyColor);
    set(gcf,'Color','White')
    hold;
    plot( trmin:trstep:trmax, WhiteIR_TR, 'Color', WhiteColor);
    plot( trmin:trstep:trmax, CSFIR_TR, 'Color', CSFColor);
    set(gca,'xlim',[trmin trmax]);
    xlabel( 'tr (msec)' );
    YAxisLabel = sprintf('Nominal signal\nte=%d msec, ti=%d',te,ti);
    ylabel(YAxisLabel);
    legend1 = legend('Grey','White','CSF');
    legend(legend1,'boxoff');
    set(legend1,'Location','SouthOutside','Orientation','Horizontal');

    % Plot the grey-white contrast
    subplot(2,3,4);
    plot( trmin:trstep:trmax, 100 * (GreyIR_TR - WhiteIR_TR), 'linewidth', 2, 'Color', 'red');
    set(gca,'xlim',[trmin trmax]);
    xlabel( 'tr (msec)' );
    YAxisLabel = sprintf('Grey-White Contrast (%%)\nte=%d msec, ti=%d',te,ti);
    ylabel(YAxisLabel);

    % Plot the tissue signals vs. te
    subplot(2,3,2);
    plot( temin:testep:temax, GreyIR_TE, 'Color', GreyColor);
    hold;
    plot( temin:testep:temax, WhiteIR_TE, 'Color', WhiteColor);
    plot( temin:testep:temax, CSFIR_TE, 'Color', CSFColor);
    set(gca,'xlim',[temin temax]);
    xlabel( 'te (msec)' );
    YAxisLabel = sprintf('Nominal signal\ntr=%d msec, ti=%d',tr,ti);
    ylabel(YAxisLabel);

    % Plot the grey-white contrast
    subplot(2,3,5);
    plot( temin:testep:temax, 100 * (GreyIR_TE - WhiteIR_TE), 'linewidth', 2, 'Color', 'red');
    set(gca,'xlim',[temin temax]);
    xlabel( 'te (msec)' );
    YAxisLabel = sprintf('Grey-White Contrast (%%)\ntr=%d msec, ti=%d',tr,ti);
    ylabel(YAxisLabel);

    % Plot the tissue signals vs. ti
    subplot(2,3,3);
    plot( timin:tistep:timax, GreyIR_ti, 'Color', GreyColor);
    hold;
    plot( timin:tistep:timax, WhiteIR_ti, 'Color', WhiteColor);
    plot( timin:tistep:timax, CSFIR_ti, 'Color', CSFColor);
    set(gca,'xlim',[timin timax]);
    xlabel( 'ti (msec)' );
    YAxisLabel = sprintf('Nominal signal\nte=%d msec, tr = %d msec',te,tr);
    ylabel(YAxisLabel);

    % Plot the grey-white contrast
    subplot(2,3,6);
    plot( timin:tistep:timax, 100 * (GreyIR_ti - WhiteIR_ti), 'linewidth', 2, 'Color', 'red');
    set(gca,'xlim',[timin timax]);
    xlabel( 'ti (msec)' );
    YAxisLabel = sprintf('Grey-White Contrast (%%)\nte=%d msec, tr = %d msec',te,tr);
    ylabel(YAxisLabel);

    Current plot held
    Current plot held
    Current plot held

## Signal intensities for a FLASH Sequence

Plot the tissue signals vs. tr, te and flip angle The FLASH function is defined in FLASH.m

    % We start with shorter tr's and te's for FLASH than for the other
    % sequences

    tr = 100;
    te = 5;
    flip = 10;

    trmax = tr * 3;
    trmin = 0;
    trstep = (trmax-trmin)/499;    % Plot 500 points

    temax = 100;
    temin = 0;
    temax = max(te*3, temax); % we plot long te values in all cases.
    testep = (temax-temin)/499;    % Plot 500 points

    flipmin = 0;
    flipmax = 90;   % degrees
    flipstep = (flipmax-flipmin)/499;

    GreyFL_TR = FLASH( Grey, trmin:trstep:trmax, te, flip );
    GreyFL_TE = FLASH( Grey, tr, temin:testep:temax, flip );
    GreyFL_flip = FLASH( Grey, tr,te, flipmin:flipstep:flipmax );
    GreyColor = [0.6 0.6 0.6];  % grey

    WhiteFL_TR = FLASH( White, trmin:trstep:trmax, te, flip );
    WhiteFL_TE = FLASH( White, tr, temin:testep:temax, flip );
    WhiteFL_flip = FLASH( White, tr, temin:testep:temax, flipmin:flipstep:flipmax );
    WhiteColor = [0 0 0];   % black

    CSFFL_TR = FLASH( CSF, trmin:trstep:trmax, te, flip );
    CSFFL_TE = FLASH( CSF, tr, temin:testep:temax, flip );
    CSFFL_flip = FLASH( CSF, tr, te, flipmin:flipstep:flipmax );
    CSFColor = [0 0 1]; % blue

    % Plot the tissue signals vs. tr
    figure;
    subplot(2,3,1);
    plot( trmin:trstep:trmax, GreyFL_TR, 'Color', GreyColor);
    set(gcf,'Color','White')
    hold;
    plot( trmin:trstep:trmax, WhiteFL_TR, 'Color', WhiteColor);
    plot( trmin:trstep:trmax, CSFFL_TR, 'Color', CSFColor);
    set(gca,'xlim',[trmin trmax]);
    xlabel( 'tr (msec)' );
    YAxisLabel = sprintf('Nominal signal\nte=%d msec, flip=%d',te,flip);
    ylabel(YAxisLabel);
    legend1 = legend('Grey','White','CSF');
    legend(legend1,'boxoff');
    set(legend1,'Location','SouthOutside','Orientation','Horizontal');

    % Plot the grey-white contrast
    subplot(2,3,4);
    plot( trmin:trstep:trmax, 100 * (GreyFL_TR - WhiteFL_TR), 'linewidth', 2, 'Color', 'red');
    set(gca,'xlim',[trmin trmax]);
    xlabel( 'tr (msec)' );
    YAxisLabel = sprintf('Grey-White Contrast (%%)\nte=%d msec, flip=%d',te,flip);
    ylabel(YAxisLabel);

    % Plot the tissue signals vs. te
    subplot(2,3,2);
    plot( temin:testep:temax, GreyFL_TE, 'Color', GreyColor);
    hold;
    plot( temin:testep:temax, WhiteFL_TE, 'Color', WhiteColor);
    plot( temin:testep:temax, CSFFL_TE, 'Color', CSFColor);
    set(gca,'xlim',[temin temax]);
    xlabel( 'te (msec)' );
    YAxisLabel = sprintf('Nominal signal\ntr=%d msec, flip=%d',tr,flip);
    ylabel(YAxisLabel);

    % Plot the grey-white contrast
    subplot(2,3,5);
    plot( temin:testep:temax, 100 * (GreyFL_TE - WhiteFL_TE), 'linewidth', 2, 'Color', 'red');
    set(gca,'xlim',[temin temax]);
    xlabel( 'te (msec)' );
    YAxisLabel = sprintf('Grey-White Contrast (%%)\ntr=%d msec, flip=%d',tr,flip);
    ylabel(YAxisLabel);

    % Plot the tissue signals vs. flip
    subplot(2,3,3);
    plot( flipmin:flipstep:flipmax, GreyFL_flip, 'Color', GreyColor);
    hold;
    plot( flipmin:flipstep:flipmax, WhiteFL_flip, 'Color', WhiteColor);
    plot( flipmin:flipstep:flipmax, CSFFL_flip, 'Color', CSFColor);
    set(gca,'xlim',[flipmin flipmax]);
    xlabel( 'flip (degrees)' );
    YAxisLabel = sprintf('Nominal signal\nte=%d msec, tr = %d msec',tr,flip);
    ylabel(YAxisLabel);

    % Plot the grey-white contrast
    subplot(2,3,6);
    plot( flipmin:flipstep:flipmax, 100 * (GreyFL_flip - WhiteFL_flip), 'linewidth', 2, 'Color', 'red');
    set(gca,'xlim',[flipmin flipmax]);
    xlabel( 'flip (degrees)' );
    YAxisLabel = sprintf('Grey-White Contrast (%%)\nte=%d msec, tr = %d msec',te,tr);
    ylabel(YAxisLabel);

    Current plot held
    Current plot held
    Current plot held

## Flip angle, TR, T1

    clear;
    figure;
    T2prime = 150;    % msec
    R2prime = 1/T2prime;
    Grey.t1 = 1500;  % msec
    Grey.t2 = 75;
    Grey.pd = 0.95;
    GreyR2 = 1/Grey.t2;
    % The observed relaxation rate depends on both T2 and T2prime:
    Grey.t2star = 1/(GreyR2 + R2prime);

    flip = [90,45,30,10,5];
    expon = -3:0.05:1;
    TR_T1 = 10.^expon;
    te = 4;

    for angle = 1:5
        MySignal(angle,:) = FLASH( Grey, TR_T1*1000, te, flip(angle) );
    end

    for p = 1:2
        subplot(1,2,p);
        plot(TR_T1,MySignal(1,:), 'linewidth',2);
        set(gcf, 'color','white');
        hold all;
        for s = 2:length(flip)
            plot(TR_T1,MySignal(s,:), 'linewidth',2);
        end
        legend( num2str(flip(:)),'Location','NorthWest' );
        xlabel('TR / t1');
        ylabel('Signal Intensity');
        set(gca,'xlim',[min(TR_T1), max(TR_T1)]);
    end

    set(gca,'xscale','log');