У меня есть команда, которую нужно запустить для нескольких комбинаций файлов.Команда выглядит следующим образом:
myscript.pl -output_directory /path/output_"$TARGET_SAMPLE"_vs_"$NORMAL_SAMPLE" -target_sample /path/$TARGET_SAMPLE.bam -normal_sample /path/$NORMAL_SAMPLE.bam
Я хочу выполнить это для нескольких наборов выборок без необходимости каждый раз вручную изменять пути.Прямо сейчас я устанавливаю сэмплы перед тем, как запускать их вручную, как это:
export TARGET_SAMPLE="sample_1"
export NORMAL_SAMPLE="sample_2"
Как мне запустить это, чтобы убедиться, что TARGET_SAMPLE и NORMAL_SAMPLE всегда правильно сопоставлены?Для каждого NORMAL_SAMPLE мне нужно дважды запустить скрипт с двумя разными файлами TARGET_SAMPLE.Я думаю, что использование массива может сработать, но я не знаю, как правильно передать это в цикл for.
Вот несколько примеров пар, которые мне нужно выполнить:
export TARGET_SAMPLE="sample_1"
export NORMAL_SAMPLE="sample_2"
export TARGET_SAMPLE="sample_3"
export NORMAL_SAMPLE="sample_2"
export TARGET_SAMPLE="sample_4"
export NORMAL_SAMPLE="sample_5"
export TARGET_SAMPLE="sample_6"
export NORMAL_SAMPLE="sample_5"
Таким образом, первый пример выходных данных из этого списка комбинаций будет представлять эти команды в оболочке:
myscript.pl -output_directory /path/output_sample_1_vs_sample_2 -target_sample /path/sample_1.bam -normal_sample /path/sample_2.bam
и второй будет:
myscript.pl -output_directory /path/output_sample_3_vs_sample_2 -target_sample /path/sample_3.bam -normal_sample /path/sample_2.bam
Спасибо за вашу помощь.