我们在多样本创建Seurat对象的时候,在读取数据之前,需要对多个样本的文件进行移动和改名操作,样本量少的时候可以手动操作,样本量比较多的情况下,手动操作会非常麻烦,为了提高效率,我们可以使用R语言来对文件和文件夹进行操作。
主要涉及到的操作就是文件夹的创建、文件复制、文件名称修改。
一、下载并解压演示数据
首先下载演示数据:
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE234527
1、将文件下载到本地
2、将文件解压,得到15个文件,文件后缀为.gz
解压后如下图:
二、需要对文件进行什么操作?
每个样本的数据由三个文件构成,可以根据文件的名称进行区分。需要用代码完成的的操作是:
- 根据文件名称中样本的GSM编号创建文件夹
- 将每个样本的数据复制到对应的文件夹下面并修改名称
三、示例代码
示例代码:
代码语言: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)
}