Mutant-Allele Tumor Heterogeneity (MATH) 是一种量化肿瘤异质性的方法,通过评估肿瘤中突变等位基因的多样性来衡量肿瘤的异质性程度。MATH 主要用于评估肿瘤内基因突变的变异性,即肿瘤细胞中突变等位基因频率的差异。
计算肿瘤异质性评分 突变等位基因频率(Mutant Allele Frequency, MAF):首先计算每个突变基因的等位基因频率,即突变等位基因在肿瘤样本中的比例。 中位数绝对偏差(Median Absolute Deviation, MAD):计算所有突变等位基因频率的中位数绝对偏差。 中位数(Median, M):计算所有突变等位基因频率的中位数。 MATH 计算公式:MATH定义如下: [ {MATH} = \frac {MAD}}m \times 100 ] 其中,MAD 是突变等位基因频率的中位数绝对偏差,M 是突变等位基因频率的中位数。
肿瘤样本和正常样本的测序数据:需要有来自同一个个体的肿瘤和匹配正常组织的高通量测序数据,通常是BAM格式的文件。
1 示例路径
/TJPROJ6/AFS_RESEQ/Proj/hongxiang/05.AFS/MATHscore.py
2 分析脚本
import pandas as pd import numpy as np import sys def calculate_math_scores(input_file, output_file): """ 参数: input_file (str): 输入 MAF 文件的路径。 output_file (str): 输出文件的路径。 """ # 读取 MAF 文件 maf_data = pd.read_csv(input_file, sep='\t', comment='#') required_columns = ['Tumor_Sample_Barcode', 't_alt_count', 't_ref_count'] for col in required_columns: if col not in maf_data.columns: raise ValueError("MAF 文件中缺少必要的 '{}' 列。".format(col)) math_scores = [] grouped = maf_data.groupby('Tumor_Sample_Barcode') for sample, group in grouped: group = group.copy() # Avoid SettingWithCopyWarning group.loc[:, 'VAF'] = group['t_alt_count'] / (group['t_alt_count'] + group['t_ref_count']) # 计算中位数和 MAD vaf_median = group['VAF'].median() mad = np.median(np.abs(group['VAF'] - vaf_median)) math_score = 100 * mad / vaf_median math_scores.append((sample, math_score)) with open(output_file, 'w') as f: f.write("samplename\tMATHscore\n") for sample, score in math_scores: f.write("{}\t{}\n".format(sample, score)) if __name__ == "__main__": if len(sys.argv) != 3: print("用法: python calculate_math_scores.py <输入MAF文件路径> <输出文件路径>") else: input_file_path = sys.argv[1] output_file_path = sys.argv[2] calculate_math_scores(input_file_path, output_file_path)
samplename MATHscore O37 56.3829787234 O40 34.8913043478 O50 33.3333333333 O57 55.5555555556 O62 63.5778554038 O64 21.4364876385 OB36 50.0 OB58 73.9130434783 OL50 39.9408284024 T36 68.6720713033 T37 21.8195266272 T40 44.4444444444 T50 37.5714285714 T57 55.5555555556 T58 17.1396248357 T62 70.4081632653 T64 12.8241395568