def update_output(alpha_limit, node_name, dropdown_path, network_layout): # Change input variables if alpha_limit=='': alpha_limit=0 if alpha_limit==None: alpha_limit=0 if network_layout=='': network_layout='fruchterman_reingold' if network_layout==None: network_layout='fruchterman_reingold' if dropdown_path==None: dropdown_path='' alpha_limit=np.int(alpha_limit) ALPHA_SCORE = np.int(alpha_limit) NODE_NAME = node_name NETWORK_LAYOUT = network_layout HNET_OUT = None # edge1=None # node1=None # Print selection dropdownbox # print(get_d3path(dropdown_path)) # print(get_pklpath(dropdown_path)) print('Dropdown_path path: %s\n' %(dropdown_path)) print('Node name selected : %s\n' %(node_name)) print('Node layout selected : %s\n' %(network_layout)) # Load data if os.path.isfile(get_pklpath(dropdown_path)): print('Load picke file') HNET_OUT=pypickle.load(get_pklpath(dropdown_path)) # HNET_OUT=hnet_out #print(df['simmatLogP']) df_edges=HNET_OUT['simmatLogP'].stack().reset_index() df_edges.columns=['Source', 'Target', 'Weight'] df_edges['Weight']=df_edges['Weight'].astype(float) edge1 = df_edges.loc[df_edges['Weight']>0,:] node1 = pd.DataFrame(np.unique(df_edges[['Source','Target']].values.reshape(-1)), columns=['NodeName']) node1['Label']=node1['NodeName'] node1['Type']='' # Write to disk edge1.to_csv(os.path.join(TMP_DIRECTORY+'edge1.csv'), index=False) node1.to_csv(os.path.join(TMP_DIRECTORY+'node1.csv'), index=False) # ALPHA_SCORE=[0,np.max(edge1['Weight'].values)] # Make graph # if (not isinstance(edge1, type(None))) and (not isinstance(node1, type(None))): hnet_graph=network_graph(alpha_limit, node_name, network_layout, HNET_OUT=HNET_OUT) # else: # print('Select one first in dropdown!') # Return to screen return(hnet_graph)
def test_load(): data = [1, 2, 3, 4, 5] assert pypickle.save('test.pkl', data, overwrite=True) data_load = pypickle.load('test.pkl') assert data_load == data
#%% #out['df_method_comparison'] #%% dagtype = 'alarm' #dagtype='asia' #scoretype='MCC' columns = ['hnet', 'bayes', 'golden', 'random', 'n_sampling', 'DAG'] df = pd.DataFrame() df_score = pd.DataFrame() dfScore = pd.DataFrame(columns=columns) for n_sampling in arg['n_sampling']: loadname = 'hnet_' + dagtype + '_' + str(n_sampling) + '.pkl' d = pypickle.load(os.path.join('../PROJECTS/hnet/results/', loadname)) # F1-score tmpdf = d['df_method_comparison_scores'] # tmpdf=d['df_method_comparison'] tmpdf['n_sampling'] = d['arg']['n_sampling'] tmpdf['DAG'] = d['arg']['DAG'] df = df.append(tmpdf) # F1-score # dfScore=pd.DataFrame(columns=columns) # score=[] # score.append([d['hnet_undirected']['f1'], d['bayes_undirected']['f1'], d['golden_truth_undirected']['f1'], d['random_undirected']['f1'], d['arg']['n_sampling'], d['arg']['DAG']]) # dfScore=pd.concat([dfScore, pd.DataFrame(index=['f1_undirected'], data=np.array(score).reshape(1,-1), columns=columns)], axis=0) # score=[] # score.append([d['hnet_directed']['f1'], d['bayes_directed']['f1'], d['golden_truth_directed']['f1'], d['random_directed']['f1'], d['arg']['n_sampling'], d['arg']['DAG']])
def process_csv_file(uploaded_filenames, uploaded_file_contents, y_min, alpha, k, excl_background, perc_min_num, specificity, multtest): """Save uploaded files and regenerate the file list.""" # Check input parameters [args, runOK, runtxt]=check_input(uploaded_filenames, uploaded_file_contents, y_min, alpha, k, excl_background, perc_min_num, specificity, multtest) if runOK==False: for txt in runtxt: print('[HNET-GUI] %s' %txt) return(runtxt) print('alpha:%s' %args['alpha']) print('y_min:%s' %args['y_min']) print('k:%s' %args['k']) print('multtest:%s' %args['multtest']) print('excl_background:%s' %args['excl_background']) print('perc_min_num:%s' %args['perc_min_num']) print('specificity:%s' %args['specificity']) print('dropna:%s' %args['dropna']) print('File input: %s' %(args['uploaded_filenames'])) # if uploaded_filenames is not None and uploaded_file_contents is not None: filepath = save_file(args['uploaded_filenames'], args['uploaded_file_contents'], TMP_DIRECTORY) [_,filename, _] = hnet.hnet.path_split(args['uploaded_filenames']) savepath = os.path.join(HNET_DIR_STABLE,filename+'_'+str(args['y_min'])+'_'+str(args['k'])+'_'+str(args['multtest'])+'_'+str(args['specificity'])+'_'+str(args['perc_min_num'])+'_'+str(args['excl_background'])+'/') d3path = get_d3path(savepath) pklpath = get_pklpath(savepath) print('filepath %s' %(filepath)) print('savepath %s' %(savepath)) print('d3path %s' %(d3path)) print('pklpath %s' %(pklpath)) # Progressbar # mGUI=tk.Tk() # mGUI.title('HNET '+ filename) # progressbar = ttk.Progressbar(mGUI, orient='horizontal', length=300) # progressbar.pack(side=tk.TOP) # progressbar.config(mode='determinate') # progressbar.update() # progressbar['value']=0 # progressbar['maximum']=5 # # Set starting position # progressbar['value']=progressbar['value']+1 # update bar # progressbar.update() # update gui # Make directory if not os.path.isdir(savepath): os.mkdir(savepath) # Make D3js path if not os.path.isfile(d3path): # Read file df = pd.read_csv(filepath) # Run HNet # progressbar['value']=progressbar['value']+1 # update bar # progressbar.update() # update gui HNET_OUT = hnet.fit(df, alpha=args['alpha'], y_min=args['y_min'], k=args['k'], multtest=args['multtest'], dtypes='pandas', specificity=args['specificity'], perc_min_num=args['perc_min_num'], dropna=args['dropna'], excl_background=args['excl_background'], verbose=3) # Save pickle file print('SAVING NETWORK FIGURE: %s' %(savepath)) # progressbar['value']=progressbar['value']+1 # update bar # progressbar.update() # update gui HNET_OUT['G'] = hnet.plot_network(HNET_OUT, dist_between_nodes=0.4, scale=2, dpi=250, figsize=[30,20], showfig=False, savepath=os.path.join(savepath,'hnet_network.png')) # Store pickle file print('STORE PICKLE') # progressbar['value']=progressbar['value']+1 # update bar # progressbar.update() # update gui pypickle.save(pklpath, HNET_OUT) #print('MAKE D3GRAPH') _ = hnet.plot_d3graph(HNET_OUT, savepath=savepath, showfig=False) else: print('dir exists, load stuff') HNET_OUT=pypickle.load(pklpath) # Open in browser if os.path.isfile(d3path): print('OPEN BROWSER') webbrowser.open(os.path.abspath(d3path), new=2) print('HNET_DIR_STABLE: %s!' %(HNET_DIR_STABLE)) print('%s done!' %(filename)) print('-----------------------Done!-----------------------') # progressbar['value']=progressbar['maximum'] # update bar # progressbar.update() # update gui # try: # mGUI.destroy() # except: # pass return(filename)
# %% import pypickle print(dir(pypickle)) print(pypickle.__version__) # %% filepath = 'tes1t.pkl' data = [1, 2, 3, 4, 5] status = pypickle.save(filepath, data, fix_imports=True, overwrite=True) #%% Load file data = pypickle.load(filepath, encoding="latin1") # %%