R语言文件批量操作实战

2023-09-02 10:10:16 浏览数 (1)

我们在多样本创建Seurat对象的时候,在读取数据之前,需要对多个样本的文件进行移动和改名操作,样本量少的时候可以手动操作,样本量比较多的情况下,手动操作会非常麻烦,为了提高效率,我们可以使用R语言来对文件和文件夹进行操作。

主要涉及到的操作就是文件夹的创建、文件复制、文件名称修改。

一、下载并解压演示数据

首先下载演示数据:

https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE234527

1、将文件下载到本地

2、将文件解压,得到15个文件,文件后缀为.gz

解压后如下图:

二、需要对文件进行什么操作?

每个样本的数据由三个文件构成,可以根据文件的名称进行区分。需要用代码完成的的操作是:

  1. 根据文件名称中样本的GSM编号创建文件夹
  2. 将每个样本的数据复制到对应的文件夹下面并修改名称

三、示例代码

示例代码:

代码语言:javascript复制
# 清空R环境中的变量列表
rm(list = ls())

# 导入必要的包,stringr用于处理字符串
library(stringr)

# 查看当前工作目录(显示当前R脚本的工作路径)
getwd()

# 设置工作目录,将工作路径切换到指定路径下
setwd("D:/project/scRNA/data/GSE234527")

# 列出当前工作目录下以.gz结尾的文件
files <- list.files(pattern = "\.gz$")

# 遍历每个文件
for (file in files) {
  # 使用下划线分割文件名,提取第一个部分作为样本名
  sample_name <- str_split(file, "_")[[1]][1]

  # 创建目录,忽略警告信息
  dir.create(sample_name, showWarnings = FALSE)

  # 从文件名中去掉数字部分,保留后面的部分作为新的文件名
  new_file <- str_split(file, "_")[[1]][3]

  # 构建源文件和目标文件的完整路径
  src <- file.path(getwd(), file)
  dst <- file.path(getwd(), sample_name, new_file)

  # 复制源文件到目标文件夹,并使用新的文件名
  file.copy(from = src, to = dst)
}


0 人点赞