如何用R将UniProt细胞因子FASTA文件整理为含指定字段的数据框
R语言处理UniProt细胞因子FASTA生成结构化表格教程
1. 前期准备
首先从UniProt的细胞因子查询页面下载FASTA格式的蛋白序列文件,保存到R的当前工作目录,命名为cytokines_uniprot.fasta即可。
2. 安装依赖包
我们需要用Biostrings处理FASTA序列,用tidyverse系列工具做文本提取和数据整理,安装代码如下:
# 安装基础包 install.packages(c("BiocManager", "tidyverse"), repos = "https://cran.rstudio.com/") # 安装Bioconductor序列处理包 BiocManager::install("Biostrings", update = F)
加载包:
library(Biostrings) library(tidyverse)
3. 读取FASTA并解析字段
UniProt的FASTA序列头格式统一为>sp|UniProtID|蛋白名 OS=物种名 OX=物种编号 ...,我们用正则匹配提取需要的4个字段:
# 读取FASTA文件 fasta_raw <- readAAStringSet("cytokines_uniprot.fasta") # 转换为结构化数据框 cytokine_table <- data.frame( raw_header = names(fasta_raw), sequence = as.character(fasta_raw) ) %>% # 提取UniProt ID mutate(protein_id = str_extract(raw_header, "(?<=\\|)[A-Z0-9]+(?=\\|)")) %>% # 提取蛋白名称 mutate(protein_name = str_remove(str_extract(raw_header, "(?<=\\|)[^\\|]+$"), " +OS=.*")) %>% # 提取物种信息 mutate(species = str_extract(raw_header, "(?<=OS=).+?(?= +OX=)")) %>% # 保留所需的4个字段 select(protein_id, protein_name, species, sequence)
4. 结果导出
如果需要保存为本地表格,执行以下代码即可:
# 导出为CSV格式 write.csv(cytokine_table, "uniprot_cytokines_structured.csv", row.names = FALSE, na = "") # 如果需要导出为tsv格式 write_tsv(cytokine_table, "uniprot_cytokines_structured.tsv", na = "")
常见问题说明
- 如果你下载的序列包含TrEMBL未审核条目,序列头开头为
tr而非sp,上述正则匹配规则依然兼容,无需修改 - 少量特殊条目的字段提取如果出现缺失,可对应查看原始FASTA的序列头格式,微调正则匹配规则即可适配
- 若蛋白序列过长导致表格体积过大,可单独保留原始FASTA文件,表格中仅存储
protein_id、protein_name、species三个字段即可
内容的提问来源于stack exchange,提问作者Badi elmaestro
相关产品推荐
相关产品推荐

