У меня есть скрипт, который я хочу запустить несколько раз с разными параметрами. Для этого у меня есть текстовый файл (так называемый контраст.txt), который выглядит следующим образом:
LCL CO1 T14C1 Nicotine LCL_T14C1_vs_CO1
LCL CO1 T15C1 Copper LCL_T15C1_vs_CO1
LCL CO1 T27C1 Cadmium LCL_T27C1_vs_CO1
LCL CO2 T6C1 VitaminA LCL_T6C1_vs_CO2
LCL CO1 T19C1 Selenium LCL_T19C1_vs_CO1
и несколько других строк в том же формате.
Мой скрипт - script.sh,который должен быть представлен как задание для каждой строки, передавая каждый раз 3 переменные:
- Столбец 1 (LCL)
- Столбец 5
- Столбец 5 с последующим.txt (в основном другие файлы, которые я использую в качестве контраста для скрипта)
Для этого я запускаю в командной строке следующее:
cat contrasts.txt | while read c1 c2 c3 c4 c5; do qsub -q erprq script.sh -v (META=$c5.txt, CELL=$c1, SUB=$c5); done
Если я добавлю echo перед qsubчтобы проверить, в порядке ли мои переменные, я получаю ожидаемый результат:
qsub -q erprq intron_excision_analysis.sh -v META=LCL_T14C1_vs_CO1.txt -v CELL=LCL -v SUB=LCL_T14C1_vs_CO1
qsub -q erprq intron_excision_analysis.sh -v META=LCL_T15C1_vs_CO1.txt -v CELL=LCL -v SUB=LCL_T15C1_vs_CO1
qsub -q erprq intron_excision_analysis.sh -v META=LCL_T27C1_vs_CO1.txt -v CELL=LCL -v SUB=LCL_T27C1_vs_CO1
qsub -q erprq intron_excision_analysis.sh -v META=LCL_T6C1_vs_CO2.txt -v CELL=LCL -v SUB=LCL_T6C1_vs_CO2
qsub -q erprq intron_excision_analysis.sh -v META=LCL_T19C1_vs_CO1.txt -v CELL=LCL -v SUB=LCL_T19C1_vs_CO1
Внутри script.sh у меня есть следующее:
mkdir -p ${CELL}/${SUB}
cd ${CELL}/${SUB}
EXON=/wsu/home/groups/piquelab/Alan/splicing/genomes/leafcutter/hg38_exon.txt.gz
CLUSTER=/wsu/home/groups/piquelab/Alan/splicing/leafcutter/CM/LCL_IPSC_CM_together_perind_numers.counts.gz
CONTRAST=/wsu/home/groups/piquelab/Alan/splicing/leafcutter/bam/meta/${META}
module load R/3.6.1
/wsu/home/groups/piquelab/Alan/splicing/leafcutter/scripts/leafcutter_ds.R --num_threads 10 --exon_file=${EXON} ${CLUSTER} ${CONTRAST}
Но он не создает папки, ине удается найти файл / wsu / home / groups / piquelab / Alan / splicing / leafcutter / bam / meta / $ {META} (хотя расположение правильное). Если я запускаю этот скрипт для одного файла по отдельности, он работает, но кажется, что я не могу передать эти 3 переменные (объяснил бы, почему он даже не создает папки).
Есть идеи, как это сделать? Большое спасибо заранее.