o
    UÝ¢gÚ  ã                   @  st   U d dl mZ g d¢Zded< d ddddœZded	< e d
d¡Zded< e dd¡Zded< ddd„Z	ddd„Z
dS )é    )Úannotations)ó   Aó   Có   Gó   Tzlist[bytes]ÚNUCSé   é   é   zdict[bytes, int]ÚNUCS_INVERSEs   ACGTacgtRYMKBDHVrymkbdhvs   TGCAtgcaYRKMVHDByrkmvhdbÚbytesÚDNA_CONVERT_TABLEs   ACGUacguRYMKBDHVrymkbdhvs   UGCAugcaYRKMVHDByrkmvhdbÚRNA_CONVERT_TABLEÚseqústr | bytesÚreturnc                 C  s(   t | tƒr
|  d¡} |  t¡ddd… S )zVReverse complement for DNA.

    Included ambiguous nucleotides and retains case.
    ÚasciiNéÿÿÿÿ)Ú
isinstanceÚstrÚencodeÚ	translater   )r   © r   úY/oak/stanford/groups/akundaje/marinovg/programs/cellranger-9.0.1/lib/python/tenkit/seq.pyÚget_rev_comp   s   

r   Ú
keep_startÚintÚkeep_endc                 C  s$   d| | ||…  dt | ƒ|   S )z?Mask the sequence leaving only [keep_start, keep_end) unmasked.ó   N)Úlen)r   r   r   r   r   r   Úmask   s   $r    N)r   r   r   r   )r   r   r   r   r   r   r   r   )Ú
__future__r   r   Ú__annotations__r   r   Ú	maketransr   r   r   r    r   r   r   r   Ú<module>   s   

