объединить несколько скриптов bash - PullRequest
0 голосов
/ 18 октября 2019

Я работаю с данными RNAseq и выполняю сопоставление в unix.Si У меня есть несколько отдельных скриптов bash, которые каждый использует в качестве входных данных для вывода предыдущего. Теперь я хочу объединить их все вместе и запустить один скрипт одновременно. Я довольно новичок в среде Unix, и я не знаю, как это сделать, я думаю, это не просто копирование, верно

PS. во-первых, я должен был изменить переменную f на другую, скажем, z

первый скрипт:

for f in `ls ../reads/*.fastq.gz | sed 's/_[12].fastq.gz//g' `

do

hisat2 -x ../genome -1 ${f}_01.fastq.gz -2 ${f}_02.fastq.gz > ${f}.mapped.sam

done

второй скрипт:

for f in `ls  *.mapped.sam|sed 's/.mapped.sam//g' `

do

samtools view -b ${f} > ${f}.mapped.bam

done

1 Ответ

1 голос
/ 18 октября 2019

С одним циклом и подстановкой переменных bash:

for f in `ls ../reads/*.fastq.gz`
do
    f="${f/_[12].fastq.gz/}"
    hisat2 -x ../genome -1 ${f}_01.fastq.gz -2 ${f}_02.fastq.gz | samtools view - -b -o ${f}.mapped.bam
done

Примечание по теме: "Samtools предназначен для работы с потоком. Он рассматривает входной файл - какстандартный ввод (stdin) "

...