Как указать входные аргументы в Rscript по имени из командной строки? - PullRequest
1 голос
/ 14 апреля 2020

Я новичок в использовании командной строки и не думаю, что этот вопрос был задан в другом месте. Я пытаюсь адаптировать Rscript для запуска из командной строки в сценарии оболочки. По сути, я использую некоторые инструменты в рамках иммканации для чтения и аннотирования некоторых данных NGS антител, а затем для группировки последовательностей в их клональные семейства. Чтобы установить порог сходства, создатели рекомендуют использовать функцию в своем пакете shazam, чтобы установить соответствующий порог.

Я сделал простой скрипт ниже, чтобы прочитать и проверить аргументы:

#!/usr/bin/env Rscript

params <- commandArgs(trailingOnly=TRUE)

### read and validate mode argument
mode <- params[1]
modeAllowed <- c("ham","aa","hh_s1f","hh_s5f")
if(!(mode %in% modeAllowed)){

  stop(paste("illegal mode argument supplied. acceptable values are",
             paste(paste(modeAllowed, collapse = ", "), ".", sep = ""), "\nmode should be supplied first",
             sep = " "))

}

### execute function

cat(threshold)

Скрипт работает, однако для каждого параметра есть только конечное число опций. Мне было интересно, если есть способ передачи аргументов, таких как --mode aa (например) из терминала? Кажется, что вся информация, которую я видел в Интернете, использует код, подобный моему mode <- params[1] сверху, который, я думаю, работает, только если аргумент mode является первым?

...