代码:
# 导入所需的包
import os
import pandas as pd
# 设置工作目录 输入文件在此目录下,输出文件也会在此目录下输出
os.chdir(r'C:\Users\Desktop')
# 加载包含FPKM值的DataFrame,假设列名为 "id"、"S3"、"S4"、"S5"、"S6"、"S7"、"S8",分隔符为制表符,运行时根据自己FPKM文件的列名和列数进行修改
df = pd.read_csv("fpkm.csv", sep='\t')
# 计算每个样本的FPKM之和
total_fpkm = df[['S3', 'S4', 'S5', 'S6', 'S7', 'S8']].sum()
# 计算每个基因的TPM值
df['tpm_S3'] = (df['S3'] / total_fpkm['S3']) * 1e6
df['tpm_S4'] = (df['S4'] / total_fpkm['S4']) * 1e6
df['tpm_S5'] = (df['S5'] / total_fpkm['S5']) * 1e6
df['tpm_S6'] = (df['S6'] / total_fpkm['S6']) * 1e6
df['tpm_S7'] = (df['S7'] / total_fpkm['S7']) * 1e6
df['tpm_S8'] = (df['S8'] / total_fpkm['S8']) * 1e6
# 删除原始的FPKM列
df.drop(columns=['S3', 'S4', 'S5', 'S6', 'S7', 'S8'], inplace=True)
# 将转换后的数据输出到tpm.csv文件,使用制表符作为分隔符
df.to_csv("tpm.csv", index=False, sep='\t')