function ppi_wrapper(basedir,regionnumber,groupnumber,firstlevel)

addpath('/Volumes/Promise_Pegasus/Active_Studies/K99/MRI_Data/PPI');

%User input required (directories and subjects)
Group={'Controls'};

%User input required (region files)
regionfile={['/Volumes/Promise_Pegasus/Active_Studies/K99/MRI_Data/Second_Levels/MASKS/rMRS_ROI_1.nii']};

%User input required (region names)
region={'rMRS_ROI_1'};

%User input required (master template)
load('ppi_master_template.mat')

P.VOI=regionfile{regionnumber};
P.Region=region{regionnumber};


%User input required (change directory to where the input structure should
%be saved)
save([basedir '/PPI/ppi.PE_EV_TL2/' region{regionnumber} '.mat'],'P');

    for j=1:1
        disp(Group{j})
        
        if j == 1 
            Subjects = {'04'};%, '07', '08', '11', '12', '13', '16', '18', '19', '21', '22', ...
                        %'24', '25', '26', '27', '28', '30', '31', '32', '34', '35', '37', '38', '40'};
        elseif j == 2
        end
        disp(['Processing Group ' num2str(j)]);

        
        %for i=firstsubject:lastsubject;
        for i=1:length(Subjects)
            disp(['Subject ' num2str(i)])
            
            for k=1:regionnumber
                
%                 try
                    %Where the first-level directory is
                    Directory=[basedir '/0' Subjects{i} '/nifti/' firstlevel];
                    cd(Directory)

                    %Load in template
                    load([basedir '/PPI/ppi.PE_EV_TL2/' region{regionnumber} '.mat']);

                    %customize for this subject
                    P.subject = Subjects{i};
                    P.directory = Directory;
                    P.VOI = regionfile{k};
                    P.CompContrasts = 1;
                    P.method='cond';
                    P.extract='mean';
                    P.analysis='psy';
                    P.equalroi = 0;
                    P.FLmask = 1;
                    P.contrast = 0;
                    P.Weights = [];
%                     P.Tasks = {'0' 'WinEV - Session 1' 'WinEV - Session 2' 'WinEV - All Sessions' 'LossEV - Session 1' ...
%                         'LossEV - Session 2' 'LossEV - All Sessions' 'WinEV_PrePost' 'LossEV_PrePost' }
%                     P.Contrasts(1).name={'Win Sess1 > Base'}; 
%                     P.Contrasts(1).left={'WinEV - Session 1'};
%                     P.Contrasts(1).right={'None'};
%                     P.Tasks = {'0' 'Fdbk_Wins' 'Fdbk_WinsxFdbk_Win_PE^1' 'Fdbk_Losses' 'Fdbk_LossesxFdbk_Loss_PE^1' ...
%                         'Win_Cue_r1' 'Win_CuexWin_Chosen_Qval^1' 'Loss_Cue' 'Loss_CuexLoss_Chosen_Qval^1' 'Neu_Cue' 'Neu_Fdbk'}
%                     P.Tasks = {'0' 'Fdbk_Wins' 'Fdbk_Losses' 'Win_Cue' 'Loss_Cue' 'Neu_Cue' }
%                     P.Tasks = {'0' 'C>NC - All Sessions'}
%                     P.Tasks = {'0' 'WinEV - Session 1' 'WinEV - Session 2' }
%                     P.Tasks = {'0' 'Win_Cue_r1' 'Win_Cue_r2' }
%                     P.Tasks = {'0' 'Fdbk_Win_PE' 'Fdbk_Loss_PE' 'Win_Chosen_Qval' 'Loss_Chosen_Qval' }

%     P.Tasks = {'0' 'Fdbk_Wins_r1' 'Fdbk_WinsxFdbk_Win_PE^1_r1' 'Fdbk_Losses_r1' 'Fdbk_LossesxFdbk_Loss_PE^1_r1' 'Win_Cue_r1' ... 
%             'Win_CuexWin_Chosen_Qval^1_r1' 'Loss_Cue_r1' 'Loss_CuexLoss_Chosen_Qval^1_r1' 'Neu_Cue_r1' 'Neu_Fdbk_r1' ... 
%             'Fdbk_Wins_r2' 'Fdbk_WinsxFdbk_Win_PE^1_r2' 'Fdbk_Losses_r2' 'Fdbk_LossesxFdbk_Loss_PE^1_r2' 'Win_Cue_r2' ... 
%             'Win_CuexWin_Chosen_Qval^1_r2' 'Loss_Cue_r2' 'Loss_CuexLoss_Chosen_Qval^1_r2' 'Neu_Cue_r2' 'Neu_Fdbk_r2'};
%     P.Tasks = {'0' 'Fdbk_Wins_r1' 'Fdbk_WinsxFdbk_Win_PE^1_r1' 'Fdbk_Losses_r1' 'Fdbk_LossesxFdbk_Loss_PE^1_r1' 'Win_Cue_r1' ... 
%             'Win_CuexWin_Chosen_Qval^1_r1' 'Loss_Cue_r1' 'Loss_CuexLoss_Chosen_Qval^1_r1' 'Neu_Cue_r1' 'Neu_Fdbk_r1' ... 
%             'Fdbk_Wins_r2' 'Fdbk_WinsxFdbk_Win_PE^1_r2' 'Fdbk_Losses_r2' 'Fdbk_LossesxFdbk_Loss_PE^1_r2' 'Win_Cue_r2' ... 
%             'Win_CuexWin_Chosen_Qval^1_r2' 'Loss_Cue_r2' 'Loss_CuexLoss_Chosen_Qval^1_r2' 'Neu_Cue_r2' 'Neu_Fdbk_r2'};
%     P.Tasks = {'0' 'Fdbk_Wins' 'Fdbk_WinsxFdbk_Win_PE^1' 'Fdbk_Losses' 'Fdbk_LossesxFdbk_Loss_PE^1' 'Win_Cue' ... 
%             'Win_CuexWin_Chosen_Qval^1' 'Loss_Cue' 'Loss_CuexLoss_Chosen_Qval^1' 'Neu_Cue' 'Neu_Fdbk'};
    P.Tasks = {'1' 'Fdbk_Wins' 'Fdbk_Losses'  'Win_Cue' ... 
           'Loss_Cue' 'Neu_Cue' 'Neu_Fdbk'};
     %P.Contrasts  
       
                    P.Contrasts(1).name={'Test'}; 
                    P.Contrasts(1).left={'Win_Cue'};
                    P.Contrasts(1).right={'Loss_Cue'};
                    %P.Contrasts(1).Contrail={''};
                    P.Contrasts.Weighted = []; 
                    

                    %save and run
                    disp(['Saving ' [Subjects{i} '_analysis_' region{regionnumber} '.mat']])
                    cd(Directory)
                    save([Subjects{i} '_analysis_' region{regionnumber} '.mat'],'P');
                    [Subjects{i} '_analysis_' region{regionnumber} '.mat']
                    PPPI([Subjects{i} '_analysis_' region{regionnumber} '.mat']);
                    
%                 catch
%                    disp(['Failed: ' Subjects{i}])
%                 end
                
            end     %region
        end         %subject
    end             %group
end                 %function

