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

合并单/多文本文件中相同表头的多肽结合预测表格的方法咨询

多肽结合预测结果表格批量提取合并方案

单文件表格提取合并实现

核心逻辑是先定位固定表头的特征,再过滤所有无关行,仅保留符合列数要求的有效数据:

  • 过滤规则:
    • 移除全由-/=组成的分隔线行
    • 移除标注为注释、统计说明的特征行
    • 仅保留首次出现的表头,后续重复表头直接跳过
    • 有效数据行要求字段数与表头完全一致,符合对应列的格式要求
  • 快速命令行实现(awk):
    把代码中的占位符替换为你实际的文件特征即可使用:
    awk 'BEGIN{FS="\\s+"; OFS="\t"} /你的表头匹配正则/ && !head_flag {print; head_flag=1; next} /^[-=]+$|注释特征|统计特征/ {next} NF==实际列数 {print}' 输入文件.txt > 单文件合并结果.tsv

多文件合并为总表R实现方案

可以实现批量合并200+文件的全部数据,实现逻辑如下,代码可直接调整参数后运行:

# 加载依赖,未安装先运行 install.packages("tidyverse")
library(tidyverse)

# 自定义参数区,根据实际文件调整
file_folder <- "存放所有txt文件的文件夹完整路径"
header_regex <- "^Peptide" # 匹配你表头的正则,比如表头首列为Peptide就用这个
fixed_col_num <- 5 # 替换为你的表格实际列数
exclude_regex <- "^[-=]+$|^# |^Comment|^Statistics" # 匹配无关行的正则

# 批量读取处理
all_file_paths <- list.files(file_folder, pattern = "\\.txt$", full.names = T)
total_table <- map_dfr(all_file_paths, function(file_path){
  lines <- readLines(file_path, warn = F)
  # 定位首次出现的表头
  header_idx <- which(str_detect(lines, header_regex))[1]
  if(is.na(header_idx)) return(tibble())
  col_names <- str_split_1(str_squish(lines[header_idx]), "\\s+")
  # 过滤有效数据行
  valid_lines <- lines[(header_idx+1):length(lines)] %>% 
    str_squish() %>% 
    .[str_detect(., exclude_regex, negate = T)] %>% 
    .[str_count(., "\\s+") == fixed_col_num -1]
  if(length(valid_lines) == 0) return(tibble())
  # 转为数据框,可新增来源文件列方便溯源
  df <- read_delim(I(valid_lines), delim = " ", col_names = col_names, show_col_types = F)
  df$source_file <- basename(file_path)
  return(df)
})

# 导出总表
write_tsv(total_table, "多肽结合预测结果总表.tsv")
  • 调整提示:
    • 如果你的文件列原本就是制表符分隔,把代码中所有分割用的\\s+替换为\\t即可
    • 可根据你实际遇到的无关内容的特征,灵活补充exclude_regex的匹配规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:36:04