MeMoModelling/gene-expression-bootstrapper
0
1import os2import pandas as pd3import re4import sys5 6def write_to_excel(output_filename, dfs_towrite, index = False, col_width=22):7 with pd.ExcelWriter(output_filename) as writer:8 for name, df in dfs_towrite.items():9 df.to_excel(writer, sheet_name = name, index = index)10 num_col = len(df.columns) if index else len(df.columns)-111 writer.sheets[name].set_column(0, num_col, col_width)12 print("Write to", output_filename)13 14def read_model_excel(model_excel_filename, sheet_name):15 if not os.path.isfile(model_excel_filename):16 raise FileNotFoundError(f"Missing model excel file, expected at {model_excel_filename}")17 if sheet_name not in pd.ExcelFile(model_excel_filename).sheet_names:18 raise ValueError(f"{sheet_name} are expected to be in the parsed model excel file - {model_excel_filename}")19 sheet_df = pd.read_excel(model_excel_filename, sheet_name=sheet_name)20 sheet_df = sheet_df.fillna("")21 return sheet_df22 23def read_mapping(mapping_filename):24 if not os.path.isfile(mapping_filename):25 raise FileNotFoundError(f"Missing mapping file, expected at {mapping_filename}")26 27 mapping_df = pd.read_excel(mapping_filename)28 mapping_df = mapping_df[mapping_df["has_mapping"] == True]29 30 mapping_dict = dict(zip(mapping_df["model_tag"], mapping_df["gene_id"]))31 return mapping_dict