У меня есть каталог diffexp
с 50 R
скриптами, которые называются diffexpRcommands_neurons_nn.R
(где nn
- это число от 00
до 50
.
. Я бы хотелзапустить как можно больше из них параллельно в кластере.
Есть ли способ, которым я могу представить все сценарии, используя qsub
, но без необходимости создавать отдельный .sh
сценарий для каждого .R
script?
По сути, я запускаю тесты дифференциальной экспрессии между парами кластеров ячеек (с помощью функции Seurat FindMarkers()
.
Поскольку имеется 52 кластера ячеек, существует 1326 сравнений сЯ сгенерировал команду для каждой из комбинаций, а затем разделил эти команды на 50 различных файлов, с ~ 25 сравнениями в каждом. Идея состоит в том, чтобы попытаться выполнить каждый набор из 25 команд одновременно или, по крайней мере,как можно больше.
Каждый скрипт diffexpRcommands_neurons_nn.R
содержит один и тот же заголовок:
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)
.
.
.
ии так далееl конец последнего файла 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)
Я начал думать, что могу каким-то образом запустить массив заданий, но я не знаю, возможно ли это, поскольку каждое задание представляет собой отдельный наборКоманды (различный набор комбинаций).
Спасибо.