======简介======
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