<jupyter_start><jupyter_text>Only one sheet in excel file:<jupyter_code>protein_data_sheets = read_excel(csf_soma_path, sheet_name=None)
assert len(protein_data_sheets.keys()) == 1
protein_data_sheets.keys()
protein = protein_data_sheets['Sheet1']<jupyter_output><empty_output><jupyter_text>Four index columns:<jupyter_code>protein.head()
protein.tail()
protein.describe()<jupyter_output><empty_output><jupyter_text>1305 proteins, 82 patients. Ok.<jupyter_code>protein.duplicated().any()<jupyter_output><empty_output><jupyter_text>No duplicates. Simple re-formatting of columns:<jupyter_code>from helpers.data_frame import to_underscore

# standardize index column names to python standards for easier use in future
index_columns = ['SomaId', 'TargetFullName', 'Target', 'EntrezGeneSymbol']
protein.columns = to_underscore(protein.columns, limit_to=index_columns)
index_columns = to_underscore(index_columns)

# and set as index
protein = protein.set_index(index_columns)

# remove the 'CT' prefix for consistency
protein.columns = protein.columns.str.lstrip('CT')
protein.head()<jupyter_output><empty_output><jupyter_text>Not sure if we can call it "expression" - it has been a long way from expression and since it is a CSF, being mixture of what is left from different cells maybe just using "levels" is better (I mean for both protein and mRNA measurements; also, I imagine that there may be some abnormal degradation processes which may have a lot of influence on what we see)?<jupyter_code>protein.to_csv(output_path)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09336767546683837, 'fraction_numerical': 0.0051513200257566, 'mean_word_length': 8.141176470588235, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '440615', 'license': 'MIT', 'n_tokens_mistral': 522, 'n_tokens_neox': 484, 'n_words': 133, 'path': 'exploration/protein/Data_extraction.ipynb', 'repo_name': 'krassowski/meningitis-integration', 'size': '1553'}