# AUTOGENERATED FILE! PLEASE DON'T EDIT
"""
This is for functions that are .sam or .bam related
"""
from k1lib import cli; import k1lib
__all__ = ["cat", "header", "flag"]
settings = k1lib.Settings()
k1lib.settings.cli.add("sam", settings, "from k1lib.cli.sam module");
[docs]def cat(bamFile:str, header:bool=True):
"""Get sam file outputs from bam file.
Example::
sam.cat("file.bam") | display()
:param header: whether to include headers or not"""
return None | cli.cmd(f"samtools view {'-h' if header else ''} {bamFile}") | cli.table("\t")
settings.add("header", k1lib.Settings()
.add("short", ["qname", "flag", "rname", "pos", "mapq", "cigar", "rnext", "pnext", "tlen", "seq", "qual"])
.add("long", ["Query template name", "Flags", "Reference sequence name", "Position", "Mapping quality", "CIGAR string", "Rname of next read", "Position of next read", "Template length", "Sequence", "Quality"]), "sam headers")
settings.add("flags", ['PAIRED', 'PROPER_PAIR', 'UNMAP', 'MUNMAP', 'REVERSE', 'MREVERSE', 'READ1', 'READ2', 'SECONDARY', 'QCFAIL', 'DUP', 'SUPPLEMENTARY'], "list of flags")
[docs]class flag(cli.bindec):
[docs] def __init__(self, f=None):
"""Decodes flags attribute.
Example::
# returns ['PAIRED', 'UNMAP']
5 | flag()
# returns 'PAIRED, UNMAP'
5 | flag(cli.join(", "))
You'll mostly use this in this format::
sam.cat("file.bam", False) | apply(sam.flag(), 1) | display()
You can change the flag labels like this::
settings.cli.sam.flags = ["paired", ...]
:param f: transform function fed into :class:`~k1lib.cli.utils.bindec`, defaulted
to `join(", ")`"""
super().__init__(k1lib.settings.cli.sam.flags, f or cli.join(", "))