Как вы создаете разные файлы из одной и той же переменной? - PullRequest
0 голосов
/ 08 марта 2019

Я объясняю свою проблему.Я хочу вычислить масштабируемость алгоритма для моего набора данных (тысячи строк).Для этого я хочу установить подмножество этого набора данных и увеличить размер поднаборов в 500 строк (таким образом, 1-й набор на 500 строк, 2-й набор на 1000 строк, 3-й набор на 1500 строк ...).

Я буду использовать slurm ифункция SLURM_ARRAY_TASK_ID для этого.Это мой код R:

# load packages 

library(SpiecEasi)
library(optparse)

args <- commandArgs(trailingOnly = F)

# get options
option_list = list(
  make_option(c("-s", "--subset"), type="character", default=NULL,
              help="Input file matrix ")
);


opt_parser = OptionParser(usage = "Usage: %prog -f [FILE]",option_list=option_list,
                          description= "Description:")
opt = parse_args(opt_parser)


# main code 
print('Load matrice')

data<-read.table("/home/vipailler/PROJET_M2/raw/truelength2.prok2.uniref2.rares.tsv", h=T, row.names=1, sep="\t")

print('Subset matrice')

data=data[1:opt$subset,]
#print(data)

print('Translate')
data=t(data)
#print(data)

se_gl <- spiec.easi(data, method='glasso', lambda.min.ratio=1e-2, nlambda=20)

size=format(object.size(se_gl), units="Gb")
print(size)
######!!!!######

save(se_gl, file="/home/vipailler/PROJET_M2/data/se_gl.RData")

Моя проблема заключается в следующем: если я использую 5 массивов, для вычисления масштабируемости алгоритма spiec.easi (так, от 500 до 2500 строк), я бы хотелон создает 5 разных переменных se_gl.Я имею в виду, что моя последняя командная строка сохранит только последнюю переменную (2500rows) и перезапишет 4 другие.

Итак, как я могу создать 5 разных переменных из одной переменной se_gl?Я знаю, что с slurm этот код будет выполнен, например, 5 раз (если я настрою 5 массивов), но проблема в моей последней командной строке ...

Какая-то помощь?

Bests

1 Ответ

0 голосов
/ 08 марта 2019

У вас есть несколько вариантов.Поскольку вы упоминаете slurm, вы, вероятно, захотите просто изменить имя файла, чтобы сохранить масштабируемое решение.

save(se_gl, file = sprintf("/home/vipailler/PROJET_M2/data/se_gl_%s.RData", opt$subset))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...