This file will provide an overview of the BNW code. It is not completely up to date. The information should be correct, but some files might be missing. At this point, BNW requires three packages that are not currently included in the BNW directory. These are dot/graphviz; octave; and plotly. The BNW code assumes: a) dot can be executed using /usr/bin/dot b) octave can be executed using /usr/bin/octave c) plotly: Plotly runs through a python environment for BNW. The python version is 3.6.8 and the plotly version is 4.13.0. The python environment files are in bnw-env. The files that need plotly are: cv_plotly.py, kfold_plotly.py, ts_plotly.py, violin_plotly.py, violin_ev_plotly.py, and violin_int_plotly.py. BNW is currently located at /var/www/html/compbio/BNW_x.x (The current development version is BNW_1.3). The main BNW directory contains two basic files (index.html and home.php) and two directories. A couple of lines in home.php should be modified/updated to point to the correct BNW directory. downloads: This contains the downloadable version of the BNW structure learning package. sourcecodes: This contains the files and codes that are used by the webserver. The main purpose of this file is to provide a brief overview of the files that are contained in 'sourcecodes'. bnw-env: The python environment for BNW. 1. Directories within sourcecodes: a) bnt-master: This contains the code for BayesNetToolbox which is used in parameter learning in BNW. It has been slightly modified to work with Octave instead of MATLAB. I have also made a couple of changes to ensure that initial parameters are taken directly from the data for discrete nodes. b) parameter_learning: This contains the MATLAB/Octave code that we have written for parameter_learning. It also prepares data that has been uploaded to BNW for use with the structure learning code. c) BNW_workflow_test_files, example_datasets, and examples: These three directories contain files that are used by the tutorials and examples on the BNW homepage. d) data: The data for files generated by using BNW is written to this directory. It also contains several sub-directories that contain example data and networks. e) run_scripts: Scripts that run Octave calculations. f) scripts: Javascript libraries and associated files. 2. Files within sourcecodes: a) Major BNW php files: Many of these will be described in BNW_data_flow.txt. bn_file_load_gom.php: Used in uploading data to be used for structure learning. create_tiers_gom_part1.php and create_tiers_gom_part2.php: Structural constraint interface. home_upload.php: Used in uploading a data file and a structure file when the structure is known. layout_example.php: Main php file for displaying/making predictions with network using example data. layout.php: Main php file for displaying/making predictions with network using user uploaded data. net_structure.php: Used in uploading structure file when the network structure is known. layout_svg_wt.php: Initial display of network structure with edge weights. layout_svg_no.php: Initial display of network structure without edge weights. layout_cyto.php: Network visualization that can be used to modify the network structure. upload_structure_file.php: Used in uploading structure file when the network structure is known. faq.php getting_started.php help.php home.php workflow.php b) Files related to the structure learning package: build.sh network_score structure run.sh c) Files related to home page, help files, example data sets, and tutorials: BNW_overview_new.png BNW_workflow_net1.htm BNW_workflow_sci.htm index.html example.php examplefilecopy.sh d) General html/css/inc files: header_batchsearch.inc header_new.inc js-graph-it.css js-graph-it.js my_new_style.css sf-homepage.css graph-creator.css graph-creator.js e) PHP files that support layout.php: add_evd.php add_inv.php network_layout_evd_2.php network_layout_evd.php network_layout_inv_2.php network_layout_inv.php f) Files used for cross-validation/making predictions using a test set: cv_predictions.php, cv_predictions_example.php -Cross-validations overview page cross_valid.php, cross_valid_example.php, cv_plotly.py -Used for leave-one-out cross-validation kfold_cv_example.php, kfold_cv.php, kfold_plotly.py -Used for k-fold cross-validation test_set_predictions.php, test_set_predictions_example.php, ts_plotly.py -Used with test set predictions. g) Files used in input checking/error processing input_error.php input_error_no_menu.php input_validate.php keyval_error.php h) Files that perform specific functions: tier_description_processing_gom.php -Used by create_tiers_gom.php for the structure constraint interface. clear_example.php, clear.php, filecopy.sh, examplefilecopy.sh -Used by layout.php to clear entered evidence/intervention execute_bn_gom.php -Runs the script (run.sh) that performs structure learning after uploading data/adding constraints -It is actually called by executionprogress.php executionprogress.php, runtime_check.php, k_only_table.txt, and maxparent_table.txt -Used to provide an estimate of how long structure learning will take. graphviz_structure.php -Called by net_structure.php and used to generate files when users upload data with a known structure. mat_structure.php -Called by add_inv.php and add_inv_example.php when making predictions after an intervention. -Interventions can change the network structure and this file help account for these changes. matrix.php -Allows for display of the structure matrix file. input_check.php -Allows for display of the input file and variable description files. parameter_display.php -Allows for display of the network parameters of the original data set and after entering evidence/intervention. enter_netID.php -Allows for returning to old network after entering the netID. modify_structure_learning.php, bn_after_upload_gom.php -Allows for modification of structure learning settings without having to upload the file again. modified_network.php -Allows for the direct modification of network structure using the Cytoscape layout. remove_variables.php, remove_variables_processing.php, remove_variables_processing_default.php -Allows for the removal of variables after uploading an input file. -remove_variables_processing_default.php performs structure learning using defail settings. -remove_variables_processing.php goes to the structural constraint interface.