Problem
In main, 4 figures and .json/.csv are generated below:
fig1=nmf.component_plot(df_components, args1.xrd, args1.x_units, args1.show)
fig2=nmf.component_ratio_plot(df_component_weight_timeseries, args1.show)
fig3=nmf.reconstruction_error_plot(df_reconstruction_error, args1.show)
ifargs1.pca_thresh:
fig4=nmf.explained_variance_plot(df_explained_var_ratio, args1.show)
ifargs1.save_files:
ifnotos.path.exists(os.path.join(os.getcwd(), "nmf_result")):
os.mkdir(os.path.join(os.getcwd(), "nmf_result"))
output_fn=datetime.fromtimestamp(time.time()).strftime("%Y%m%d%H%M%S%f")
df_components.to_json(os.path.join(os.getcwd(), "nmf_result", "x_index_vs_y_col_components.json"))
df_component_weight_timeseries.to_json(
os.path.join(os.getcwd(), "nmf_result", "component_index_vs_pratio_col.json")
)
df_component_weight_timeseries.to_csv(
os.path.join(os.getcwd(), "nmf_result", output_fn+"component_row_pratio_col.txt"),
header=None,
index=False,
sep=" ",
mode="a",
)
df_reconstruction_error.to_json(
os.path.join(os.getcwd(), "nmf_result", "component_index_vs_RE_value.json")
)
plot_file1=os.path.join(os.getcwd(), "nmf_result", output_fn+"comp_plot.png")
plot_file2=os.path.join(os.getcwd(), "nmf_result", output_fn+"ratio_plot.png")
plot_file3=os.path.join(os.getcwd(), "nmf_result", output_fn+"loss_plot.png")
ifargs1.pca_thresh:
plot_file7=os.path.join(os.getcwd(), "nmf_result", output_fn+"pca_var_plot.png")
plot_file4=os.path.splitext(plot_file1)[0] +".pdf"plot_file5=os.path.splitext(plot_file2)[0] +".pdf"plot_file6=os.path.splitext(plot_file3)[0] +".pdf"ifargs1.pca_thresh:
plot_file8=os.path.splitext(plot_file7)[0] +".pdf"txt_file=os.path.join(os.getcwd(), "nmf_result", output_fn+"_meta"+".txt")
withopen(txt_file, "w+") asfi:
fi.write("NMF Analysis\n\n")
fi.write(f"{len(df_component_weight_timeseries.columns)} files uploaded for analysis.\n\n")
fi.write(f"The selected active r ranges are: {args1.xrange}\n\n")
fi.write("Thesholding:\n")
fi.write(f"\tThe input component threshold was: {args1.threshold}\n")
fi.write(f"\tThe input improvement threshold was: {args1.improve_thresh}\n")
fi.write(f"\tThe input # of iterations to run was: {args1.n_iter}\n")
fi.write(f"\tWas PCA thresholding used?: {args1.pca_thresh}\n")
fi.write(f"{len(df_components.columns)} components were extracted")
fig1.savefig(plot_file1)
fig2.savefig(plot_file2)
fig3.savefig(plot_file3)
ifargs1.pca_thresh:
fig4.savefig(plot_file7)
fig1.savefig(plot_file4)
fig2.savefig(plot_file5)
fig3.savefig(plot_file6)Solution
The code needs to be refactored - make variables name more explicit. Ex) plot_file1 - plot_file_4 which is a .pdf plot of plot_file1.
Problem
In
main, 4 figures and .json/.csv are generated below:Solution
The code needs to be refactored - make variables name more explicit. Ex)
plot_file1-plot_file_4which is a .pdf plot ofplot_file1.