This is a test version of Biostars. For the public version, visit https://www.biostars.org.
How to remove bam files that don't contain matching reads

Dear Biostars,

I have 45 directories, each containing 2500 bam and 2500 bam.bai files. Each bam file represents alignment results from aligning (shotgun metagenomic) sequences to a reference fasta file. Many of the bam files are empty and only contain the header and no matching/aligned reads. Is there a way to remove these bam files that don't contain matching reads?

Cheers,

Sam

bowtie2 samtools bam

1 answer

check with :

 find /path/to/dir -type f -name "*.bam" | while read F; do samtools view  ${F} | grep -v  -E '^@' -m1 > /dev/null || echo $F; done

then replace echo with rm

May I suggest to use samtools view -H ${F} so only the header will be extracted and inspectioned ?

Log in to answer this question.