
У меня есть анализ для запуска в skatMeta (пакет R). Я получил , runscript.sh
который вызывает myfile.R
запуск анализа. Однако скрипт написан для Linux, а у меня только Windows. Я установил Cygwin, но теперь не знаю, как его запустить. Runscript.sh такой:
for t in `echo A B` ; do
for i in `seq 1 22 ; echo X` ;
do
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=$t chr=$i < ~/bin/skat.R" ;
done ;
done
Может кто-нибудь объяснить, что мне делать? Я совсем запутался, что мне делать: где должны находиться эти файлы, нормально ли, что у меня установлены R и skatMeta для Windows,.. Я даже не знаю, как запустить его из cmd. И пожалуйста, объясните как можно понятнее и проще, так как я понятия не имею об этих вещах (объяснение для чайников).
решение1
Сначала давайте посмотрим, что на самом деле делает скрипт:
Внешний цикл:
for t in `echo A B` ; do
(removed for clarity)
done
Это устанавливает переменную $t в значение A, выполняет остальные команды в цикле, а затем повторяет его с $t, установленным в значение B. Это также делается странным образом с выполнением подоболочки для вывода A и B. Простая команда for t in A B ; do
сделала бы то же самое.
Далее, внутренний цикл.
seq 1 22 ; echo X
seq создаетпоследовательностьвлияние чисел от 1 до 22. ТогдаИксдобавляется. Вы бы записали это в более длинной форме какfor i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 X
Наконец, команды:
Добавьте это к внутреннему коду, и вы получите следующие команды:
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=A chr=1 < ~/bin/skat.R" ;
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=A chr=2 < ~/bin/skat.R" ;
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=A chr=3 < ~/bin/skat.R" ;
...
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=A chr=19 < ~/bin/skat.R" ;
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=A chr=20 < ~/bin/skat.R" ;
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=A chr=X < ~/bin/skat.R" ;
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=B chr=1 < ~/bin/skat.R" ;
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=B chr=2 < ~/bin/skat.R" ;
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=B chr=3 < ~/bin/skat.R" ;
...
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=B chr=19 < ~/bin/skat.R" ;
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=B chr=20 < ~/bin/skat.R" ;
qth "export R_LIBS=~/lib/ ;
R --vanilla --args phenotype=B chr=X < ~/bin/skat.R" ;
Теперь, когда мы знаем, что он делает, вы можете запустить его вручную, написать пакетный файл или скрипт PowerShell. :-)
Вероятно, он будет содержать что-то вроде этого:
C:\program files\SkatMeta\R.exe --vanilla --args phenotype=A chr=1 < %%HOMEPATH%%\bin\skat.R"
C:\program files\SkatMeta\R.exe --vanilla --args phenotype=A chr=2 < %%HOMEPATH%%\bin\skat.R"
C:\program files\SkatMeta\R.exe --vanilla --args phenotype=A chr=3 < %%HOMEPATH%%\bin\skat.R"
Etc etc with chr is 4 5 6 7 8 ... 21 22 X
And then the same for B
Где первая строка - это полный путь к исполняемому файлу R (по умолчанию в Windows это C:\program files\name_of_the_manufacturer\program_name.exe), а ярлык unix для home ( ~
) был заменен на %HOMEPATH%. Последняя строка, вероятно, расширяется до C:/users/your_username, и я заключил его в двойные знаки %, которые необходимы для пакетного файла.
Я оставлю эту часть другому автору, поскольку написание сценариев для Windows — не мой конек.