酷代码 AI
菜单
全部AI  /  热门  /  AI问答
服务商

附件为乳腺癌基因组变异数据,数据包含979个候选基因,总共涉及100例癌症病患样本,数据下载并整理自癌症基因组图谱数据库(The Cancer Genome Altas, TCGA): https://www.cancer.gov/about-nci/organization/ccg/research/structural-genomics/tcga Excel表格中,每行为基因,每列为样本。True表示该基因在该样本中发生了突变,False表示未发生突变 比如红圈中表示基因AARS在癌症样本TCGA-A1-A0SB未发生突变 请定义一个函数,求出突变最高频率最高的前10名基因,输出成一个文件,文件名为Output.xlsx,输出结果参考以下 对第一列到最后一列,横向求和,可用以下代码实现,请补充完整 freq = df[______].sum(_____) import pandas as pd def get_top_mutated_genes(input_path,out_path): # """ # 统计基因突变样本数并输出Top

以下是完成任务的完整代码和解释: ```python import pandas as pd def get_top_mutated_genes(input_path, out_path): """ 统计基因突变样本数并输出Top10基因 :param input_path: Excel文件路径(格式:行=基因,列=样本,True/False或1/0表示突变状态) :param out_path: 输出文件路径 :return: 生成Output.xlsx文件 """ # 数据加载与预处理 df = pd.read_excel(input_path, index_col=0).fillna(False) # 计算突变样本数(True=1,False=0) freq = df.sum(axis=1) # 对每行求和,统计每个基因在多少个样本中发生突变 # 结果格式化与排序 result = pd.DataFrame({ 'Gene': freq.index, # 基因名称 'Mutated_Samples': freq.values # 突变样本数 }).sort_values('Mutated_Samples', ascending=False).head(10) # 按突变样本数降序排列,取前10名 # 输出Excel文件 result.to_excel(out_path, index=False) # 将结果保存为Excel文件 # 调用函数 get_top_mutated_genes('mutations.xlsx', 'Output.xlsx') ``` 代码说明 - `pd.read_excel(input_path, index_col=0)`:读取Excel文件,并将第一列作为索引(即基因名称)。 - `.fillna(False)`:将缺失值填充为`False`,确保数据一致性。 - `df.sum(axis=1)`:对每一行(基因)求和,统计该基因在多少个样本中发生突变。`True`被视为`1`,`False`被视为`0`。 - `pd.DataFrame({...})`:创建一个包含基因名称和突变样本数的新DataFrame。 - `.sort_values('Mutated_Samples', ascending=False)`:按突变样本数降序排列。 - `.head(10)`:提取突变频率最高的前10个基因。 - `result.to_excel(out_path, index=False)`:将结果保存为指定路径的Excel文件,不保存索引。 输出文件格式 输出文件`Output.xlsx`的内容格式如下: | Gene | Mutated_Samples | |--------|-----------------| | TP53 | 90 | | PIK3CA | 75 | | ... | ... | 此代码可以准确计算突变频率最高的前10个基因,并生成所需的输出文件。 [2025-04-30 22:43:57 | AI问答 | 576点数解答]

相关提问