GID-Flow / PDGrapher /data /scripts /cosmic /generate_cell_line_mutations_files.py
Boom5426's picture
Upload GID-Flow project snapshot (deduped: code + key artifacts)
07fcdfe verified
Raw
History Blame Contribute Delete
2.02 kB
'''
Processes CosmicCLP_MutantExport.tsv (15th Sept 2022) to create a file with cell line: mutations
Expert curated list obtained from:https://cancer.sanger.ac.uk/cell_lines/curation# (18th March 2024)
'''
import pandas as pd
from collections import Counter
import os
import os.path as osp
#Creates out dir
outdir = '../../processed/cosmic'
os.makedirs(outdir, exist_ok=True)
cell_lines = ['A549', 'PC-3', 'MCF7', 'BT-20', 'MDA-MB-231', 'VCaP', 'A375', 'HT-29', 'ES-2', 'BICR6', 'YAPC', 'AGS', 'U251MG']
#Loads data
data = pd.read_csv('../../raw/cosmic/2022-10-COSMIC/data/CosmicCLP_MutantExport.tsv', sep='\t', encoding="ISO-8859-1")
#Filter to include only the 5 cell lines of interest
mask = [e in cell_lines for e in data['Sample name']]
data = data[mask]
#Explore data
log_handle = open('log_stats.txt','w')
columns = ['Mutation Description', 'Mutation somatic status', 'Mutation verification status']
for cell_line in cell_lines:
data_i = data[data['Sample name']==cell_line]
log_handle.write('\nCELL LINE:\t{}\n'.format(cell_line))
for column in columns:
log_handle.write(column+'\n')
log_handle.write(str(Counter(data_i[column])) +'\n\n')
log_handle.write('Total genes mutated:\t{}\n\n\n\n'.format(len(data_i['Gene name'])))
#As agreed with Marinka, take an overlap of the 'verified' mutations and expert curated genes, for each cell line
#Filter to keep only verified genes
data = data[data['Mutation verification status'] == 'Verified']
#Filter to keep only curated genes
curated_genes = pd.read_csv('../../raw/cosmic/2022-10-COSMIC/data/expert_curated_genes_cosmic_2024.csv', sep='\t')['Genes'].tolist()
mask = [gene in curated_genes for gene in data['Gene name']]
data_curated = data[mask]
data_curated['Sample name'] = [e.replace('-','').upper() for e in data_curated['Sample name']]
#Save file
data_curated.to_csv(osp.join(outdir, 'CosmicCLP_MutantExport_only_verified_and_curated.csv'))
log_handle.write(str(data_curated['Sample name'].value_counts()))
log_handle.close()