软件使用教程

R语言-从Expasy ProtParam中检索的文本数据中提取

2024-03-25  本文已影响0人  潜叶虫

Expasy ProtParam中检索的数据保存为文本文档,之后使用R进行数据提取。

文本格式

屏幕截图 2024-03-25 225807.png

具体代码

从文档中提取需要的内容

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"
)
上一篇 下一篇

猜你喜欢

热点阅读