This function requires a filtered set of connections in the GRN object as generated by filterGRNAndConnectGenes

  model_TF_gene_nodes_separately = FALSE,
  allowLoops = FALSE,
  removeMultiple = FALSE,
  directed = FALSE,
  forceRerun = FALSE



Object of class GRN


TRUE or FALSE. Default FALSE. Should TF and gene nodes be modeled separately? If set to TRUE,this may lead to unwanted effects in case of TF-TF connections (i.e., a TF regulating another TF)


TRUE or FALSE. Default FALSE. Allow loops in the network (i.e., a TF that regulates itself)


TRUE or FALSE. Default FALSE. Remove loops with the same start and end point? This can happen if multiple TF originate from the same gene, for example.


TRUE or FALSE. Default FALSE. Should the network be directed?


TRUE or FALSE. Default FALSE. Force execution, even if the GRN object already contains the result. Overwrites the old results.


An updated GRN object, with the graph(s) being stored in the slot `graph` (i.e., `GRN@graph` for both TF-gene and TF-peak-gene graphs)


# See the Workflow vignette on the GRaNIE website for examples
GRN = loadExampleObject()
#> Downloading GRaNIE example object from
#> Finished successfully. You may explore the example object. Start by typing the object name to the console to see a summaty. Happy GRaNIE'ing!
GRN = build_eGRN_graph(GRN, forceRerun = FALSE)
#> INFO [2024-04-04 17:34:45] Data already exists in object or the specified file already exists. Set forceRerun = TRUE to regenerate and overwrite.
#> INFO [2024-04-04 17:34:45]  Finished successfully. Execution time: 0 secs