diff --git a/R/Evaluation_func.R b/R/Evaluation_func.R
index d4b42b2bb8eda93f2963315001680d090bc5c3af..01dd47a553bd17a192307229006e8dba656c9eb9 100644
--- a/R/Evaluation_func.R
+++ b/R/Evaluation_func.R
@@ -45,9 +45,9 @@
 #'
 #' @return List of 7 elements needed to plot the final regulatory network
 #' @export
-trace_plots <- function(mcmc_res, burn_in, thin, figures_dir, gene_annot, PK,
+trace_plots <- function(mcmc_res, burn_in, thin, figures_dir, gene_annot, PK=NULL,
 OMICS_mod_res, edge_weights = "MCMC_freq", edge_freq_thres = NULL, gene_ID,
-TFtargs)
+TFtargs = NULL)
 {
     if(!(edge_weights %in% c("MCMC_freq","empB")))
     {
@@ -117,8 +117,12 @@ TFtargs)
         y = strength_threshold+0.015, col="#E69F00")
     grDevices::dev.off()
   
-    PK <- PK[PK$src_entrez %in% unlist(lapply(OMICS_mod_res$omics,colnames)),]
-    PK <- PK[PK$dest_entrez %in% unlist(lapply(OMICS_mod_res$omics,colnames)),]
+    if(!is.null(PK))
+    {
+        PK <- PK[PK$src_entrez %in% unlist(lapply(OMICS_mod_res$omics,colnames)),]
+        PK <- PK[PK$dest_entrez %in% unlist(lapply(OMICS_mod_res$omics,colnames)),]
+    }
+
   
     if(gene_ID=="entrezID")
     {
@@ -233,8 +237,8 @@ normalise <- function (x, from = range(x), to = c(0, 1)) {
 #'
 #' @return List of 6 elements needed to plot the final regulatory network edges
 #' @export
-edge_types <- function(mcmc_res, PK, gene_annot, edge_list, node_list,
-OMICS_mod_res, edge_weights, TFtargs)
+edge_types <- function(mcmc_res, PK = NULL, gene_annot, edge_list, node_list,
+OMICS_mod_res, edge_weights, TFtargs = NULL)
 {
     omics <- OMICS_mod_res$omics
     layers_def <- OMICS_mod_res$layers_def
@@ -242,35 +246,52 @@ OMICS_mod_res, edge_weights, TFtargs)
   
     if(any(regexpr("ENTREZID:",node_list)>0))
     {
-        PK <- paste(PK$src_entrez, PK$dest_entrez, sep="_")
-    
+        if(!is.null(PK))
+        {
+            PK <- paste(PK$src_entrez, PK$dest_entrez, sep="_")
+        } # end if(!is.null(PK))
+        
         if(edge_weights=="empB")
         {
             edge_list[,"edge_type"] <- "empirical"
-            TF_pk <- as.matrix(TFtargs[intersect(edge_list[,"to"],
-            rownames(TFtargs)), intersect(edge_list[,"from"],
-            colnames(TFtargs))])
-            colnames(TF_pk) <- intersect(edge_list[,"from"], colnames(TFtargs))
-            if(ncol(TF_pk)>=1)
+            
+            if(!is.null(TFtargs))
             {
-                TF_pk <- paste(colnames(TF_pk)[which(TF_pk==1, 
-                arr.ind = TRUE)[,2]], rownames(TF_pk)[which(TF_pk==1, 
-                arr.ind = TRUE)[,1]], sep="_")
-                edge_list[match(intersect(edge_list[,"edge"],TF_pk),
-                edge_list[,"edge"]),"edge_type"] <- "TF"
-            } # end if(ncol(TF_pk)>=1)
-            edge_list[match(intersect(edge_list[,"edge"],PK),
-            edge_list[,"edge"]), "edge_type"] <- "PK"
+                TF_pk <- as.matrix(TFtargs[intersect(edge_list[,"to"],
+                rownames(TFtargs)), intersect(edge_list[,"from"],
+                colnames(TFtargs))])
+                colnames(TF_pk) <- intersect(edge_list[,"from"], 
+                colnames(TFtargs))
+                if(ncol(TF_pk)>=1)
+                {
+                    TF_pk <- paste(colnames(TF_pk)[which(TF_pk==1, 
+                    arr.ind = TRUE)[,2]], rownames(TF_pk)[which(TF_pk==1, 
+                    arr.ind = TRUE)[,1]], sep="_")
+                    edge_list[match(intersect(edge_list[,"edge"],TF_pk),
+                    edge_list[,"edge"]),"edge_type"] <- "TF"
+                } # end if(ncol(TF_pk)>=1)
+            } # end if(!is.null(TFtargs))
+            
+            if(!is.null(PK))
+            {
+                edge_list[match(intersect(edge_list[,"edge"],PK),
+                edge_list[,"edge"]), "edge_type"] <- "PK"
+            } # end if(!is.null(PK))
+            
             edge_list[,"weight"] <-
             round(as.numeric(unlist(lapply(seq_along(edge_list[,2]), 1, 
                 FUN=function(row)
                 mcmc_res$B_prior_mat_weighted[edge_list[row,"from"], 
                 edge_list[row,"to"]]))), 2)
         } else {
-        edge_list[match(setdiff(edge_list[,"edge"],PK),
-            edge_list[,"edge"]),"edge_type"] <- "new"
-        edge_list[match(intersect(edge_list[,"edge"],PK),edge_list[,"edge"]),
-            "edge_type"] <- "PK"
+            if(!is.null(PK))
+            {
+                edge_list[match(setdiff(edge_list[,"edge"],PK),
+                edge_list[,"edge"]),"edge_type"] <- "new"
+                edge_list[match(intersect(edge_list[,"edge"],PK),
+                edge_list[,"edge"]), "edge_type"] <- "PK"
+            } # end if(!is.null(PK))
+        
         } # end if else (edge_weights=="empB")
     
         ge_cols <- RColorBrewer::brewer.pal(9, "Blues")
@@ -444,16 +465,19 @@ OMICS_mod_res, edge_weights, TFtargs)
         } # end if(any(mapply(omics,FUN=function(list)...
     
     } else {
-    
-        PK_src_dest <-
-        as.character(gene_annot$gene_symbol[match(
-        PK$src_entrez,gene_annot$entrezID)])
-        PK_src_dest[regexpr("entrezid",PK_src_dest)>0] <- tolower(
-        as.character(gene_annot$gene_symbol[match(toupper(PK_src_dest[
-        regexpr("entrezid",PK_src_dest)>0]), gene_annot$entrezID)]))
-        PK_src_dest[is.na(PK_src_dest)] <- PK$src_entrez[is.na(PK_src_dest)]
-        PK <- paste(PK_src_dest, as.character(gene_annot$gene_symbol[
-            match(PK$dest_entrez,gene_annot$entrezID)]), sep="_")
+        if(!is.null(PK))
+        {
+            PK_src_dest <- as.character(gene_annot$gene_symbol[match(
+            PK$src_entrez,gene_annot$entrezID)])
+            PK_src_dest[regexpr("entrezid",PK_src_dest)>0] <- tolower(
+            as.character(gene_annot$gene_symbol[match(toupper(PK_src_dest[
+            regexpr("entrezid",PK_src_dest)>0]), gene_annot$entrezID)]))
+            PK_src_dest[is.na(PK_src_dest)] <- 
+            PK$src_entrez[is.na(PK_src_dest)]
+            PK <- paste(PK_src_dest, as.character(gene_annot$gene_symbol[
+                match(PK$dest_entrez,gene_annot$entrezID)]), sep="_")
+        } # end if(!is.null(PK))
+        
         if(edge_weights=="empB")
         {
             edge_list[,"edge_type"] <- "empirical"
@@ -461,41 +485,52 @@ OMICS_mod_res, edge_weights, TFtargs)
                 gene_annot$gene_symbol)]
             TFs_eid <- gene_annot$entrezID[match(edge_list[,"from"],
                 gene_annot$gene_symbol, nomatch = 0)]
-            TF_pk <- as.matrix(TFtargs[intersect(targs_eid, rownames(TFtargs)),
-                intersect(TFs_eid, colnames(TFtargs))])
-            colnames(TF_pk) <- intersect(TFs_eid, colnames(TFtargs))
-            if(ncol(TF_pk)>=1)
+            if(!is.null(TFtargs))
             {
-                TF_pk <- paste(gene_annot$gene_symbol[match(colnames(TF_pk)
-                    [which(TF_pk==1, arr.ind = TRUE)[,2]],
-                    gene_annot$entrezID)], gene_annot$gene_symbol[match(
-                    rownames(TF_pk)[which(TF_pk==1, arr.ind = TRUE)[,1]],
-                    gene_annot$entrezID)], sep="_")
-                edge_list[match(intersect(edge_list[,"edge"],TF_pk),
-                edge_list[,"edge"]),"edge_type"] <- "TF"
-            } # end if(ncol(TF_pk)>=1)
-      
-           edge_list[match(intersect(edge_list[,"edge"],PK),
-           edge_list[,"edge"]), "edge_type"] <- "PK"
-           rownames(mcmc_res$B_prior_mat_weighted)[!is.na(match(rownames(
-           mcmc_res$B_prior_mat_weighted), gene_annot$entrezID))] <-
-           gene_annot$gene_symbol[match(rownames(
-           mcmc_res$B_prior_mat_weighted), gene_annot$entrezID, nomatch = 0)]
-           rownames(mcmc_res$B_prior_mat_weighted)[!is.na(match(toupper(
-           rownames(mcmc_res$B_prior_mat_weighted)), gene_annot$entrezID))] <-
-           tolower(gene_annot$gene_symbol[match(toupper(rownames(
-           mcmc_res$B_prior_mat_weighted)), gene_annot$entrezID, nomatch = 0)])
-           colnames(mcmc_res$B_prior_mat_weighted) <-
-           rownames(mcmc_res$B_prior_mat_weighted)
-           edge_list[,"weight"] <-
-           round(as.numeric(unlist(lapply(seq_along(edge_list[,2]),
-               FUN=function(row) mcmc_res$B_prior_mat_weighted[
-               edge_list[row,"from"],edge_list[row,"to"]]))),2)
+                TF_pk <- as.matrix(TFtargs[intersect(targs_eid, rownames(TFtargs)),
+                    intersect(TFs_eid, colnames(TFtargs))])
+                colnames(TF_pk) <- intersect(TFs_eid, colnames(TFtargs))
+                if(ncol(TF_pk)>=1)
+                {
+                    TF_pk <- paste(gene_annot$gene_symbol[match(colnames(TF_pk)
+                        [which(TF_pk==1, arr.ind = TRUE)[,2]],
+                        gene_annot$entrezID)], gene_annot$gene_symbol[match(
+                        rownames(TF_pk)[which(TF_pk==1, arr.ind = TRUE)[,1]],
+                        gene_annot$entrezID)], sep="_")
+                    edge_list[match(intersect(edge_list[,"edge"],TF_pk),
+                    edge_list[,"edge"]),"edge_type"] <- "TF"
+                } # end if(ncol(TF_pk)>=1)
+            } # end if(!is.null(TFtargs))
+            
+          
+            if(!is.null(PK))
+            {
+                edge_list[match(intersect(edge_list[,"edge"],PK),
+                edge_list[,"edge"]), "edge_type"] <- "PK"
+            } # end if(!is.null(PK))
+            
+            rownames(mcmc_res$B_prior_mat_weighted)[!is.na(match(rownames(
+            mcmc_res$B_prior_mat_weighted), gene_annot$entrezID))] <-
+            gene_annot$gene_symbol[match(rownames(
+            mcmc_res$B_prior_mat_weighted), gene_annot$entrezID, nomatch = 0)]
+            rownames(mcmc_res$B_prior_mat_weighted)[!is.na(match(toupper(
+            rownames(mcmc_res$B_prior_mat_weighted)), gene_annot$entrezID))] <-
+            tolower(gene_annot$gene_symbol[match(toupper(rownames(
+            mcmc_res$B_prior_mat_weighted)), gene_annot$entrezID, nomatch = 0)])
+            colnames(mcmc_res$B_prior_mat_weighted) <-
+            rownames(mcmc_res$B_prior_mat_weighted)
+            edge_list[,"weight"] <-
+            round(as.numeric(unlist(lapply(seq_along(edge_list[,2]),
+                FUN=function(row) mcmc_res$B_prior_mat_weighted[
+                edge_list[row,"from"],edge_list[row,"to"]]))),2)
         } else {
-            edge_list[match(setdiff(edge_list[,"edge"],PK),
-            edge_list[,"edge"]),"edge_type"] <- "new"
-            edge_list[match(intersect(edge_list[,"edge"],PK),
-            edge_list[,"edge"]), "edge_type"] <- "PK"
+            if(!is.null(PK))
+            {
+                edge_list[match(setdiff(edge_list[,"edge"],PK),
+                edge_list[,"edge"]),"edge_type"] <- "new"
+                edge_list[match(intersect(edge_list[,"edge"],PK),
+                edge_list[,"edge"]), "edge_type"] <- "PK"
+            } # end if(!is.null(PK))
         } # end if else (edge_weights=="empB")
     
         ge_cols <- RColorBrewer::brewer.pal(9, "Blues")