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

如何用R解析rpsbproc输出文本,生成QUERY与DOMAINS数据框?

解析rpsbproc输出文件生成两个数据框的R实现方法

1. 提取QUERY行数据框

先读取文件所有行,筛选出以QUERY开头的行,再转换为结构化数据框:

# 读取输出文件(替换为你的文件路径)
all_lines <- readLines("rpsbproc_output.txt")

# 筛选所有QUERY起始行并转为数据框
query_rows <- all_lines[grepl("^QUERY", all_lines)]
df_query <- read.table(text = query_rows, sep = "\t", header = FALSE, stringsAsFactors = FALSE)

# 可选:为数据框添加列名,匹配rpsbproc输出格式
colnames(df_query) <- c("标记", "Query_ID", "序列类型", "长度", "基因ID")

2. 提取DOMAINS块数据框

通过定位DOMAINS和ENDDOMAINS标记的位置,提取两者之间的有效结构域信息行:

# 找到所有DOMAINS和ENDDOMAINS的行索引
domain_starts <- grep("^DOMAINS", all_lines)
domain_ends <- grep("^ENDDOMAINS", all_lines)

# 循环提取每个DOMAINS块内的内容
domain_rows <- c()
for (i in seq_along(domain_starts)) {
  # 提取当前DOMAINS和ENDDOMAINS之间的行
  block <- all_lines[(domain_starts[i] + 1):(domain_ends[i] - 1)]
  # 过滤可能存在的空行(可选)
  block <- block[block != ""]
  domain_rows <- c(domain_rows, block)
}

# 转换为数据框
df_domains <- read.table(text = domain_rows, sep = "\t", header = FALSE, stringsAsFactors = FALSE)

# 可选:添加列名,对应rpsbproc结构域输出的字段
colnames(df_domains) <- c("序号", "Query_ID", "结构域类型", "数据库编号", "起始位置", "结束位置", "E值", "得分", "Pfam编号", "结构域名称", "C/N端", "附加信息")

说明

  • 上述代码假设你的rpsbproc输出文件是制表符分隔的,若实际是空格分隔,可将sep = "\t"改为sep = ""(read.table会自动识别连续空格)。
  • 如果文件路径有特殊字符,建议使用完整绝对路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:06