  Finding a globally optimal Bayesian Network using exhaustive search is a
problem with super-exponential complexity, which severely restricts the number
of variables that it can work for. We implement a dynamic programming based
algorithm with built-in dimensionality reduction and parent set identification.
This reduces the search space drastically and can be applied to
large-dimensional data. We use what we call generational orderings based search
for optimal networks, which is a novel way to efficiently search the space of
possible networks given the possible parent sets. The algorithm supports both
continuous and categorical data, and categorical as well as survival outcomes.
We demonstrate the efficacy of our algorithm on both synthetic and real data.
In simulations, our algorithm performs better than three state-of-art
algorithms that are currently used extensively. We then apply it to an Ovarian
Cancer gene expression dataset with 513 genes and a survival outcome. Our
algorithm is able to find an optimal network describing the disease pathway
consisting of 6 genes leading to the outcome node in a few minutes on a basic
computer. Our generational orderings based search for optimal networks, is both
efficient and highly scalable approach to finding optimal Bayesian Networks,
that can be applied to 1000s of variables. Using specifiable parameters -
correlation, FDR cutoffs, and in-degree - one can increase or decrease the
number of nodes and density of the networks. Availability of two scoring
option-BIC and Bge-and implementation of survival outcomes and mixed data types
makes our algorithm very suitable for many types of high dimensional biomedical
data to find disease pathways.
