системная команда завершает функцию до конца в R - PullRequest
0 голосов
/ 12 марта 2020

Я создал функцию salmonify в R, которая берет все файлы fastq в папке и затем запускает функцию salmon quant в командной строке один за другим, используя функцию system. Однако после успешного завершения функции system список остальных функций salmonify не будет запущен. ie. он не печатает оператор, и если я пытаюсь вложить функцию salmonify в другую функцию (чтобы запустить ее для нескольких учебных папок), она останавливается в том же месте.

Я использую linux Убунту 18.04. Функция salmon является самой последней (1.1.0), а R - версией 3.6.

Код:

salmonify_single = function(hardrive, study, index){
  salmon_file = "salmon quant -i "
  code1= " -l A -r fastq_files/"
  code3 = " -o Salmon/quant/"
  name = paste0(hardrive, "/", study, "_data/fastq_files")
  L = list.files(name)

  O = gsub(x = L, pattern = "_1.fastq", replacement = "")
  code4 = O[! duplicated(O)]

  lst = as.list(L)

  lst3 = list()

  for (i in seq_along(lst)) {
    x = lst[[i]]
    lst3[i] = paste0(salmon_file, index, code1, x[1], code3, code4[i])
  }

  for (i in lst3) {
    print(i)
  }

  fold_name = paste0(hardrive, "/", study, "_data")
  setwd(fold_name)

  for (i in lst3) {
    system(i)
  }
  print(paste0("Completed salmonify for ", study))
}

Вывод для печати списка, который будет запускаться с

for (i in lst3) {
    print(i)
  }

:

> salmonify_paired("DATA/RNAseq_Analysis3", 
+                  "dikovskaya", "salmon_index_k31")
[1] "salmon quant -i salmon_index_k31 -l A -1 fastq_files/SRR2095296_1.fastq -2 fastq_files/SRR2095296_2.fastq -o Salmon/quant/SRR2095296"
[1] "salmon quant -i salmon_index_k31 -l A -1 fastq_files/SRR2095297_1.fastq -2 fastq_files/SRR2095297_2.fastq -o Salmon/quant/SRR2095297"
[1] "salmon quant -i salmon_index_k31 -l A -1 fastq_files/SRR2095298_1.fastq -2 fastq_files/SRR2095298_2.fastq -o Salmon/quant/SRR2095298"
[1] "salmon quant -i salmon_index_k31 -l A -1 fastq_files/SRR2095299_1.fastq -2 fastq_files/SRR2095299_2.fastq -o Salmon/quant/SRR2095299"
[1] "salmon quant -i salmon_index_k31 -l A -1 fastq_files/SRR2095300_1.fastq -2 fastq_files/SRR2095300_2.fastq -o Salmon/quant/SRR2095300"
[1] "salmon quant -i salmon_index_k31 -l A -1 fastq_files/SRR2095301_1.fastq -2 fastq_files/SRR2095301_2.fastq -o Salmon/quant/SRR2095301"

Затем начинается функция лосося, и тогда я не могу заставить ее напечатать Completed salmonify for.... Любая помощь здесь будет высоко ценится.

Лучший,

Джеймс

...