У меня есть вирусная РНК в 35 файлах, и мне нужно обработать ее для получения информации.
Я работаю над бархатом. Эта программа работает в Conda Env. Он имеет два шага:
1 бархат - Получите файл, создайте план и выведите его в новый каталог
velveth newDir 29 --create_binary -short -fastq -filename
2 бархат - создать contigs.txt
velvetg /$newDir #where newDir is just a path to dir creating in first steps.
Я не могу написать bash. Я попытался найти некоторые учебники в inte rnet, и я написал что-то вроде этого:
END=32
list = (file1
file2
file3
...
file35)
dir = "assembl"
for i in {1..$END}
do
newDir = ${dir}${i}
velveth newDir 29 --create_binary -short -fastq -${list[i]}
velvetg /$newDir
echo '$i + ${list[i]} >> logs.txt
done
Как видно из U, мне нужно иметь каждый вывод в отдельном каталоге, а в echo '$i + ${list[i]} >> logs.txt
я пытался чтобы вывести выходные данные, чтобы узнать, какой файл был отправлен в какую папку.
Таким образом, каждый файл должен находиться в следующей ассемблере: сборка1, сборка2 и т. д. c.
Но это не работает. Я получил много ошибок, в зависимости от модификации - предварительный доступ запрещен (у меня есть права доступа), каталог не найден и т. Д. c.
Итак, РЕЗЮМЕ: Мне нужно выполнить первый шаг для всех файлов из списка, и каждый выходной файл помещается в отдельный файл. dir (один dir = вывод из одного файла)
Затем мне нужно использовать вторые шаги для этого dirs. Итак, второй шаг должен пройти 35 раз, по одному разу для каждого режиссера.
Я бы в дальнейшем искал решение, но мне нужны результаты довольно скоро, поэтому кто-нибудь может проверить, что я сделал не так с этим сценарием?
Спасибо.
РЕДАКТИРОВАТЬ: После вашего перехода я изменяю его, и я надеюсь, что он работает хорошо. Я имею в виду, я не уверен, что, например, с первого файла go до первого dir et c. Но это работает.
dir="assembl"
for i in {1..32}
do
newDir=${dir}${i}
velveth $newDir 29 -create_binary -short -fastq ${list[i]}
velvetg \$newDir
echo "$i + ${list[i]}" >> logs.txt
done
Спасибо всем!