Я пытаюсь запустить какое-то программное обеспечение для биоинформатики для набора файлов, но инструмент неожиданно завершает работу, когда я отправляю его с slurm, по-видимому, из-за неправильной доставки списков входных файлов. Если я запускаю его в командной строке, это, кажется, работает. Я заменил некоторые имена файлов игрушек ниже, потому что реальные имена очень длинные. Инструмент называется rMAT, но сам инструмент не имеет отношения к моей проблеме.
Я использую файл .sbatch для отправки задания в кластер из командной строки следующим образом:
sbatch job.sbatch group1.txt group2.txt
Где два текстовых файла содержат разделенный запятыми список файлов данных. В файле .sbatch я передаю переменные в инструмент биоинформатики следующим образом:
#!/bin/bash
#SBATCH --time=00:00:20
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH -o ./o.%j
#SBATCH --err ./e.%j
#SBATCH --account=owner-guest
#SBATCH --partition=server-guest
bioinfotool.py -arg1 `more group1.txt` -arg2 `more group2.txt`
Я делаю это таким образом, потому что инструмент биоинформатики, по-видимому, не может непосредственно проанализировать текстовый файл.
Однако, это все еще не работает, и я думаю, что это из-за моего использования обратных галочек и команды more. Я пытаюсь отладить, добавив оператор echo
echo `more group1.txt`
Вывод должен быть
sample1.bam,sample2.bam,sample3.bam
однако фактический результат равен
:::::::::::::: group1.txt :::::::::::::: sample1.bam,sample2.bam,sample3.bam
Таким образом, мне кажется, что эта необъяснимая строка запятой + имя файла + строка запятой добавляется к моему списку файлов, прежде чем она передается в инструмент биоинформатики.
Гуглить такие вещи, как "цепочка запятых" + slurm ", было бесполезно, поэтому я прибегаю к публикации собственного вопроса.
Откуда эти запятые? Есть ли лучший способ извлечь строку имени файла из текстового файла?
Спасибо
Редактировать: Использование «кошка» вместо «больше» решает проблему.