Запустите серию команд для нескольких файлов

К сожалению, Maltego поддерживает только Java 8. Вам нужно будет установить среду выполнения Java 8, что можно сделать с помощью следующей команды :sudo apt install openjdk-8-jdk

0
25.01.2021, 23:16
2 ответа

Для каждого имени исходного файла вы немного изменяете его и сохраняете результат в файле с именем оригинала. Используя эту информацию, мы можем построить цикл.

Поместите в файл следующее, напримерdoit

#!/bin/bash
#
for bamsrc in "$@"               # For each item on the command line
do
    prefix="${bamsrc%.bam}"      # Strip off trailing.bam
    result="${prefix##*_}"       # Strip off leading *_
    echo "Processing '$bamsrc' into intermediate bam files and ${result}_20.txt"

    # Perform the processing
    bedtools intersect -abam "$bamsrc" -b CLIA-bed-for-DRAGEN_1.bed > "${prefix}Inter.bam"
    samtools sort "${prefix}Inter.bam" >"${prefix}InterSort.bam"
    samtools depth -a "${prefix}InterSort.bam" -b CLIA-bed-for-DRAGEN_1.bed > "${prefix}InterSortDepth.txt"
    awk '$3<20' "${prefix}InterSortDepth.txt" > "${result}_20.txt"
done

Сделать файл сценария исполняемым

chmod a+x doit

Затем запустите его с именами исходных файлов в виде списка, разделенного пробелами

./doit FC_014_6361.bam FC_014_6462.bam FC_014_6183.bam
2
18.03.2021, 22:34

Вот с чего начать. Не проверял это, но это может помочь вам создать свое решение.

#!/bin/bash
for filename in *.bam;do
    number=$( echo $filename | grep -o '[0-9]\+' )
    bedtools intersect -abam $filename -b CLIA-bed-for-DRAGEN_1.bed > "$filename"Inter.bam
    samtools sort "$filename"Inter.bam > "$filename"InterSort.bam
    samtools depth -a "$filename"InterSort.bam -b CLIA-bed-for-DRAGEN_1.bed > "$filename"InterSortDepth.txt
    awk '$3<20' "$filename"InterSortDepth.txt > "$number"_20.txt
done
0
18.03.2021, 22:34

Теги

Похожие вопросы