This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Piping a bam file to samtools calmd

Is there way to combine these samtools commands:

  1. samtools view -h -F 0x10 <bam>

  2. samtools calmd <bam_from_step_1> <ref.fasta>

I tried this:

samtools view -h -F 0x10 <bam> | samtools calmd <ref.fasta> | samtools view -bS - > <out.bam>

But it doesn't work.

samtools calmd pipe

For one thing, samtools view outputs data in .sam format, not .bam format. So if calmd requires a .bam format, add -b to samtools view top give it a bam.

1 answer

In bash you need to use - to specify that the input is coming from a pipe. You should also add the -S parameter to specify that the input is SAM (or follow the suggestion of @swbarnes2 and output BAM from view instead):

samtools view -h -F 0x10 <bam> | samtools calmd -S - <ref.fasta> | samtools view -bS - > <out.bam>

Log in to answer this question.