
我有一個分析要在 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
for t in A B ; do
這將變數 $t 設為 A,執行循環中的其餘命令,然後將 $t 設為 B 來重複它。做了同樣的事。
接下來是內循環。
seq 1 22 ; echo X
seq 建立一個序列從 1 到 22 的數字的影響。X被添加。你可以把它寫成更長的形式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),並且 home 的 unix 捷徑 ( ~
) 已被 %HOMEPATH% 取代。最後一個可能擴展到 C:/users/your_username ,我將其封裝在批次檔所需的雙 % 符號中。
我將把這部分留給另一位海報,因為 Windows 腳本編寫不是我的強項。