Вывести обработку каждого файла в отдельные каталоги в bash - PullRequest
1 голос
/ 30 марта 2020

У меня есть вирусная РНК в 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

Спасибо всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...