function [result_MMOC] =  run_MMOC(X,Label,train_sq,test_sq,address)

prob.num_label = size(Label,2);
prob.Dim = size(X,2);%size(X,2)
for i=1:5
nRun = 1;
prob.X = X(train_sq{i},:);
prob.y = Label(train_sq{i},:);
prob.X_te = X(test_sq{i},:);
prob.y_te = Label(test_sq{i},:);
nTrain = size(prob.X,1);
prob.num_inst_te = size(prob.X_te,1);
indicies{1,1} = randperm(nTrain);
% [w_f, alpha,out_obj] = BCD_prox_gradient_sq_hinge(train_features, prob, model, 0);
tsY_hat = IOCoding_MultiLabel_TrainTest_OC_Greedy(prob.X,  prob.y, prob.X_te, prob.y_te, nTrain, nRun, indicies, 'PASCAL07', 10^(-6), 0.1);
[HammingLoss, Macro_F1, Micro_F1, Macro_Precision, Micro_Precision,  Macro_Recall, Micro_Recall, F_all, Precision_all, Recall_all] = compute_measures(tsY_hat, prob.y_te);
   result_MMOC.HammingLoss(i) = HammingLoss
    result_MMOC.Macro_F1(i) = Macro_F1;
    result_MMOC.Micro_F1(i) = Micro_F1;
    result_MMOC.Precision_all(i) = Precision_all;
    result_MMOC.Recall_all(i) = Recall_all;
    save(address,'result_MMOC');
end
result_MMOC.mean_HammingLoss = mean(result_MMOC.HammingLoss);
result_MMOC.mean_Macro_F1 = mean(result_MMOC.Macro_F1);
result_MMOC.mean_Micro_F1 = mean(result_MMOC.Micro_F1);
result_MMOC.mean_Precision_all = mean(result_MMOC.Precision_all);
result_MMOC.mean_Recall_all = mean(result_MMOC.Recall_all);

result_MMOC.std_HammingLoss = std(result_MMOC.HammingLoss);
result_MMOC.std_Macro_F1 = std(result_MMOC.Macro_F1);
result_MMOC.std_Micro_F1 = std(result_MMOC.Micro_F1);
result_MMOC.std_Precision_all = std(result_MMOC.Precision_all);
result_MMOC.std_Recall_all = std(result_MMOC.Recall_all);
save(address,'result_MMOC');