A Fine-Tuned Universe

디렉토리 내의 모든 fasta 파일로부터 header에 16S를 포함하는 시퀀스만 추출하기 본문

Bioinformatics/Linux

디렉토리 내의 모든 fasta 파일로부터 header에 16S를 포함하는 시퀀스만 추출하기

정재준 2023. 6. 29. 15:46
728x90
#!/bin/bash

search_string="16S"

for file in ./*.fna; do
    while IFS= read -r line; do
        if [[ "$line" == *"$search_string"* ]]; then
            echo "$line" >> "$file.filtered"
            while IFS= read -r inner_line; do
                if [[ "$inner_line" == ">"* ]]; then
                    break
                else
                    echo "$inner_line" >> "$file.filtered"
                fi
            done
        fi
    done < "$file"
done

awk, sed 같은 걸 써야할 것 같았는데... 엄청 간단했다

 

 

LIST