You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中批量导入TSV文件并生成代谢物编码词典的问题

批量处理TSV代谢通路文件解决方案

需求说明

  • 批量读取单个文件夹内数百个结构一致(11列)的.tsv代谢通路文件为独立数据框
  • 为每个数据框添加对应文件名前缀(如PA145011109)列
  • 从每个数据框的From和To列提取唯一分子值,生成以「文件名前缀-序号」为编码的分子词典

优化实现代码

1. 环境准备与文件路径处理

library(tidyverse)
library(rebus)

# 替换为你的实际文件夹路径
table_pgkb <- "./your_target_folder"

# 获取所有PA开头的tsv文件
filenames <- list.files(path = table_pgkb, pattern = "^PA.*\\.tsv$")

# 提取文件名(去除.tsv后缀)
fnames <- str_remove(filenames, pattern = "\\.tsv$")

# 提取每个文件的PA前缀编码
pattern <- "PA" %R% one_or_more(DGT)
path_codes <- str_extract(fnames, pattern)

2. 批量读取并处理数据框

# 用列表统一管理所有数据框,避免assign造成的全局环境混乱
path_dfs <- map2(fnames, path_codes, function(name, code) {
  filepath <- file.path(table_pgkb, paste0(name, ".tsv"))
  # 读取文件时仅保留前4列(含From、To),并添加前缀列
  df <- read.delim(filepath, 
                   colClasses = c(rep("character", 4), rep("NULL", 7)),
                   sep = "\t") %>%
    mutate(path_code = code)
  return(df)
})

# 给列表命名,方便后续按文件名调用数据框
names(path_dfs) <- fnames

3. 生成分子词典

# 批量生成每个文件对应的分子词典
mol_dictionaries <- map2(path_dfs, path_codes, function(df, code) {
  # 提取From和To的唯一值并排序
  unique_mols <- unique(c(df$From, df$To)) %>%
    sort() %>%
    as.data.frame(stringsAsFactors = FALSE) %>%
    rename(molecules. = ".")
  
  # 添加编码列,序号补两位前置零保证格式统一
  unique_mols <- unique_mols %>%
    mutate(coded.mol = paste0(code, "-", str_pad(row_number(), 2, pad = "0"))) %>%
    relocate(coded.mol)  # 将编码列移至第一列
  
  return(unique_mols)
})

# 可选:合并所有文件的词典为一个总表
total_mol_dict <- bind_rows(mol_dictionaries, .id = "source_file")

# 可选:单独保存每个词典到文件夹
walk2(mol_dictionaries, path_codes, function(dict, code) {
  write_tsv(dict, file.path(table_pgkb, paste0(code, "_mol_dict.tsv")))
})

预期输出示例

单个文件对应的分子词典格式:

coded.molmolecules.
PA145011109-01atorvastatin lactone
PA145011109-022-hydroxyatorvastatin lactone

关键优化点

  • 用列表替代assign管理数据框,避免全局环境变量混乱,更易维护
  • 结合purrr的map2函数实现批量处理,代码简洁高效
  • 统一处理前缀编码和序号格式,确保输出规范
  • 支持合并总词典或单独保存单个词典,灵活满足不同需求

内容的提问来源于stack exchange,提问作者Raul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:40:29