Prepare data from XLSX file

Example code on how to process data stored in a .xlsx file into package compatible format.

[1]:
# Import dependencies
import pandas as pd

# Define data filepath
file_path = './sample_data.xlsx'

# Define key
df = pd.read_excel(file_path, sheet_name='key', engine='openpyxl')
key = list(zip(df['Code'], df['Label']))
print('Key data:\t{}'.format(key))

# Define interactions + scores
df = pd.read_excel(file_path, sheet_name='interactions', engine='openpyxl')
interactions = []
for ix, row in df[[col for col in df.columns if 'Drug' in col]].iterrows():
    interactions.append(row[~pd.isna(row)].tolist())
scores = df['Score'].tolist()
print('Ixn names:\t{}'.format(interactions))
print('Ixn scores:\t{}'.format(scores))

# Define profiles + feature_names
df = pd.read_excel(file_path, sheet_name='profiles', engine='openpyxl')
feature_names = df['Gene'].tolist()
profiles = df.loc[:, ~df.columns.isin(['index', 'Gene'])].to_dict('list')
print('Feature names:\t{}'.format(feature_names))
print('Profile data:\t{}'.format(profiles))
Key data:       [('MIN', 'MINOCYCLINE'), ('RIF', 'RIFAMPICIN')]
Ixn names:      [['INH', 'RIF'], ['INH', 'MIN'], ['RIF', 'MIN'], ['INH', 'RIF', 'MIN']]
Ixn scores:     [1.0, 1.09, 0.99, 0.6]
Feature names:  ['Rv0001', 'Rv0002', 'Rv0003']
Profile data:   {'INH': [0.12250798308061334, 0.33976099868757503, -0.6754194125478904], 'RIFAMPICIN': [-0.6844927294271568, -0.7003787399367092, -0.9965682681936586], 'MINOCYCLINE': [0.2494555806220347, -0.29418110424257443, -0.5443713088569625]}