# BDe Score for Random Algorithm


# Libraries

library(bnlearn)
library(tidyverse)



# Datasets

D50C9v <- read.delim("Project/Simulated Data/raw data/D50C9v.txt") %>% 
  mutate_all(factor)

D50S9v2 <- read.delim("Project/Simulated Data/raw data/D50S9v2.txt") %>%
  mutate_all(factor)

D1KC9v <- read.delim("Project/Simulated Data/raw data/D1KC9v.txt") %>%
  mutate_all(factor)

D1KS9v2 <- read.delim("Project/Simulated Data/raw data/D1KS9v2.txt") %>%
  mutate_all(factor)



# D50C9v


## Random Algorithm

### k2

learnNet_D50C9v <- empty.graph(names(D50C9v))

modelstring(learnNet_D50C9v) <- "[Anaphylaxis|SaO2][ArtCO2][Catechol|Anaphylaxis:InsuffAnesth][ExpCO2|VentLung][HR|TPR][InsuffAnesth|ArtCO2][SaO2|TPR][TPR|ExpCO2][VentLung|InsuffAnesth]"

score(learnNet_D50C9v, D50C9v, type = "bde")

### k3

learnNet_D50C9v <- empty.graph(names(D50C9v))

modelstring(learnNet_D50C9v) <- "[Anaphylaxis][ArtCO2|Catechol:TPR:SaO2][Catechol|HR:Anaphylaxis:InsuffAnesth][ExpCO2|Catechol:SaO2:InsuffAnesth][HR|ExpCO2:VentLung][InsuffAnesth][SaO2|TPR:ExpCO2:Catechol][TPR][VentLung|InsuffAnesth]"

#***# subseting the network

D50C9vSubset0 <- D50C9v %>% select(Anaphylaxis)

learnSubnet0 <- empty.graph(names(D50C9vSubset0))

modelstring(learnSubnet0) <- "[Anaphylaxis]"

score(learnSubnet0, D50C9vSubset0, type = "bde")


D50C9vSubset1 <- D50C9v %>% select(ArtCO2, Catechol, TPR, SaO2)

learnSubnet1 <- empty.graph(names(D50C9vSubset1))

modelstring(learnSubnet1) <- "[ArtCO2][Catechol][TPR][SaO2][ArtCO2|Catechol:TPR:SaO2]"

score(learnSubnet1, D50C9vSubset1, type = "bde")


D50C9vSubset2 <- D50C9v %>% select(Catechol, HR, Anaphylaxis, InsuffAnesth)

learnSubnet2 <- empty.graph(names(D50C9vSubset2))

modelstring(learnSubnet2) <- "[Catechol][HR][Anaphylaxis][InsuffAnesth][Catechol|HR:Anaphylaxis:InsuffAnesth]"

score(learnSubnet2, D50C9vSubset2, type = "bde")


D50C9vSubset3 <- D50C9v %>% select(ExpCO2, Catechol, SaO2, InsuffAnesth)

learnSubnet3 <- empty.graph(names(D50C9vSubset3))

modelstring(learnSubnet3) <- "[ExpCO2][Catechol][SaO2][InsuffAnesth][ExpCO2|Catechol:SaO2:InsuffAnesth]"

score(learnSubnet3, D50C9vSubset3, type = "bde")


D50C9vSubset4 <- D50C9v %>% select(HR, ExpCO2, VentLung)

learnSubnet4 <- empty.graph(names(D50C9vSubset4))

modelstring(learnSubnet4) <- "[HR][ExpCO2][VentLung][HR|ExpCO2:VentLung]"

score(learnSubnet4, D50C9vSubset4, type = "bde")


D50C9vSubset5 <- D50C9v %>% select(InsuffAnesth)

learnSubnet5 <- empty.graph(names(D50C9vSubset5))

modelstring(learnSubnet5) <- "[InsuffAnesth]"

score(learnSubnet5, D50C9vSubset5, type = "bde")


D50C9vSubset6 <- D50C9v %>% select(SaO2, TPR, ExpCO2, Catechol)

learnSubnet6 <- empty.graph(names(D50C9vSubset6))

modelstring(learnSubnet6) <- "[SaO2][TPR][ExpCO2][Catechol][SaO2|TPR:ExpCO2:Catechol]"

score(learnSubnet6, D50C9vSubset6, type = "bde")


D50C9vSubset7 <- D50C9v %>% select(TPR)

learnSubnet7 <- empty.graph(names(D50C9vSubset7))

modelstring(learnSubnet7) <- "[TPR]"

score(learnSubnet7, D50C9vSubset7, type = "bde")


D50C9vSubset8 <- D50C9v %>% select(VentLung, InsuffAnesth)

learnSubnet8 <- empty.graph(names(D50C9vSubset8))

modelstring(learnSubnet8) <- "[VentLung][InsuffAnesth][VentLung|InsuffAnesth]"

score(learnSubnet8, D50C9vSubset8, type = "bde")


sum(
  score(learnSubnet0, D50C9vSubset0, type = "bde"),
  score(learnSubnet1, D50C9vSubset1, type = "bde"),
  score(learnSubnet2, D50C9vSubset2, type = "bde"),
  score(learnSubnet3, D50C9vSubset3, type = "bde"),
  score(learnSubnet4, D50C9vSubset4, type = "bde"),
  score(learnSubnet5, D50C9vSubset5, type = "bde"),
  score(learnSubnet6, D50C9vSubset6, type = "bde"),
  score(learnSubnet7, D50C9vSubset7, type = "bde"),
  score(learnSubnet8, D50C9vSubset8, type = "bde")
)


### k4

learnNet_D50C9v <- empty.graph(names(D50C9v))

modelstring(learnNet_D50C9v) <- "[Anaphylaxis|Catechol:InsuffAnesth:TPR][ArtCO2][Catechol|VentLung:ExpCO2][ExpCO2|InsuffAnesth:Anaphylaxis][HR|VentLung:ExpCO2:Catechol][InsuffAnesth|TPR][SaO2][TPR][VentLung|ArtCO2:HR]"

#***# subseting the network

D50C9vSubset0 <- D50C9v %>% select(Anaphylaxis, Catechol, InsuffAnesth, TPR)

learnSubnet0 <- empty.graph(names(D50C9vSubset0))

modelstring(learnSubnet0) <- "[Anaphylaxis][Catechol][InsuffAnesth][TPR][Anaphylaxis|Catechol:InsuffAnesth:TPR]"

score(learnSubnet0, D50C9vSubset0, type = "bde")


D50C9vSubset1 <- D50C9v %>% select(ArtCO2)

learnSubnet1 <- empty.graph(names(D50C9vSubset1))

modelstring(learnSubnet1) <- "[ArtCO2]"

score(learnSubnet1, D50C9vSubset1, type = "bde")


D50C9vSubset2 <- D50C9v %>% select(Catechol, VentLung, ExpCO2)

learnSubnet2 <- empty.graph(names(D50C9vSubset2))

modelstring(learnSubnet2) <- "[Catechol][VentLung][ExpCO2][Catechol|VentLung:ExpCO2]"

score(learnSubnet2, D50C9vSubset2, type = "bde")


D50C9vSubset3 <- D50C9v %>% select(ExpCO2, InsuffAnesth, Anaphylaxis)

learnSubnet3 <- empty.graph(names(D50C9vSubset3))

modelstring(learnSubnet3) <- "[ExpCO2][InsuffAnesth][Anaphylaxis][ExpCO2|InsuffAnesth:Anaphylaxis]"

score(learnSubnet3, D50C9vSubset3, type = "bde")


D50C9vSubset4 <- D50C9v %>% select(HR, VentLung, ExpCO2, Catechol)

learnSubnet4 <- empty.graph(names(D50C9vSubset4))

modelstring(learnSubnet4) <- "[HR][VentLung][ExpCO2][Catechol][HR|VentLung:ExpCO2:Catechol]"

score(learnSubnet4, D50C9vSubset4, type = "bde")


D50C9vSubset5 <- D50C9v %>% select(InsuffAnesth, TPR)

learnSubnet5 <- empty.graph(names(D50C9vSubset5))

modelstring(learnSubnet5) <- "[InsuffAnesth][TPR][InsuffAnesth|TPR]"

score(learnSubnet5, D50C9vSubset5, type = "bde")


D50C9vSubset6 <- D50C9v %>% select(SaO2)

learnSubnet6 <- empty.graph(names(D50C9vSubset6))

modelstring(learnSubnet6) <- "[SaO2]"

score(learnSubnet6, D50C9vSubset6, type = "bde")


D50C9vSubset7 <- D50C9v %>% select(TPR)

learnSubnet7 <- empty.graph(names(D50C9vSubset7))

modelstring(learnSubnet7) <- "[TPR]"

score(learnSubnet7, D50C9vSubset7, type = "bde")


D50C9vSubset8 <- D50C9v %>% select(VentLung, ArtCO2, HR)

learnSubnet8 <- empty.graph(names(D50C9vSubset8))

modelstring(learnSubnet8) <- "[VentLung][ArtCO2][HR][VentLung|ArtCO2:HR]"

score(learnSubnet8, D50C9vSubset8, type = "bde")


sum(
  score(learnSubnet0, D50C9vSubset0, type = "bde"),
  score(learnSubnet1, D50C9vSubset1, type = "bde"),
  score(learnSubnet2, D50C9vSubset2, type = "bde"),
  score(learnSubnet3, D50C9vSubset3, type = "bde"),
  score(learnSubnet4, D50C9vSubset4, type = "bde"),
  score(learnSubnet5, D50C9vSubset5, type = "bde"),
  score(learnSubnet6, D50C9vSubset6, type = "bde"),
  score(learnSubnet7, D50C9vSubset7, type = "bde"),
  score(learnSubnet8, D50C9vSubset8, type = "bde")
)


# D1KC9v


## Random Algorithm

### k2

learnNet_D1KC9v <- empty.graph(names(D1KC9v))

modelstring(learnNet_D1KC9v) <- "[Anaphylaxis|ExpCO2][ArtCO2|InsuffAnesth][Catechol|SaO2:Anaphylaxis][ExpCO2|VentLung][HR|SaO2:Anaphylaxis][InsuffAnesth][SaO2][TPR][VentLung|Anaphylaxis]"

#***# subseting the network

D1KC9vSubset0 <- D1KC9v %>% select(Anaphylaxis, ExpCO2)

learnSubnet0 <- empty.graph(names(D1KC9vSubset0))

modelstring(learnSubnet0) <- "[Anaphylaxis][ExpCO2][Anaphylaxis|ExpCO2]"

score(learnSubnet0, D1KC9vSubset0, type = "bde")


D1KC9vSubset1 <- D1KC9v %>% select(ArtCO2, InsuffAnesth)

learnSubnet1 <- empty.graph(names(D1KC9vSubset1))

modelstring(learnSubnet1) <- "[ArtCO2][InsuffAnesth][ArtCO2|InsuffAnesth]"

score(learnSubnet1, D1KC9vSubset1, type = "bde")


D1KC9vSubset2 <- D1KC9v %>% select(Catechol, SaO2, Anaphylaxis)

learnSubnet2 <- empty.graph(names(D1KC9vSubset2))

modelstring(learnSubnet2) <- "[Catechol][SaO2][Anaphylaxis][Catechol|SaO2:Anaphylaxis]"

score(learnSubnet2, D1KC9vSubset2, type = "bde")


D1KC9vSubset3 <- D1KC9v %>% select(ExpCO2, VentLung)

learnSubnet3 <- empty.graph(names(D1KC9vSubset3))

modelstring(learnSubnet3) <- "[ExpCO2][VentLung][ExpCO2|VentLung]"

score(learnSubnet3, D1KC9vSubset3, type = "bde")


D1KC9vSubset4 <- D1KC9v %>% select(HR, SaO2, Anaphylaxis)

learnSubnet4 <- empty.graph(names(D1KC9vSubset4))

modelstring(learnSubnet4) <- "[HR][SaO2][Anaphylaxis][HR|SaO2:Anaphylaxis]"

score(learnSubnet4, D1KC9vSubset4, type = "bde")


D1KC9vSubset5 <- D1KC9v %>% select(InsuffAnesth)

learnSubnet5 <- empty.graph(names(D1KC9vSubset5))

modelstring(learnSubnet5) <- "[InsuffAnesth]"

score(learnSubnet5, D1KC9vSubset5, type = "bde")


D1KC9vSubset6 <- D1KC9v %>% select(SaO2)

learnSubnet6 <- empty.graph(names(D1KC9vSubset6))

modelstring(learnSubnet6) <- "[SaO2]"

score(learnSubnet6, D1KC9vSubset6, type = "bde")


D1KC9vSubset7 <- D1KC9v %>% select(TPR)

learnSubnet7 <- empty.graph(names(D1KC9vSubset7))

modelstring(learnSubnet7) <- "[TPR]"

score(learnSubnet7, D1KC9vSubset7, type = "bde")


D1KC9vSubset8 <- D1KC9v %>% select(VentLung, Anaphylaxis)

learnSubnet8 <- empty.graph(names(D1KC9vSubset8))

modelstring(learnSubnet8) <- "[VentLung][Anaphylaxis][VentLung|Anaphylaxis]"

score(learnSubnet8, D1KC9vSubset8, type = "bde")


sum(
  score(learnSubnet0, D1KC9vSubset0, type = "bde"),
  score(learnSubnet1, D1KC9vSubset1, type = "bde"),
  score(learnSubnet2, D1KC9vSubset2, type = "bde"),
  score(learnSubnet3, D1KC9vSubset3, type = "bde"),
  score(learnSubnet4, D1KC9vSubset4, type = "bde"),
  score(learnSubnet5, D1KC9vSubset5, type = "bde"),
  score(learnSubnet6, D1KC9vSubset6, type = "bde"),
  score(learnSubnet7, D1KC9vSubset7, type = "bde"),
  score(learnSubnet8, D1KC9vSubset8, type = "bde")
)

### k3

learnNet_D1KC9v <- empty.graph(names(D1KC9v))

modelstring(learnNet_D1KC9v) <- "[Anaphylaxis|ExpCO2:HR:TPR][ArtCO2|Catechol:HR][Catechol][ExpCO2|SaO2][HR|Anaphylaxis][InsuffAnesth|Catechol:Anaphylaxis][SaO2|InsuffAnesth][TPR|HR:Anaphylaxis:VentLung][VentLung]"

#***# subseting the network

D1KC9vSubset0 <- D1KC9v %>% select(Anaphylaxis, ExpCO2, HR, TPR)

learnSubnet0 <- empty.graph(names(D1KC9vSubset0))

modelstring(learnSubnet0) <- "[Anaphylaxis][ExpCO2][HR][TPR][Anaphylaxis|ExpCO2:HR:TPR]"

score(learnSubnet0, D1KC9vSubset0, type = "bde")


D1KC9vSubset1 <- D1KC9v %>% select(ArtCO2, Catechol, HR)

learnSubnet1 <- empty.graph(names(D1KC9vSubset1))

modelstring(learnSubnet1) <- "[ArtCO2][Catechol][HR][ArtCO2|Catechol:HR]"

score(learnSubnet1, D1KC9vSubset1, type = "bde")


D1KC9vSubset2 <- D1KC9v %>% select(Catechol)

learnSubnet2 <- empty.graph(names(D1KC9vSubset2))

modelstring(learnSubnet2) <- "[Catechol]"

score(learnSubnet2, D1KC9vSubset2, type = "bde")


D1KC9vSubset3 <- D1KC9v %>% select(ExpCO2, SaO2)

learnSubnet3 <- empty.graph(names(D1KC9vSubset3))

modelstring(learnSubnet3) <- "[ExpCO2][SaO2][ExpCO2|SaO2]"

score(learnSubnet3, D1KC9vSubset3, type = "bde")


D1KC9vSubset4 <- D1KC9v %>% select(HR, Anaphylaxis)

learnSubnet4 <- empty.graph(names(D1KC9vSubset4))

modelstring(learnSubnet4) <- "[HR][Anaphylaxis][HR|Anaphylaxis]"

score(learnSubnet4, D1KC9vSubset4, type = "bde")


D1KC9vSubset5 <- D1KC9v %>% select(InsuffAnesth, Catechol, Anaphylaxis)

learnSubnet5 <- empty.graph(names(D1KC9vSubset5))

modelstring(learnSubnet5) <- "[InsuffAnesth][Catechol][Anaphylaxis][InsuffAnesth|Catechol:Anaphylaxis]"

score(learnSubnet5, D1KC9vSubset5, type = "bde")


D1KC9vSubset6 <- D1KC9v %>% select(SaO2, InsuffAnesth)

learnSubnet6 <- empty.graph(names(D1KC9vSubset6))

modelstring(learnSubnet6) <- "[SaO2][InsuffAnesth][SaO2|InsuffAnesth]"

score(learnSubnet6, D1KC9vSubset6, type = "bde")


D1KC9vSubset7 <- D1KC9v %>% select(TPR, HR, Anaphylaxis, VentLung)

learnSubnet7 <- empty.graph(names(D1KC9vSubset7))

modelstring(learnSubnet7) <- "[TPR][HR][Anaphylaxis][VentLung][TPR|HR:Anaphylaxis:VentLung]"

score(learnSubnet7, D1KC9vSubset7, type = "bde")


D1KC9vSubset8 <- D1KC9v %>% select(VentLung)

learnSubnet8 <- empty.graph(names(D1KC9vSubset8))

modelstring(learnSubnet8) <- "[VentLung]"

score(learnSubnet8, D1KC9vSubset8, type = "bde")


sum(
  score(learnSubnet0, D1KC9vSubset0, type = "bde"),
  score(learnSubnet1, D1KC9vSubset1, type = "bde"),
  score(learnSubnet2, D1KC9vSubset2, type = "bde"),
  score(learnSubnet3, D1KC9vSubset3, type = "bde"),
  score(learnSubnet4, D1KC9vSubset4, type = "bde"),
  score(learnSubnet5, D1KC9vSubset5, type = "bde"),
  score(learnSubnet6, D1KC9vSubset6, type = "bde"),
  score(learnSubnet7, D1KC9vSubset7, type = "bde"),
  score(learnSubnet8, D1KC9vSubset8, type = "bde")
)

### k4

learnNet_D1KC9v <- empty.graph(names(D1KC9v))

modelstring(learnNet_D1KC9v) <- "[Anaphylaxis|ExpCO2:InsuffAnesth:ArtCO2][ArtCO2|TPR:Catechol][Catechol|ExpCO2:ArtCO2][ExpCO2|Catechol][HR][InsuffAnesth|HR][SaO2|ExpCO2:TPR:ArtCO2][TPR|Anaphylaxis:HR:InsuffAnesth][VentLung|Catechol:ExpCO2]"

#***# subseting the network

D1KC9vSubset0 <- D1KC9v %>% select(Anaphylaxis, ExpCO2, InsuffAnesth, ArtCO2)

learnSubnet0 <- empty.graph(names(D1KC9vSubset0))

modelstring(learnSubnet0) <- "[Anaphylaxis][ExpCO2][InsuffAnesth][ArtCO2][Anaphylaxis|ExpCO2:InsuffAnesth:ArtCO2]"

score(learnSubnet0, D1KC9vSubset0, type = "bde")


D1KC9vSubset1 <- D1KC9v %>% select(ArtCO2, TPR, Catechol)

learnSubnet1 <- empty.graph(names(D1KC9vSubset1))

modelstring(learnSubnet1) <- "[ArtCO2][TPR][Catechol][ArtCO2|TPR:Catechol]"

score(learnSubnet1, D1KC9vSubset1, type = "bde")


D1KC9vSubset2 <- D1KC9v %>% select(Catechol, ExpCO2, ArtCO2)

learnSubnet2 <- empty.graph(names(D1KC9vSubset2))

modelstring(learnSubnet2) <- "[Catechol][ExpCO2][ArtCO2][Catechol|ExpCO2:ArtCO2]"

score(learnSubnet2, D1KC9vSubset2, type = "bde")


D1KC9vSubset3 <- D1KC9v %>% select(ExpCO2, Catechol)

learnSubnet3 <- empty.graph(names(D1KC9vSubset3))

modelstring(learnSubnet3) <- "[ExpCO2][Catechol][ExpCO2|Catechol]"

score(learnSubnet3, D1KC9vSubset3, type = "bde")


D1KC9vSubset4 <- D1KC9v %>% select(HR)

learnSubnet4 <- empty.graph(names(D1KC9vSubset4))

modelstring(learnSubnet4) <- "[HR]"

score(learnSubnet4, D1KC9vSubset4, type = "bde")


D1KC9vSubset5 <- D1KC9v %>% select(InsuffAnesth, HR)

learnSubnet5 <- empty.graph(names(D1KC9vSubset5))

modelstring(learnSubnet5) <- "[InsuffAnesth][HR][InsuffAnesth|HR]"

score(learnSubnet5, D1KC9vSubset5, type = "bde")


D1KC9vSubset6 <- D1KC9v %>% select(SaO2, ExpCO2, TPR, ArtCO2)

learnSubnet6 <- empty.graph(names(D1KC9vSubset6))

modelstring(learnSubnet6) <- "[SaO2][ExpCO2][TPR][ArtCO2][SaO2|ExpCO2:TPR:ArtCO2]"

score(learnSubnet6, D1KC9vSubset6, type = "bde")


D1KC9vSubset7 <- D1KC9v %>% select(TPR, Anaphylaxis, HR, InsuffAnesth)

learnSubnet7 <- empty.graph(names(D1KC9vSubset7))

modelstring(learnSubnet7) <- "[TPR][Anaphylaxis][HR][InsuffAnesth][TPR|Anaphylaxis:HR:InsuffAnesth]"

score(learnSubnet7, D1KC9vSubset7, type = "bde")


D1KC9vSubset8 <- D1KC9v %>% select(VentLung, Catechol, ExpCO2)

learnSubnet8 <- empty.graph(names(D1KC9vSubset8))

modelstring(learnSubnet8) <- "[VentLung][Catechol][ExpCO2][VentLung|Catechol:ExpCO2]"

score(learnSubnet8, D1KC9vSubset8, type = "bde")


sum(
  score(learnSubnet0, D1KC9vSubset0, type = "bde"),
  score(learnSubnet1, D1KC9vSubset1, type = "bde"),
  score(learnSubnet2, D1KC9vSubset2, type = "bde"),
  score(learnSubnet3, D1KC9vSubset3, type = "bde"),
  score(learnSubnet4, D1KC9vSubset4, type = "bde"),
  score(learnSubnet5, D1KC9vSubset5, type = "bde"),
  score(learnSubnet6, D1KC9vSubset6, type = "bde"),
  score(learnSubnet7, D1KC9vSubset7, type = "bde"),
  score(learnSubnet8, D1KC9vSubset8, type = "bde")
)


# D50S9v2


## Random Algorithm

### k2

learnNet_D50S9v2 <- empty.graph(names(D50S9v2))

modelstring(learnNet_D50S9v2) <- "[BP|HRBP][Catechol][CO|HRBP:VentAlv][ExpCO2|Intubation:Catechol][HRBP][Intubation|LVFailure][LVFailure|VentTube:CO][VentAlv|LVFailure:BP][VentTube|Intubation:ExpCO2]"

#***# subseting the network

D50S9v2Subset0 <- D50S9v2 %>% select(BP, HRBP)

learnSubnet0 <- empty.graph(names(D50S9v2Subset0))

modelstring(learnSubnet0) <- "[BP][HRBP][BP|HRBP]"

score(learnSubnet0, D50S9v2Subset0, type = "bde")


D50S9v2Subset1 <- D50S9v2 %>% select(Catechol)

learnSubnet1 <- empty.graph(names(D50S9v2Subset1))

modelstring(learnSubnet1) <- "[Catechol]"

score(learnSubnet1, D50S9v2Subset1, type = "bde")


D50S9v2Subset2 <- D50S9v2 %>% select(CO, HRBP, VentAlv)

learnSubnet2 <- empty.graph(names(D50S9v2Subset2))

modelstring(learnSubnet2) <- "[CO][HRBP][VentAlv][CO|HRBP:VentAlv]"

score(learnSubnet2, D50S9v2Subset2, type = "bde")


D50S9v2Subset3 <- D50S9v2 %>% select(ExpCO2, Intubation, Catechol)

learnSubnet3 <- empty.graph(names(D50S9v2Subset3))

modelstring(learnSubnet3) <- "[ExpCO2][Intubation][Catechol][ExpCO2|Intubation:Catechol]"

score(learnSubnet3, D50S9v2Subset3, type = "bde")


D50S9v2Subset4 <- D50S9v2 %>% select(HRBP)

learnSubnet4 <- empty.graph(names(D50S9v2Subset4))

modelstring(learnSubnet4) <- "[HRBP]"

score(learnSubnet4, D50S9v2Subset4, type = "bde")


D50S9v2Subset5 <- D50S9v2 %>% select(Intubation, LVFailure)

learnSubnet5 <- empty.graph(names(D50S9v2Subset5))

modelstring(learnSubnet5) <- "[Intubation][LVFailure][Intubation|LVFailure]"

score(learnSubnet5, D50S9v2Subset5, type = "bde")


D50S9v2Subset6 <- D50S9v2 %>% select(LVFailure, VentTube, CO)

learnSubnet6 <- empty.graph(names(D50S9v2Subset6))

modelstring(learnSubnet6) <- "[LVFailure][VentTube][CO][LVFailure|VentTube:CO]"

score(learnSubnet6, D50S9v2Subset6, type = "bde")


D50S9v2Subset7 <- D50S9v2 %>% select(VentAlv, LVFailure, BP)

learnSubnet7 <- empty.graph(names(D50S9v2Subset7))

modelstring(learnSubnet7) <- "[VentAlv][LVFailure][BP][VentAlv|LVFailure:BP]"

score(learnSubnet7, D50S9v2Subset7, type = "bde")


D50S9v2Subset8 <- D50S9v2 %>% select(VentTube, Intubation, ExpCO2)

learnSubnet8 <- empty.graph(names(D50S9v2Subset8))

modelstring(learnSubnet8) <- "[VentTube][Intubation][ExpCO2][VentTube|Intubation:ExpCO2]"

score(learnSubnet8, D50S9v2Subset8, type = "bde")


sum(
  score(learnSubnet0, D50S9v2Subset0, type = "bde"),
  score(learnSubnet1, D50S9v2Subset1, type = "bde"),
  score(learnSubnet2, D50S9v2Subset2, type = "bde"),
  score(learnSubnet3, D50S9v2Subset3, type = "bde"),
  score(learnSubnet4, D50S9v2Subset4, type = "bde"),
  score(learnSubnet5, D50S9v2Subset5, type = "bde"),
  score(learnSubnet6, D50S9v2Subset6, type = "bde"),
  score(learnSubnet7, D50S9v2Subset7, type = "bde"),
  score(learnSubnet8, D50S9v2Subset8, type = "bde")
)

### k3

learnNet_D50S9v2 <- empty.graph(names(D50S9v2))

modelstring(learnNet_D50S9v2) <- "[BP|HRBP:Catechol][Catechol|LVFailure][CO|LVFailure][ExpCO2][HRBP][Intubation|HRBP:BP:Catechol][LVFailure|Intubation][VentAlv|Catechol][VentTube]"

#***# subseting the network

D50S9v2Subset0 <- D50S9v2 %>% select(BP, HRBP, Catechol)

learnSubnet0 <- empty.graph(names(D50S9v2Subset0))

modelstring(learnSubnet0) <- "[BP][HRBP][Catechol][BP|HRBP:Catechol]"

score(learnSubnet0, D50S9v2Subset0, type = "bde")


D50S9v2Subset1 <- D50S9v2 %>% select(Catechol, LVFailure)

learnSubnet1 <- empty.graph(names(D50S9v2Subset1))

modelstring(learnSubnet1) <- "[Catechol][LVFailure][Catechol|LVFailure]"

score(learnSubnet1, D50S9v2Subset1, type = "bde")


D50S9v2Subset2 <- D50S9v2 %>% select(CO, LVFailure)

learnSubnet2 <- empty.graph(names(D50S9v2Subset2))

modelstring(learnSubnet2) <- "[CO][LVFailure][CO|LVFailure]"

score(learnSubnet2, D50S9v2Subset2, type = "bde")


D50S9v2Subset3 <- D50S9v2 %>% select(ExpCO2)

learnSubnet3 <- empty.graph(names(D50S9v2Subset3))

modelstring(learnSubnet3) <- "[ExpCO2]"

score(learnSubnet3, D50S9v2Subset3, type = "bde")


D50S9v2Subset4 <- D50S9v2 %>% select(HRBP)

learnSubnet4 <- empty.graph(names(D50S9v2Subset4))

modelstring(learnSubnet4) <- "[HRBP]"

score(learnSubnet4, D50S9v2Subset4, type = "bde")


D50S9v2Subset5 <- D50S9v2 %>% select(Intubation, HRBP, BP, Catechol)

learnSubnet5 <- empty.graph(names(D50S9v2Subset5))

modelstring(learnSubnet5) <- "[Intubation][HRBP][BP][Catechol][Intubation|HRBP:BP:Catechol]"

score(learnSubnet5, D50S9v2Subset5, type = "bde")


D50S9v2Subset6 <- D50S9v2 %>% select(LVFailure, Intubation)

learnSubnet6 <- empty.graph(names(D50S9v2Subset6))

modelstring(learnSubnet6) <- "[LVFailure][Intubation][LVFailure|Intubation]"

score(learnSubnet6, D50S9v2Subset6, type = "bde")


D50S9v2Subset7 <- D50S9v2 %>% select(VentAlv, Catechol)

learnSubnet7 <- empty.graph(names(D50S9v2Subset7))

modelstring(learnSubnet7) <- "[VentAlv][Catechol][VentAlv|Catechol]"

score(learnSubnet7, D50S9v2Subset7, type = "bde")


D50S9v2Subset8 <- D50S9v2 %>% select(VentTube)

learnSubnet8 <- empty.graph(names(D50S9v2Subset8))

modelstring(learnSubnet8) <- "[VentTube]"

score(learnSubnet8, D50S9v2Subset8, type = "bde")


sum(
  score(learnSubnet0, D50S9v2Subset0, type = "bde"),
  score(learnSubnet1, D50S9v2Subset1, type = "bde"),
  score(learnSubnet2, D50S9v2Subset2, type = "bde"),
  score(learnSubnet3, D50S9v2Subset3, type = "bde"),
  score(learnSubnet4, D50S9v2Subset4, type = "bde"),
  score(learnSubnet5, D50S9v2Subset5, type = "bde"),
  score(learnSubnet6, D50S9v2Subset6, type = "bde"),
  score(learnSubnet7, D50S9v2Subset7, type = "bde"),
  score(learnSubnet8, D50S9v2Subset8, type = "bde")
)

### k4

learnNet_D50S9v2 <- empty.graph(names(D50S9v2))

modelstring(learnNet_D50S9v2) <- "[BP|LVFailure][Catechol][CO][ExpCO2|BP:VentTube][HRBP|ExpCO2:Intubation:BP][Intubation|VentAlv:LVFailure][LVFailure|Intubation:Catechol:VentTube:CO][VentAlv|LVFailure][VentTube|VentAlv:LVFailure]"

#***# subseting the network

D50S9v2Subset0 <- D50S9v2 %>% select(BP, LVFailure)

learnSubnet0 <- empty.graph(names(D50S9v2Subset0))

modelstring(learnSubnet0) <- "[BP][LVFailure][BP|LVFailure]"

score(learnSubnet0, D50S9v2Subset0, type = "bde")


D50S9v2Subset1 <- D50S9v2 %>% select(Catechol)

learnSubnet1 <- empty.graph(names(D50S9v2Subset1))

modelstring(learnSubnet1) <- "[Catechol]"

score(learnSubnet1, D50S9v2Subset1, type = "bde")


D50S9v2Subset2 <- D50S9v2 %>% select(CO)

learnSubnet2 <- empty.graph(names(D50S9v2Subset2))

modelstring(learnSubnet2) <- "[CO]"

score(learnSubnet2, D50S9v2Subset2, type = "bde")


D50S9v2Subset3 <- D50S9v2 %>% select(ExpCO2, BP, VentTube)

learnSubnet3 <- empty.graph(names(D50S9v2Subset3))

modelstring(learnSubnet3) <- "[ExpCO2][BP][VentTube][ExpCO2|BP:VentTube]"

score(learnSubnet3, D50S9v2Subset3, type = "bde")


D50S9v2Subset4 <- D50S9v2 %>% select(HRBP, ExpCO2, Intubation, BP)

learnSubnet4 <- empty.graph(names(D50S9v2Subset4))

modelstring(learnSubnet4) <- "[HRBP][ExpCO2][Intubation][BP][HRBP|ExpCO2:Intubation:BP]"

score(learnSubnet4, D50S9v2Subset4, type = "bde")


D50S9v2Subset5 <- D50S9v2 %>% select(Intubation, VentAlv, LVFailure)

learnSubnet5 <- empty.graph(names(D50S9v2Subset5))

modelstring(learnSubnet5) <- "[Intubation][VentAlv][LVFailure][Intubation|VentAlv:LVFailure]"

score(learnSubnet5, D50S9v2Subset5, type = "bde")


D50S9v2Subset6 <- D50S9v2 %>% 
  select(LVFailure, Intubation, Catechol, VentTube, CO)

learnSubnet6 <- empty.graph(names(D50S9v2Subset6))

modelstring(learnSubnet6) <- "[LVFailure][Intubation][Catechol][VentTube][CO][LVFailure|Intubation:Catechol:VentTube:CO]"

score(learnSubnet6, D50S9v2Subset6, type = "bde")


D50S9v2Subset7 <- D50S9v2 %>% select(VentAlv, LVFailure)

learnSubnet7 <- empty.graph(names(D50S9v2Subset7))

modelstring(learnSubnet7) <- "[VentAlv][LVFailure][VentAlv|LVFailure]"

score(learnSubnet7, D50S9v2Subset7, type = "bde")


D50S9v2Subset8 <- D50S9v2 %>% select(VentTube, VentAlv, LVFailure)

learnSubnet8 <- empty.graph(names(D50S9v2Subset8))

modelstring(learnSubnet8) <- "[VentTube][VentAlv][LVFailure][VentTube|VentAlv:LVFailure]"

score(learnSubnet8, D50S9v2Subset8, type = "bde")


sum(
  score(learnSubnet0, D50S9v2Subset0, type = "bde"),
  score(learnSubnet1, D50S9v2Subset1, type = "bde"),
  score(learnSubnet2, D50S9v2Subset2, type = "bde"),
  score(learnSubnet3, D50S9v2Subset3, type = "bde"),
  score(learnSubnet4, D50S9v2Subset4, type = "bde"),
  score(learnSubnet5, D50S9v2Subset5, type = "bde"),
  score(learnSubnet6, D50S9v2Subset6, type = "bde"),
  score(learnSubnet7, D50S9v2Subset7, type = "bde"),
  score(learnSubnet8, D50S9v2Subset8, type = "bde")
)


# D1KS9v2


## Random Algorithm

### k2

learnNet_D1KS9v2 <- empty.graph(names(D1KS9v2))

modelstring(learnNet_D1KS9v2) <- "[BP|ExpCO2:CO][Catechol|LVFailure:ExpCO2][CO][ExpCO2|LVFailure:BP][HRBP|VentAlv][Intubation|VentTube][LVFailure][VentAlv][VentTube|CO:Catechol]"

#***# subseting the network

D1KS9v2Subset0 <- D1KS9v2 %>% select(BP, ExpCO2, CO)

learnSubnet0 <- empty.graph(names(D1KS9v2Subset0))

modelstring(learnSubnet0) <- "[BP][ExpCO2][CO][BP|ExpCO2:CO]"

score(learnSubnet0, D1KS9v2Subset0, type = "bde")


D1KS9v2Subset1 <- D1KS9v2 %>% select(Catechol, LVFailure, ExpCO2)

learnSubnet1 <- empty.graph(names(D1KS9v2Subset1))

modelstring(learnSubnet1) <- "[Catechol][LVFailure][ExpCO2][Catechol|LVFailure:ExpCO2]"

score(learnSubnet1, D1KS9v2Subset1, type = "bde")


D1KS9v2Subset2 <- D1KS9v2 %>% select(CO)

learnSubnet2 <- empty.graph(names(D1KS9v2Subset2))

modelstring(learnSubnet2) <- "[CO]"

score(learnSubnet2, D1KS9v2Subset2, type = "bde")


D1KS9v2Subset3 <- D1KS9v2 %>% select(ExpCO2, LVFailure, BP)

learnSubnet3 <- empty.graph(names(D1KS9v2Subset3))

modelstring(learnSubnet3) <- "[ExpCO2][LVFailure][BP][ExpCO2|LVFailure:BP]"

score(learnSubnet3, D1KS9v2Subset3, type = "bde")


D1KS9v2Subset4 <- D1KS9v2 %>% select(HRBP, VentAlv)

learnSubnet4 <- empty.graph(names(D1KS9v2Subset4))

modelstring(learnSubnet4) <- "[HRBP][VentAlv][HRBP|VentAlv]"

score(learnSubnet4, D1KS9v2Subset4, type = "bde")


D1KS9v2Subset5 <- D1KS9v2 %>% select(Intubation, VentTube)

learnSubnet5 <- empty.graph(names(D1KS9v2Subset5))

modelstring(learnSubnet5) <- "[Intubation][VentTube][Intubation|VentTube]"

score(learnSubnet5, D1KS9v2Subset5, type = "bde")


D1KS9v2Subset6 <- D1KS9v2 %>% select(LVFailure)

learnSubnet6 <- empty.graph(names(D1KS9v2Subset6))

modelstring(learnSubnet6) <- "[LVFailure]"

score(learnSubnet6, D1KS9v2Subset6, type = "bde")


D1KS9v2Subset7 <- D1KS9v2 %>% select(VentAlv)

learnSubnet7 <- empty.graph(names(D1KS9v2Subset7))

modelstring(learnSubnet7) <- "[VentAlv]"

score(learnSubnet7, D1KS9v2Subset7, type = "bde")


D1KS9v2Subset8 <- D1KS9v2 %>% select(VentTube, CO, Catechol)

learnSubnet8 <- empty.graph(names(D1KS9v2Subset8))

modelstring(learnSubnet8) <- "[VentTube][CO][Catechol][VentTube|CO:Catechol]"

score(learnSubnet8, D1KS9v2Subset8, type = "bde")


log(
  sum(
    exp(score(learnSubnet0, D1KS9v2Subset0, type = "bde")),
    exp(score(learnSubnet1, D1KS9v2Subset1, type = "bde")),
    exp(score(learnSubnet2, D1KS9v2Subset2, type = "bde")),
    exp(score(learnSubnet3, D1KS9v2Subset3, type = "bde")),
    exp(score(learnSubnet4, D1KS9v2Subset4, type = "bde")),
    exp(score(learnSubnet5, D1KS9v2Subset5, type = "bde")),
    exp(score(learnSubnet6, D1KS9v2Subset6, type = "bde")),
    exp(score(learnSubnet7, D1KS9v2Subset7, type = "bde")),
    exp(score(learnSubnet8, D1KS9v2Subset8, type = "bde"))
  )
)


### k3

learnNet_D1KS9v2 <- empty.graph(names(D1KS9v2))

modelstring(learnNet_D1KS9v2) <- "[BP|CO:LVFailure:VentAlv][Catechol|LVFailure:VentTube][CO|VentAlv:VentTube][ExpCO2][HRBP|LVFailure][Intubation|ExpCO2:CO][LVFailure|VentAlv:BP][VentAlv|ExpCO2:CO][VentTube|CO:Catechol:Intubation]"

#***# subseting the network

D1KS9v2Subset0 <- D1KS9v2 %>% select(BP, CO, LVFailure, VentAlv)

learnSubnet0 <- empty.graph(names(D1KS9v2Subset0))

modelstring(learnSubnet0) <- "[BP][CO][LVFailure][VentAlv][BP|CO:LVFailure:VentAlv]"

score(learnSubnet0, D1KS9v2Subset0, type = "bde")


D1KS9v2Subset1 <- D1KS9v2 %>% select(Catechol, LVFailure, VentTube)

learnSubnet1 <- empty.graph(names(D1KS9v2Subset1))

modelstring(learnSubnet1) <- "[Catechol][LVFailure][VentTube][Catechol|LVFailure:VentTube]"

score(learnSubnet1, D1KS9v2Subset1, type = "bde")


D1KS9v2Subset2 <- D1KS9v2 %>% select(CO, VentAlv, VentTube)

learnSubnet2 <- empty.graph(names(D1KS9v2Subset2))

modelstring(learnSubnet2) <- "[CO][VentAlv][VentTube][CO|VentAlv:VentTube]"

score(learnSubnet2, D1KS9v2Subset2, type = "bde")


D1KS9v2Subset3 <- D1KS9v2 %>% select(ExpCO2)

learnSubnet3 <- empty.graph(names(D1KS9v2Subset3))

modelstring(learnSubnet3) <- "[ExpCO2]"

score(learnSubnet3, D1KS9v2Subset3, type = "bde")


D1KS9v2Subset4 <- D1KS9v2 %>% select(HRBP, LVFailure)

learnSubnet4 <- empty.graph(names(D1KS9v2Subset4))

modelstring(learnSubnet4) <- "[HRBP][LVFailure][HRBP|LVFailure]"

score(learnSubnet4, D1KS9v2Subset4, type = "bde")


D1KS9v2Subset5 <- D1KS9v2 %>% select(Intubation, ExpCO2, CO)

learnSubnet5 <- empty.graph(names(D1KS9v2Subset5))

modelstring(learnSubnet5) <- "[Intubation][ExpCO2][CO][Intubation|ExpCO2:CO]"

score(learnSubnet5, D1KS9v2Subset5, type = "bde")


D1KS9v2Subset6 <- D1KS9v2 %>% select(LVFailure, VentAlv, BP)

learnSubnet6 <- empty.graph(names(D1KS9v2Subset6))

modelstring(learnSubnet6) <- "[LVFailure][VentAlv][BP][LVFailure|VentAlv:BP]"

score(learnSubnet6, D1KS9v2Subset6, type = "bde")


D1KS9v2Subset7 <- D1KS9v2 %>% select(VentAlv, ExpCO2, CO)

learnSubnet7 <- empty.graph(names(D1KS9v2Subset7))

modelstring(learnSubnet7) <- "[VentAlv][ExpCO2][CO][VentAlv|ExpCO2:CO]"

score(learnSubnet7, D1KS9v2Subset7, type = "bde")


D1KS9v2Subset8 <- D1KS9v2 %>% select(VentTube, CO, Catechol, Intubation)

learnSubnet8 <- empty.graph(names(D1KS9v2Subset8))

modelstring(learnSubnet8) <- "[VentTube][CO][Catechol][Intubation][VentTube|CO:Catechol:Intubation]"

score(learnSubnet8, D1KS9v2Subset8, type = "bde")


log(
  sum(
    exp(score(learnSubnet0, D1KS9v2Subset0, type = "bde")),
    exp(score(learnSubnet1, D1KS9v2Subset1, type = "bde")),
    exp(score(learnSubnet2, D1KS9v2Subset2, type = "bde")),
    exp(score(learnSubnet3, D1KS9v2Subset3, type = "bde")),
    exp(score(learnSubnet4, D1KS9v2Subset4, type = "bde")),
    exp(score(learnSubnet5, D1KS9v2Subset5, type = "bde")),
    exp(score(learnSubnet6, D1KS9v2Subset6, type = "bde")),
    exp(score(learnSubnet7, D1KS9v2Subset7, type = "bde")),
    exp(score(learnSubnet8, D1KS9v2Subset8, type = "bde"))
  )
)


### k4

learnNet_D1KS9v2 <- empty.graph(names(D1KS9v2))

modelstring(learnNet_D1KS9v2) <- "[BP|ExpCO2:VentTube:Catechol][Catechol|Intubation:BP][CO][ExpCO2|HRBP:Intubation:CO][HRBP|Intubation][Intubation|ExpCO2:HRBP:BP:VentAlv][LVFailure|Catechol:Intubation:HRBP:CO][VentAlv|LVFailure][VentTube|VentAlv]"

#***# subseting the network

D1KS9v2Subset0 <- D1KS9v2 %>% select(BP, ExpCO2, VentTube, Catechol)

learnSubnet0 <- empty.graph(names(D1KS9v2Subset0))

modelstring(learnSubnet0) <- "[BP][ExpCO2][VentTube][Catechol][BP|ExpCO2:VentTube:Catechol]"

score(learnSubnet0, D1KS9v2Subset0, type = "bde")


D1KS9v2Subset1 <- D1KS9v2 %>% select(Catechol, Intubation, BP)

learnSubnet1 <- empty.graph(names(D1KS9v2Subset1))

modelstring(learnSubnet1) <- "[Catechol][Intubation][BP][Catechol|Intubation:BP]"

score(learnSubnet1, D1KS9v2Subset1, type = "bde")


D1KS9v2Subset2 <- D1KS9v2 %>% select(CO)

learnSubnet2 <- empty.graph(names(D1KS9v2Subset2))

modelstring(learnSubnet2) <- "[CO]"

score(learnSubnet2, D1KS9v2Subset2, type = "bde")


D1KS9v2Subset3 <- D1KS9v2 %>% select(ExpCO2, HRBP, Intubation, CO)

learnSubnet3 <- empty.graph(names(D1KS9v2Subset3))

modelstring(learnSubnet3) <- "[ExpCO2][HRBP][Intubation][CO][ExpCO2|HRBP:Intubation:CO]"

score(learnSubnet3, D1KS9v2Subset3, type = "bde")


D1KS9v2Subset4 <- D1KS9v2 %>% select(HRBP, Intubation)

learnSubnet4 <- empty.graph(names(D1KS9v2Subset4))

modelstring(learnSubnet4) <- "[HRBP][Intubation][HRBP|Intubation]"

score(learnSubnet4, D1KS9v2Subset4, type = "bde")


D1KS9v2Subset5 <- D1KS9v2 %>% select(Intubation, ExpCO2, HRBP, BP, VentAlv)

learnSubnet5 <- empty.graph(names(D1KS9v2Subset5))

modelstring(learnSubnet5) <- "[Intubation][ExpCO2][HRBP][BP][VentAlv][Intubation|ExpCO2:HRBP:BP:VentAlv]"

score(learnSubnet5, D1KS9v2Subset5, type = "bde")


D1KS9v2Subset6 <- D1KS9v2 %>% select(LVFailure, Catechol, Intubation, HRBP, CO)

learnSubnet6 <- empty.graph(names(D1KS9v2Subset6))

modelstring(learnSubnet6) <- "[LVFailure][Catechol][Intubation][HRBP][CO][LVFailure|Catechol:Intubation:HRBP:CO]"

score(learnSubnet6, D1KS9v2Subset6, type = "bde")


D1KS9v2Subset7 <- D1KS9v2 %>% select(VentAlv, LVFailure)

learnSubnet7 <- empty.graph(names(D1KS9v2Subset7))

modelstring(learnSubnet7) <- "[VentAlv][LVFailure][VentAlv|LVFailure]"

score(learnSubnet7, D1KS9v2Subset7, type = "bde")


D1KS9v2Subset8 <- D1KS9v2 %>% select(VentTube, VentAlv)

learnSubnet8 <- empty.graph(names(D1KS9v2Subset8))

modelstring(learnSubnet8) <- "[VentTube][VentAlv][VentTube|VentAlv]"

score(learnSubnet8, D1KS9v2Subset8, type = "bde")


log(
  sum(
    exp(score(learnSubnet0, D1KS9v2Subset0, type = "bde")),
    exp(score(learnSubnet1, D1KS9v2Subset1, type = "bde")),
    exp(score(learnSubnet2, D1KS9v2Subset2, type = "bde")),
    exp(score(learnSubnet3, D1KS9v2Subset3, type = "bde")),
    exp(score(learnSubnet4, D1KS9v2Subset4, type = "bde")),
    exp(score(learnSubnet5, D1KS9v2Subset5, type = "bde")),
    exp(score(learnSubnet6, D1KS9v2Subset6, type = "bde")),
    exp(score(learnSubnet7, D1KS9v2Subset7, type = "bde")),
    exp(score(learnSubnet8, D1KS9v2Subset8, type = "bde"))
  )
)

