Пример #1
0
    def __init__(self, data, densnet_unet_config, compression_coefficient,
                 growth_rate, sample_no, validation_samples,
                 no_sample_per_each_itr, train_tag, validation_tag, test_tag,
                 img_name, label_name, torso_tag, log_tag, tumor_percent,
                 other_percent, Logs, fold, server_path):
        settings.init()

        # ==================================
        # densenet_unet parameters:
        self.densnet_unet_config = densnet_unet_config
        self.compression_coefficient = compression_coefficient
        self.growth_rate = growth_rate
        # ==================================
        self.train_tag = train_tag
        self.validation_tag = validation_tag
        self.test_tag = test_tag
        self.img_name = img_name
        self.label_name = label_name
        self.torso_tag = torso_tag
        self.data = data
        # ==================================
        self.learning_decay = .95
        self.learning_rate = 1E-5
        self.beta_rate = 0.05

        self.img_padded_size = 519
        self.seg_size = 505

        self.GTV_patchs_size = 49  # 61#33 #            61
        self.patch_window = 63  ##87#79#57#47          73
        self.sample_no = sample_no
        self.batch_no = 7
        self.batch_no_validation = 30
        self.validation_samples = validation_samples
        self.display_step = 100
        self.display_validation_step = 1
        self.total_epochs = 10
        self.loss_instance = _loss_func()
        self.server_path = server_path

        self.dropout_keep = .5
        self.no_sample_per_each_itr = no_sample_per_each_itr
        # self.test_path = '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Data-01/test/'

        self.log_ext = ''.join(map(str, self.densnet_unet_config)) + '_' + str(
            self.compression_coefficient) + '_' + str(
                self.growth_rate) + log_tag
        self.LOGDIR = server_path + Logs + self.log_ext + '/'
        self.train_acc_file = server_path + '/Accuracy/' + self.log_ext + '.txt'
        self.train_acc_file = server_path + '/Accuracy/' + self.log_ext + '.txt'
        self.validation_acc_file = server_path + '/Accuracy/' + self.log_ext + '.txt'
        self.chckpnt_dir = server_path + Logs + self.log_ext + '/densenet_unet_checkpoints/'
        self.out_path = server_path + '/Outputs/' + self.log_ext + '/'
        self.x_hist = 0

        self.tumor_percent = tumor_percent
        self.other_percent = other_percent
        self.fold = fold
    def __init__(self, data, densnet_unet_config, compression_coefficient,
                 growth_rate, sample_no, validation_samples,
                 no_sample_per_each_itr, train_tag, validation_tag, test_tag,
                 img_name, label_name, torso_tag, log_tag, tumor_percent, Logs,
                 fold, server_path):
        settings.init()

        # densenet_unet parameters
        self.densnet_unet_config = densnet_unet_config
        self.compression_coefficient = compression_coefficient
        self.growth_rate = growth_rate

        self.train_tag = train_tag
        self.validation_tag = validation_tag
        self.test_tag = test_tag
        self.img_name = img_name
        self.label_name = label_name
        self.torso_tag = torso_tag
        self.data = data
        self.learning_decay = .95
        self.learning_rate = 1E-5
        self.beta_rate = 0.05

        self.img_padded_size = 519
        self.seg_size = 505

        self.GTV_patchs_size = 49  #output patch
        self.patch_window = 63  #input patch
        self.sample_no = sample_no
        self.batch_no = 7
        self.batch_no_validation = 30
        self.validation_samples = validation_samples
        self.display_step = 100
        self.display_validation_step = 1
        self.total_epochs = 10
        self.loss_instance = _loss_func(
        )  #an instance from the class of loss functions
        self.server_path = server_path

        self.dropout_keep = .5
        self.no_sample_per_each_itr = no_sample_per_each_itr

        self.log_ext = ''.join(map(str, self.densnet_unet_config)) + '_' + str(
            self.compression_coefficient) + '_' + str(
                self.growth_rate) + log_tag
        self.LOGDIR = server_path + Logs + self.log_ext + '/'
        self.train_acc_file = server_path + '/Accuracy/' + self.log_ext + '.txt'
        self.train_acc_file = server_path + '/Accuracy/' + self.log_ext + '.txt'
        self.validation_acc_file = server_path + '/Accuracy/' + self.log_ext + '.txt'
        self.chckpnt_dir = server_path + Logs + self.log_ext + '/densenet_unet_checkpoints/'
        self.out_path = server_path + '/Outputs/' + self.log_ext + '/'
        self.x_hist = 0

        self.tumor_percent = tumor_percent
        self.fold = fold
Пример #3
0
def test_all_nets(fold, out_dir, Log):
    # densnet_unet_config = [3, 4, 4, 4, 3]
    compression_coefficient = .75
    growth_rate = 4
    # pad_size = 14
    # ext = ''.join(map(str, densnet_unet_config))  # +'_'+str(compression_coefficient)+'_'+str(growth_rate)
    data = 2

    # sample_no=2280000
    # validation_samples=5700
    # no_sample_per_each_itr=3420

    # train_tag='train/'
    # validation_tag='validation/'
    # test_tag='test/'
    # img_name='CT_padded.mha'
    # label_name='GTV_CT_padded.mha'
    # torso_tag='CT_padded_Torso.mha'

    train_tag = 'train/'
    validation_tag = 'validation/'
    test_tag = 'Esophagus/'
    # img_name='CTpadded.mha'
    # label_name='GTV_CTpadded.mha'
    # torso_tag='Torsopadded.mha'

    img_name = ''
    label_name = ''
    torso_tag = ''

    _rd = _read_data(data=data,
                     train_tag=train_tag,
                     validation_tag=validation_tag,
                     test_tag=test_tag,
                     img_name=img_name,
                     label_name=label_name)
    test_path = '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Data-01/' + test_tag
    chckpnt_dir = '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log + log_tag + '/densenet_unet_checkpoints/'

    # test_CTs, test_GTVs ,test_Torsos= _rd.read_imape_path(test_path)

    train_CTs, train_GTVs, train_Torso, train_penalize, \
    validation_CTs, validation_GTVs, validation_Torso, validation_penalize, \
    test_CTs, test_GTVs, test_Torso, test_penalize = _rd.read_data_path(fold=fold)

    # test_CTs=train_CTs
    # test_GTVs=train_GTVs
    # test_Torso=train_Torso
    # test_penalize=train_penalize

    # test_CTs=np.sort(test_CTs)
    # test_GTVs=np.sort(test_GTVs)
    # test_Torso=np.sort(test_Torso)
    # test_penalize=np.sort(test_penalize)
    if test_vali == 1:
        test_CTs = np.sort(validation_CTs)
        test_GTVs = np.sort(validation_GTVs)
        test_Torso = np.sort(validation_Torso)
        test_penalize = np.sort(validation_penalize)
    else:
        test_CTs = np.sort(test_CTs)
        test_GTVs = np.sort(test_GTVs)
        test_Torso = np.sort(test_Torso)
        test_penalize = np.sort(test_penalize)

    lf = _loss_func()
    learning_rate = 1E-4
    # image = tf.placeholder(tf.float32, shape=[None, None, None, None, 1])
    # label = tf.placeholder(tf.float32, shape=[None, None, None, None, 2])

    image = tf.placeholder(
        tf.float32, shape=[None, ct_cube_size, ct_cube_size, ct_cube_size, 1])
    label = tf.placeholder(
        tf.float32,
        shape=[None, gtv_cube_size, gtv_cube_size, gtv_cube_size, 2])

    ave_vali_acc = tf.placeholder(tf.float32)
    ave_loss_vali = tf.placeholder(tf.float32)

    dropout = tf.placeholder(tf.float32, name='dropout')
    # dropout2=tf.placeholder(tf.float32,name='dropout2')
    is_training = tf.placeholder(tf.bool, name='is_training')
    is_training_bn = tf.placeholder(tf.bool, name='is_training_bn')
    dense_net_dim = tf.placeholder(tf.int32, name='dense_net_dim')
    pnalize = tf.placeholder(tf.float32, shape=[None, None, None, None, 2])
    loss_coef = tf.placeholder(
        tf.float32, shape=[None,
                           2])  # shape: batchno * 2 values for each class

    _dn = _densenet_unet(densnet_unet_config, compression_coefficient,
                         growth_rate)  # create object
    dn_out = _dn.dens_net(image,
                          is_training,
                          dropout_rate1=0,
                          dropout_rate2=0,
                          dim=ct_cube_size,
                          is_training_bn=is_training_bn)
    y = tf.nn.softmax(dn_out)
    yyy = tf.nn.log_softmax(dn_out)

    # y=_dn.vgg(image)
    loss_instance = _loss_func()

    accuracy = loss_instance.accuracy_fn(y, label)
    [dice, edited_dice] = loss_instance.penalize_dice(logits=y,
                                                      labels=label,
                                                      penalize=pnalize)
    # soft_dice_coef=self.loss_instance.soft_dice(logits=y, labels=label)
    cost = tf.reduce_mean(1.0 - dice[1], name="cost")
    # correct_prediction = tf.equal(tf.argmax(y, 4), tf.argmax(label, 4))
    # accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
    # cost = tf.reduce_mean(lf.tversky(logits=y, labels=label, alpha=0.9, beta=0.1), name="cost")

    # restore the model
    sess = tf.Session()
    saver = tf.train.Saver()

    ckpt = tf.train.get_checkpoint_state(chckpnt_dir)
    saver.restore(sess, ckpt.model_checkpoint_path)
    _meas = _measure()
    out_path = chckpnt_dir + 'output/'
    copyfile(
        './test_densenet_unet.py',
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + 'test_densenet_unet.py')

    jj = []
    dd = []
    dice_boxplot0 = []
    dice_boxplot1 = []
    dice_boxplot = []

    jacc_boxplot = []
    jacc_boxplot0 = []
    jacc_boxplot1 = []

    f1_boxplot0 = []
    f1_boxplot1 = []
    f1_boxplot_av = []

    fpr_av = []
    fnr_av = []
    xtickNames = []
    name_list = []

    fpr0 = []
    fpr1 = []

    fnr0 = []
    fnr1 = []

    sp0 = []
    sp1 = []

    recall0 = []
    recall1 = []
    recall_av = []
    presicion0 = []
    presicion1 = []
    presicion_av = []
    img_class = image_class(test_CTs,
                            test_GTVs,
                            test_Torso,
                            test_penalize,
                            bunch_of_images_no=20,
                            is_training=1,
                            patch_window=ct_cube_size,
                            gtv_patch_window=gtv_cube_size)

    for img_indx in range(1, len(test_CTs)):
        print('img_indx:%s' % (img_indx))
        ss = str(test_CTs[img_indx]).split("/")
        name = ss[8] + '_' + ss[9]
        name = (ss[8] + '_' + ss[9] + '_' +
                ss[10].split('%')[0]).split('_CT')[0]
        [
            CT_image, GTV_image, Torso_image, volume_depth, voxel_size, origin,
            direction
        ] = _rd.read_image_seg_volume(test_CTs, test_GTVs, test_Torso,
                                      img_indx, ct_cube_size, gtv_cube_size)

        _zz_img_gt = []
        for _z in (range(
                int(ct_cube_size / 2) + 1,
                CT_image.shape[0] - int(ct_cube_size / 2) + 7,
                int(ct_cube_size) - int(gap) + 1)):
            _xx_img_gt = []
            for _x in (range(
                    int(ct_cube_size / 2) + 1,
                    CT_image.shape[1] - int(ct_cube_size / 2) + 7,
                    int(ct_cube_size) - int(gap) + 1)):
                _yy_img_gt = []
                for _y in (range(
                        int(ct_cube_size / 2) + 1,
                        CT_image.shape[2] - int(ct_cube_size / 2) + 7,
                        int(ct_cube_size) - int(gap) + 1)):

                    ct = CT_image[_z - int(ct_cube_size / 2) - 1:_z +
                                  int(ct_cube_size / 2),
                                  _x - int(ct_cube_size / 2) - 1:_x +
                                  int(ct_cube_size / 2),
                                  _y - int(ct_cube_size / 2) - 1:_y +
                                  int(ct_cube_size / 2)]
                    ct = ct[np.newaxis][..., np.newaxis]
                    gtv = GTV_image[_z - int(gtv_cube_size / 2) - 1:_z +
                                    int(gtv_cube_size / 2),
                                    _x - int(gtv_cube_size / 2) - 1:_x +
                                    int(gtv_cube_size / 2),
                                    _y - int(gtv_cube_size / 2) - 1:_y +
                                    int(gtv_cube_size / 2)]

                    gtv = np.int32(gtv / np.max(GTV_image))

                    gtv = np.eye(2)[gtv]
                    gtv = gtv[np.newaxis]

                    if len(np.where(gtv[0, :, :, :, 1] != 0)[0]):
                        print('o')

                    [acc_vali, loss_vali, out, dn_out1] = sess.run(
                        [accuracy, cost, y, yyy],
                        feed_dict={
                            image: ct,
                            label: gtv,
                            # pnalize: pnlz,
                            # loss_coef:loss_coef_weights,
                            dropout: 1,
                            is_training: False,
                            ave_vali_acc: -1,
                            ave_loss_vali: -1,
                            dense_net_dim: ct_cube_size,
                            is_training_bn: False,
                        })

                    if len(_yy_img_gt) == 0:
                        _yy_img_gt = np.int32(gtv[0, :, :, :, 1])
                        _yy_img = np.int32(out[0, :, :, :, 1])

                        _yy_img_ct = CT_image[_z - int(gtv_cube_size / 2) -
                                              1:_z + int(gtv_cube_size / 2),
                                              _x - int(gtv_cube_size / 2) -
                                              1:_x + int(gtv_cube_size / 2),
                                              _y - int(gtv_cube_size / 2) -
                                              1:_y + int(gtv_cube_size / 2)]
                    else:
                        _yy_img_gt = np.concatenate(
                            (_yy_img_gt, gtv[0, :, :, :, 1]), axis=2)
                        _yy_img = np.concatenate((_yy_img, out[0, :, :, :, 1]),
                                                 axis=2)

                        _yy_img_ct = np.concatenate(
                            (_yy_img_ct,
                             CT_image[_z - int(gtv_cube_size / 2) - 1:_z +
                                      int(gtv_cube_size / 2),
                                      _x - int(gtv_cube_size / 2) - 1:_x +
                                      int(gtv_cube_size / 2),
                                      _y - int(gtv_cube_size / 2) - 1:_y +
                                      int(gtv_cube_size / 2)]),
                            axis=2)

                if len(_xx_img_gt) == 0:
                    _xx_img_gt = _yy_img_gt
                    _xx_img = _yy_img
                    _xx_img_ct = _yy_img_ct
                else:
                    _xx_img_gt = np.concatenate((_xx_img_gt, _yy_img_gt),
                                                axis=1)
                    _xx_img = np.concatenate((_xx_img, _yy_img), axis=1)
                    _xx_img_ct = np.concatenate((_xx_img_ct, _yy_img_ct),
                                                axis=1)

            if len(_zz_img_gt) == 0:
                _zz_img_gt = _xx_img_gt
                _zz_img = _xx_img
                _zz_img_ct = _xx_img_ct
            else:
                _zz_img_gt = np.concatenate((_zz_img_gt, _xx_img_gt), axis=0)
                _zz_img = np.concatenate((_zz_img, _xx_img), axis=0)
                _zz_img_ct = np.concatenate((_zz_img_ct, _xx_img_ct), axis=0)

        name_list.append(name)

        #
        [TP, TN, FP, FN] = tp_tn_fp_fn(np.round(_zz_img), _zz_img_gt)

        f1 = f1_measure(TP, TN, FP, FN)
        print('%s: f1:%f,f1:%f' % (name, f1[0], f1[1]))
        f1_boxplot0.append(f1[0])
        f1_boxplot1.append(f1[1])
        f1_boxplot_av.append((f1[0] + f1[1]) / 2)

        fpr = FPR(TP, TN, FP, FN)
        fpr0.append(fpr[0])
        fpr1.append(fpr[1])
        fpr_av.append((fpr[0] + fpr[1]) / 2)

        fnr = FNR(TP, TN, FP, FN)
        fnr0.append(fnr[0])
        fnr1.append(fnr[1])
        fnr_av.append((fnr[0] + fnr[1]) / 2)

        precision = Precision(TP, TN, FP, FN)
        presicion0.append(precision[0])
        presicion1.append(precision[1])
        presicion_av.append((precision[0] + precision[1]) / 2)

        recall = Recall(TP, TN, FP, FN)
        recall0.append(recall[0])
        recall1.append(recall[1])
        recall_av.append((recall[0] + recall[1]) / 2)

        _zz_img1 = np.round(_zz_img)
        segmentation = np.asarray(_zz_img1)
        predicted_label = sitk.GetImageFromArray(segmentation.astype(np.uint8))
        predicted_label.SetDirection(direction=direction)
        predicted_label.SetOrigin(origin=origin)
        predicted_label.SetSpacing(spacing=voxel_size)
        sitk.WriteImage(
            predicted_label,
            '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' +
            Log + out_dir + name + '_result.mha')

        segmentation = np.asarray(_zz_img)
        predicted_label = sitk.GetImageFromArray(
            segmentation.astype(np.float32))
        predicted_label.SetDirection(direction=direction)
        predicted_label.SetOrigin(origin=origin)
        predicted_label.SetSpacing(spacing=voxel_size)
        sitk.WriteImage(
            predicted_label,
            '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' +
            Log + out_dir + name + '_fuzzy.mha')

        segmentation = np.asarray(_zz_img_gt)
        predicted_label = sitk.GetImageFromArray(segmentation.astype(np.uint8))
        predicted_label.SetDirection(direction=direction)
        predicted_label.SetOrigin(origin=origin)
        predicted_label.SetSpacing(spacing=voxel_size)
        sitk.WriteImage(
            predicted_label,
            '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' +
            Log + out_dir + name + '_gtv.mha')

        segmentation = np.asarray(_zz_img_ct)
        predicted_label = sitk.GetImageFromArray(segmentation.astype(np.short))
        predicted_label.SetDirection(direction=direction)
        predicted_label.SetOrigin(origin=origin)
        predicted_label.SetSpacing(spacing=voxel_size)
        sitk.WriteImage(
            predicted_label,
            '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' +
            Log + out_dir + name + '_ct.mha')
        # output(filename, sheet, list1, list2, x, y, z)
        # output('/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/'+Log+out_dir +'file.xls','sheet 1',fnr,fpr,'a','b','c')
        print('end')

    f1_bp0 = []
    f1_bp1 = []
    f1_bp_av = []
    f1_bp0.append((f1_boxplot0))
    f1_bp1.append((f1_boxplot1))
    f1_bp_av.append((f1_boxplot_av))
    plt.figure()
    plt.boxplot(f1_bp0, 0, '')
    plt.title('Tumor Dice value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'f1_bp_tumor.png')

    plt.figure()
    plt.boxplot(f1_bp1, 0, '')
    plt.title('Background Dice value for all the images ' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'f1_bp_background.png')

    plt.figure()
    plt.boxplot(f1_bp_av, 0, '')
    plt.title('Average Dice value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'f1_bp_average.png')
    #----------------------
    fpr_bp0 = []
    fpr_bp0.append((fpr0))
    plt.figure()
    plt.boxplot(fpr_bp0, 0, '')
    plt.title('FPR Tumor value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fpr_bp_tumor.png')

    fpr_bp1 = []
    fpr_bp1.append((fpr1))
    plt.figure()
    plt.boxplot(fpr_bp1, 0, '')
    plt.title('FPR Background value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fpr_bp_background.png')

    fpr_bp = []
    fpr_bp.append((fpr_av))
    plt.figure()
    plt.boxplot(fpr_bp, 0, '')
    plt.title('FPR Average value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fpr_bp_average.png')

    #----------------------
    fnr_bp0 = []
    fnr_bp0.append((fnr0))
    plt.figure()
    plt.boxplot(fnr_bp0, 0, '')
    plt.title('FNR Tumor value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fnr_bp_tumor.png')

    fnr_bp1 = []
    fnr_bp1.append((fnr1))
    plt.figure()
    plt.boxplot(fnr_bp1, 0, '')
    plt.title('FNR Background value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fnr_bp_background.png')

    fnr_bp = []
    fnr_bp.append((fnr_av))
    plt.figure()
    plt.boxplot(fnr_bp, 0, '')
    plt.title('FNR Average value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fnr_bp_average.png')
    #----------------------
    pres_bp0 = []
    pres_bp0.append((presicion0))
    plt.figure()
    plt.boxplot(pres_bp0, 0, '')
    plt.title('Precision value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'precision_bp_tumor.png')

    pres_bp1 = []
    pres_bp1.append((presicion1))
    plt.figure()
    plt.boxplot(pres_bp1, 0, '')
    plt.title('Precision Background value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'precision_bp_background.png')

    pres_bp = []
    pres_bp.append((presicion_av))
    plt.figure()
    plt.boxplot(pres_bp, 0, '')
    plt.title('Precision Average value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'precision_bp_average.png')
    #----------------------
    recall_bp0 = []
    recall_bp0.append((recall0))
    plt.figure()
    plt.boxplot(recall_bp0, 0, '')
    plt.title('Recall value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'recall_bp_tumor.png')

    recall_bp1 = []
    recall_bp1.append((recall1))
    plt.figure()
    plt.boxplot(recall_bp1, 0, '')
    plt.title('Recall Background value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'recall_bp_background.png')

    recall_bp = []
    recall_bp.append((recall_av))
    plt.figure()
    plt.boxplot(recall_bp, 0, '')
    plt.title('Recall Average value for all the images' + plot_tag)
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'recall_bp_average.png')
    #----------------------
    plt.figure()
    d_bp = []
    d_bp.append((f1_boxplot0))
    xs = [i for i, _ in enumerate(name_list)]

    plt.bar(xs, f1_boxplot0, align='center')
    plt.xticks(xs, name_list, rotation='vertical')
    plt.margins(.05)
    plt.subplots_adjust(bottom=0.45)
    plt.title('Dice all images' + plot_tag)
    plt.grid()
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'dice_bar.png')

    #----------------------
    plt.figure()

    fnr_bar0 = []
    fnr_bar0.append((fnr0))
    xs = [i for i, _ in enumerate(name_list)]

    plt.bar(xs, fnr0, align='center')
    plt.xticks(xs, name_list, rotation='vertical')
    plt.margins(.05)
    plt.subplots_adjust(bottom=0.25)
    plt.title('FNR Background all images' + plot_tag)
    plt.grid()
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fnr_background_bar.png')

    #----------------------
    plt.figure()

    fnr_bar1 = []
    fnr_bar1.append((fnr1))
    xs = [i for i, _ in enumerate(name_list)]

    plt.bar(xs, fnr1, align='center')
    plt.xticks(xs, name_list, rotation='vertical')
    plt.margins(.05)
    plt.subplots_adjust(bottom=0.25)
    plt.title('FNR Tumor all images' + plot_tag)
    plt.grid()
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fnr_tumor_bar.png')

    #----------------------
    plt.figure()

    fpr_bar0 = []
    fpr_bar0.append((fpr0))
    xs = [i for i, _ in enumerate(name_list)]

    plt.bar(xs, fpr0, align='center')
    plt.xticks(xs, name_list, rotation='vertical')
    plt.margins(.05)
    plt.subplots_adjust(bottom=0.25)
    plt.title('FPR Background all images' + plot_tag)
    plt.grid()
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fpr_background_bar.png')

    #----------------------
    plt.figure()

    fpr_bar1 = []
    fpr_bar1.append((fpr1))
    xs = [i for i, _ in enumerate(name_list)]

    plt.bar(xs, fpr1, align='center')
    plt.xticks(xs, name_list, rotation='vertical')
    plt.margins(.05)
    plt.subplots_adjust(bottom=0.25)
    plt.title('FPR tumor all images' + plot_tag)
    plt.grid()
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'fpr_tumor_bar.png')

    #----------------------
    plt.figure()

    recall_bar0 = []
    recall_bar0.append((recall0))
    xs = [i for i, _ in enumerate(name_list)]

    plt.bar(xs, recall0, align='center')
    plt.xticks(xs, name_list, rotation='vertical')
    plt.margins(.05)
    plt.subplots_adjust(bottom=0.25)
    plt.title('Recall Background all images' + plot_tag)
    plt.grid()
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'recall_background_bar.png')

    #----------------------
    plt.figure()

    recall_bar = []
    recall_bar.append((recall1))
    xs = [i for i, _ in enumerate(name_list)]

    plt.bar(xs, recall1, align='center')
    plt.xticks(xs, name_list, rotation='vertical')
    plt.margins(.05)
    plt.subplots_adjust(bottom=0.25)
    plt.title('Recall tumor all images' + plot_tag)
    plt.grid()
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'recall_tumor_bar.png')

    #----------------------
    plt.figure()

    recall_bar = []
    recall_bar.append((recall1))
    xs = [i for i, _ in enumerate(name_list)]

    plt.bar(xs, recall1, align='center')
    plt.xticks(xs, name_list, rotation='vertical')
    plt.margins(.05)
    plt.subplots_adjust(bottom=0.25)
    plt.title('Recall Average all images' + plot_tag)
    plt.grid()
    plt.savefig(
        '/srv/2-lkeb-17-dl01/syousefi/TestCode/EsophagusProject/Code/' + Log +
        out_dir + name + 'recall_average_bar.png')