Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
#%%
#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']])
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
# %%
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")

# %%