Source code for k1lib.cli.sam

# AUTOGENERATED FILE! PLEASE DON'T EDIT HERE. EDIT THE SOURCE NOTEBOOKS INSTEAD
"""
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");
catF = lambda header: cli.applyS(lambda bamFile: None | cli.cmd(f"samtools view {'-h' if header else ''} {bamFile}") | cli.table("\t"))
[docs]def cat(bamFile:str=None, header:bool=True): # cat """Get sam file outputs from bam file. Example:: sam.cat("file.bam") | display() "file.bam" | sam.cat(header=False) | display() :param header: whether to include headers or not""" # cat return catF(header)(bamFile) if bamFile is not None else catF(header) # cat
settings.add("header", k1lib.Settings() # cat .add("short", ["qname", "flag", "rname", "pos", "mapq", "cigar", "rnext", "pnext", "tlen", "seq", "qual"]) # cat .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") # cat settings.add("flags", ['PAIRED', 'PROPER_PAIR', 'UNMAP', 'MUNMAP', 'REVERSE', 'MREVERSE', 'READ1', 'READ2', 'SECONDARY', 'QCFAIL', 'DUP', 'SUPPLEMENTARY'], "list of flags") # header
[docs]class flag(cli.bindec): # flag
[docs] def __init__(self, f=None): # flag """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(", ")`""" # flag super().__init__(k1lib.settings.cli.sam.flags, f or cli.join(", ")) # flag