Files included:

To reproduce results in Section 6.1:
	1. Wiener_PC_time_vs_FFT_random_networks.py file implements 
	   the TD-WPC, FD-WPC, and Wiener phase for the 25 randomly generated networks.
	2. error_wPC_freq.npy, error_wPH_freq.npy, error_wPC_time.npy, comp_wPC_freq.npy, 
	   comp_wPH_freq.npy, and comp_wPC_time.npy contain numpy arrays with the error and
	   computation times generated using Wiener_PC_time_vs_FFT_random_networks_sparsity_tuned.py.
	3. avg_plot_random_networks.py plots the diagrams in section 6.1
	4. stat_sign_plot.py plots the statistical significance plots in Appendix C.2.

To reproduce results in Section 6.2:
	1. dataGeneration_20Nodes.py and dataGeneration_50Nodes.py generate the datasets titled
	   dataSet_20Nodes.txt and dataSet_50Nodes.txt respectively which are used in the following algorithms.
	2. Wiener_PC_FFT_20_nodes.py implements FD-WPC algorithm on 20 nodes network.
	3. Wiener_Phase_20_nodes.py implements Wiener-phase algorithm on 20 nodes network.
	4. FisherZ_PC_20_nodes.py implements Fisher-Z test based PC algorithm on 20 nodes network.
	5. Granger_Causality_20_Nodes.py implements granger causality on the 20 nodes network.
	6. Timeaware_PC_20_Nodes.py implements the Timeaware PC algorithm on 20 nodes network.
	7. CD-NOD_20_nodes.py implements the CD-NOD algorithm on 20 nodes network.
	8. Wiener_PC_FFT_50_nodes.py implements FD-WPC algorithm on 50 nodes network.
	9. Wiener_Phase_50_nodes.py implements Wiener-phase algorithm on 50 nodes network.

To reproduce results in Section 6.3:
	1. The folder titled "river-runoff" contains the river-runoff dataset downloaded from the CauseMe website.
	2. FisherZ_PC_river_runoff.py implements Fisher-Z test based PC algorithm on river-runoff dataset.
	3. Granger_Causality_river_runoff.py implements Granger causality on river-runoff dataset.
	4. Timeaware_PC_river_runoff.py implements Timeaware PC algorithm on the river-runoff dataset.
	5. Wiener_PC_FFT_river_runoff.py implements the FD-WPC algorithm on the river-runoff dataset.
	6. Wiener_Phase_river_runoff.py implements the Wiener-phase algorithm on the river-runoff dataset.
	7. CD-NOD_river_runoff.py implements the CD-NOD algorithm on the river-runoff dataset.

To reproduce results in Section 6.4:
	1. The files titled "FourNodesBJTHardwareData1M.txt" and "FourNodesMOSFETHardwareData1M.txt" contain the 
           BJT and MOSFET hardware datasets collected from the hardware setup.
	2. FisherZ_PC_4_nodes_BJT_hardware.py and FisherZ_PC_4_nodes_MOSFET_hardware.py implement Fisher-Z test based 
	   PC algorithm on BJT and MOSFET hardware datasets.
	3. Granger_Causality_4_nodes_BJT_hardware.py and Granger_Causality_4_nodes_MOSFET_hardware.py implement Granger
	   causality on BJT and MOSFET hardware datasets.
	4. Timeaware_PC_4_nodes_BJT_hardware.py and Timeaware_PC_4_nodes_MOSFET_hardware.py implement Timeaware PC 
	   algorithm on the BJT and MOSFET hardware datasets.
	5. Wiener_PC_FFT_4_nodes_BJT_hardware.py and Wiener_PC_FFT_4_nodes_MOSFET_hardware.py implement the FD-WPC 
	   algorithm on the BJT and MOSFET hardware datasets.
	6. Wiener_Phase_4_nodes_BJT_hardware.py and Wiener_Phase_4_nodes_MOSFET_hardware.py implement the Wiener-
	   phase algorithm on the BJT and MOSFET hardware datasets.
	7. CD-NOD_4_nodes_BJT_hardware.py and CD-NOD_4_nodes_MOSFET_hardware.py implement the CD-NOD algorithm on the 
	   BJT and MOSFET hardware datasets.

To reproduce results in Appendix C.5:
	1. Wiener_Phase_20_nodes_phase_violation.py generates data for 20 nodes network where the phase alignment assumption
	   is violated, then applies the Wiener-phase algorithm on the data.

To reproduce results in Appendix C.7:
	1. Adj_mat_nonStrict_Causal.npy and dataSet_nonStrict_Causal.txt are the files containing the adjacency matrix and
	   time-series data for a network where strict temporal causality is not satisfied.
	2. Wiener_PC_FFT_nonStrict_Causal.py applies the FD-WPC algorithm to the data in dataSet_nonStrict_Causal.txt.
	3. Wiener_Phase_nonStrict_Causal.py applies the Wiener-phase algorithm to the data in dataSet_nonStrict_Causal.txt.
	4. Granger_Causality_nonStrict_Causal.py applies the Granger Causality to the data in dataSet_nonStrict_Causal.txt.

To reproduce results in Appendix C.8:
	1. Wiwner_PC_FFT_nonLinear.py generates data for a 20 nodes network where the dynamics are nonlinear then implements
	   FD-WPC algorithm on the data.
	2. Wiener_Phase_nonLinear.py generates data for a 20 nodes network where the dynamics are nonlinear then implements
	   Wiener-phase algorithm on the data.
