【发布时间】:2019-05-07 15:45:02
【问题描述】:
我有一个目录 diffexp,其中包含 50 个 R 脚本,称为 diffexpRcommands_neurons_nn.R(其中 nn 是从 00 到 50 的数字。
我想在一个集群上尽可能多地并行运行它们。
有没有一种方法可以让我使用qsub 提交所有脚本,但不必为每个.R 脚本创建单独的.sh 脚本?
基本上,我在成对的细胞簇之间进行差异表达测试(使用 Seurat 函数 FindMarkers()。
由于有 52 个细胞簇,因此需要进行 1,326 次比较。 我为每个组合生成了一个命令,然后将这些命令拆分为 50 个不同的文件,每个文件有大约 25 个比较。 我们的想法是尝试一次运行每组 25 个命令,或者至少尽可能多地运行。
每个diffexpRcommands_neurons_nn.Rscript 都包含相同的标头:
source("/path/to/code/setupCSE.R")
library(gmodels)
library(Matrix)
library(RANN)
library(igraph)
load(file="/path/to/seuratobjects/alltogether_neurons.RData")
随后进行了 26 对细胞簇之间的比较:
# 1 vs 2
cluster1vs2.markers <- FindMarkers(alltogether_neurons, "1", "2")
write.table (cluster1vs2.markers,
"/path/to/alltogether_neurons_1vs2_markers.txt",
sep="\t", quote=F, col.names=NA)
# 1 vs 3
cluster1vs3.markers <- FindMarkers(alltogether_neurons, "1", "3")
write.table (cluster1vs3.markers,
"/path/to/alltogether_neurons_1vs3_markers.txt",
sep="\t", quote=F, col.names=NA)
.
.
.
以此类推,直到最后一个文件结束diffexpRcommands_neurons_50.R:
# 51 vs 53
cluster51vs52.markers <- FindMarkers(alltogether_neurons, "51", "52")
write.table (cluster1vs3.markers,
"/path/to/alltogether_neurons_51vs52_markers.txt",
sep="\t", quote=F, col.names=NA)
我开始认为我可以以某种方式运行作业数组,但我不知道这是否可能,因为每个作业都是一组不同的命令(不同的组合)。
谢谢。
【问题讨论】:
标签: r batch-processing bioinformatics rscript qsub