
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
내가 무엇을 해야 하는지 누군가 나에게 설명해 줄 수 있나요? 나는 무엇을 해야 할지 모두 혼란스럽습니다. 이 파일들이 어디에 있어야 하는지, Windows용 R 및 skatMeta가 설치되어 있으면 괜찮은지, 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 바로 가기( ~
)는 %HOMEPATH%로 대체되었습니다. 마지막은 아마도 C:/users/your_username으로 확장될 것이며 배치 파일에 필요한 이중 % 기호로 캡슐화했습니다.
Windows 스크립팅은 내 장점이 아니기 때문에 이 부분은 다른 포스터에 맡기겠습니다.