我正在努力使R代码自动化,以便不必每次都指定文件位置,而只需指定父文件夹的位置即可。在父文件夹内,将有n个子文件夹容纳需要的文件。
当前,我正在做的是手动指定所有子文件夹的位置。
代码如下:
First a function:
```{r include = T}
loadSC <- function(path){
sc <- read10XResults(path)
Genes <- as.character(rowData(sc)[startsWith(rowData(sc)$symbol, "mt-"),]$id)
isSpike(sc, "MT") <- rownames(sc) %in% Genes
sc <- calculateQCMetrics(sc,
feature_controls = list(
MT = isSpike(sc, "MT")
))
}
```
指向文件(这是我想要的,它要它自动识别子文件夹的数量。在这里,我们有5个子文件夹K1,K2,K3,K4,K5,并在其中查找文件)< / p>
```{r include = T}
sc_1 = loadSC("Sample/K1/outs/matrices/mm10/")
sc_2 = loadSC("Sample/K2/outs/matrices/mm10/")
sc_3 = loadSC("Sample/K3/outs/matrices/mm10/")
sc_4 = loadSC("Sample/K4/outs/matrices/mm10/")
sc_5 = loadSC("Sample/K5/outs/matrices/mm10/")
```
此外,在此下方,我有类似的块,也需要循环输入。
```{r include = T}
metadata(sc_1)["name"] <- "iM-1"
metadata(sc_2)["name"] <- "iM-2"
metadata(sc_3)["name"] <- "iM-3"
metadata(sc_4)["name"] <- "iM-4"
metadata(sc_5)["name"] <- "iM-5"
```
我正在Rmarkdown中这样做。
一些指导或可行的例子确实会有所帮助。
提前谢谢
答案 0 :(得分:1)
想象您的数据存储方式如下:
一种简单的访问数据的方法是:
# This function gets all the folder paths inside "Sample"
paths <- list.dirs(path = "Sample", recursive = FALSE)
# To access the data, you should get used to lapply()
data <- lapply(paths, loadSC)
# To keep an overview where the data is from
names(data) <- paths
因此,您将获得包含所需数据的综合命名列表。 您可能必须调整您的loadSC(),但是将来您只需要更改父文件夹即可分析另一个数据集。 干杯