In [ ]:
import os
import sys
sys.path.append('/home/rstudio/codes')

In [ ]:
from pyBatman.nbrun import run_notebook
from pyBatman import load_config, get_db_path, sub_dir_path, mkdir_p
from pyBatman.constants import WD, SPECTRA_DIR, BACKGROUND_DIR, OUTPUT_DIR

In [ ]:
nb_name_input = '/home/rstudio/codes/notebooks/predict_spectra_concentrations.ipynb'

In [ ]:
if os.path.isdir(WD): # if wd exists (has been mapped)

    spectra_found = os.path.isdir(SPECTRA_DIR)
    background_found = os.path.isdir(BACKGROUND_DIR)
    
    if spectra_found and background_found:        
        input_spectra = sub_dir_path(SPECTRA_DIR)
        mkdir_p(OUTPUT_DIR)                
        for sd in sorted(input_spectra):

            print 'Now processing %s' % sd
            base_name = os.path.basename(os.path.normpath(sd))
            nb_name_output = os.path.join(OUTPUT_DIR, '%s.html' % base_name)
            
            timeout = -1 # never times out
            nb_kwargs = {'spectra_dir': sd}
            try:
                run_notebook(nb_name_input, nb_name_output, timeout=timeout, nb_kwargs=nb_kwargs)
            except Exception:
                continue

In [ ]:
import pandas as pd
import glob
import os
from IPython.display import display, HTML

In [ ]:
def get_file_id(csv_filename):
    basename = os.path.basename(os.path.normpath(csv_filename))
    filename_no_extension = os.path.splitext(basename)[0]
#     tokens = filename_no_extension.split('.')
#     file_id = tokens[1]
#     file_id = file_id.replace('ID_', '')
#     return file_id
    return filename_no_extension

In [ ]:
def get_df(csv_filename):
    df = pd.read_csv(csv_filename, header=0, index_col=0)
    file_id = get_file_id(csv_filename)
    df.rename(columns={'Concentration (mM)': file_id}, inplace=True)
    return df

In [ ]:
csv_dir = os.path.join(OUTPUT_DIR, 'csv')
csv_files = glob.glob(os.path.join(csv_dir, '*.csv'))
print '\n'.join(csv_files)

In [ ]:
dfs = []
for csv_filename in csv_files:
    df = get_df(csv_filename)
    display(df.transpose())
    dfs.append(df)

In [ ]:
combined_df = pd.concat(dfs, axis=1)
combined_df = combined_df.transpose()
display(combined_df)

In [ ]:
combined_df.to_csv(os.path.join(OUTPUT_DIR, 'results.csv'))

In [ ]: