This is a test version of Biostars. For the public version, visit https://www.biostars.org.
convert sam into paf format

I have to convert the aligned sam file to paf for miniasm. Can anyone suggest any tool?

genome alignment sequencing assembly snp

3 answers

Looks like no one has actually read the question correctly. PAF is missing lots of information compared to SAM, because it is a summary of alignment, but it also has easy access to the alignment start and stop coordinates, sequences lengths, etc. Since PAF is less information-dense you cannot convert in both directions, but there's no reason why you can't convert from SAM to PAF.

There are several options:

  1. Use Heng Li's experimental toolkit, htsbox samview -p in.bam: https://github.com/lh3/htsbox
  2. Use paftools sam2paf: https://github.com/lh3/minimap2/blob/master/misc/README.md#introduction
  3. Use this python library: https://bioconvert.readthedocs.io/en/master/_modules/bioconvert/sam2paf.html

I've been looking for the answer to this question, and I am planning on using #2.

I'm not sure how "Matches" are interpreted, but the existence of a sam2paf converter implies that it probably counts all M operations (match "=" or mismatch "X") regardless of the true identity of the reference vs read within the Match block.

Yeah 2 out 3 answers do not address the question!

Thanks @rlorigro for the lead.

Just to provide a (hopefully) straightforward answer, this seems to work well for me:

paftools.js sam2paf in.sam > out.paf

It comes with minimap2, I did not have to install anything on my system.


FYI, paftools.js sam2paf alone returns

Usage: paftools.js sam2paf [options] <in.sam>

Options:

-p convert primary or supplementary alignments only

-L output the cs tag in the long form

Good luck!

Note. Currently paftools.js sam2paf cannot handle spaces in fasta headers.

There is no direct way to do that. Realignment is necessary, see the developers (Ih3) answer here: https://github.com/lh3/minimap2/issues/493 (the first hit when searching for convert sam to paf by the way...).

Here is a section that explains how: https://github.com/lh3/miniasm#getting-started

OP asked for SAM > PAF. And that's what you mention as well, but the Github issue you linked is PAF > SAM !

Log in to answer this question.