R语言-从Expasy ProtParam中检索的文本数据中提取
2024-03-25 本文已影响0人
潜叶虫
Expasy ProtParam中检索的数据保存为文本文档,之后使用R进行数据提取。
文本格式

具体代码
从文档中提取需要的内容
library(tidyverse)
library(openxlsx2)
# https://web.expasy.org/protparam/
# 导入氨基酸序列数据
#------------------------------------------------------------
# 设置工作目录
setwd("I:\\陕师大\\论文草稿\\Cardiac autophagy\\Atgs gene&protein\\果蝇-Expasy-ProtParam")
# 读取文件
fileNames <- dir()
flyColNames <-
c(
"Proteins",
"AA",
"pI",
"Mw",
"GRAVY",
"Formula",
"Aliphatic_index",
"Instability index"
)
# 构建function
proInfo <- function(x) {
txtFile <- read_lines(x)
# 总平均亲水性 Gravy
# 负值越大表示亲水性越好好,正值越大表示疏水性越强
GRAVY <-
txtFile[grep("GRAVY", txtFile)] %>% str_extract("\\-[0-9.]+")
# 脂溶指数 Aliphatic index
Aliphatic <-
txtFile[grep("Aliphatic", txtFile)] %>% str_extract("[0-9.]+")
# 不稳定性系数(一般这个指数小于40,则说明稳定;大于40不稳定) Instability index
Instability <-
txtFile[grep("The instability index", txtFile)] %>% str_extract("[0-9.]+")
# 分子式 Formula
Formula <-
txtFile[grep("Formula:", txtFile)] %>% str_extract("[^: Formula]+")
# 等电点 pI
pI <-
txtFile[grep("Theoretical pI", txtFile)] %>% str_extract("[0-9.]+")
# 分子质量 Molecular weight
Mw <-
txtFile[grep("Molecular weight", txtFile)] %>% str_extract("[0-9.]+") %>% as.numeric() /
1000
# 氨基酸数 Number of amino acids
AA <-
txtFile[grep("Number of amino acids", txtFile)] %>% str_extract("[0-9.]+")
# protein Names
proteinNames <- str_sub(x, start = 3, end = str_locate(x, "-")[1] - 1)
rowData <-
c(proteinNames,
AA,
pI,
Mw,
GRAVY,
Formula,
Aliphatic,
Instability)
return(rowData)
}
flyAtgsPro <- data.frame()
for (i in 1:length(fileNames)) {
tempdata <- proInfo(fileNames[i])
flyAtgsPro <- rbind(flyAtgsPro, tempdata)
}
colnames(flyAtgsPro) <- flyColNames
# 导出数据
write_xlsx(
flyAtgsPro,
"I:\\陕师大\\论文草稿\\Cardiac autophagy\\Atgs gene&protein\\flyAtgsPro.xlsx"
)