o
    Nrf"                     @   s   d dl Z d dlmZ d dlZd dlZddlmZ ddlmZ ddl	m
Z
 e ejddd	ejd
dd	ejddd	ejddddejdddddddejddeddgdde
ddd ZdS )     N   )util   )cli)exit_on_broken_pipe
chromsizesZCHROMSIZES_PATH)metavarfastaZ
FASTA_PATHenzymeZENZYMEz--outz-oz Output file (defaults to stdout))helpz--headerz-Hz2Print the header of column names as the first row.TF)r   Zis_flagdefaultZshow_defaultz	--rel-idsz-i01ziInclude a column of relative bin IDs for each chromosome. Choose whether to report them as 0- or 1-based.)typer   c                 C   s  t j| dd} t|  }t|r(tt|d}|tt|d n|g}t j	|g|R  }t 
||}	|durU|	d |	d< t|dkrU|	d  d7  < |du r]tj}
nt|d	}
|rr|	d
d
 j|
ddddd |	j|
ddddd |
  dS )ab  
    Generate fragment-delimited genomic bins.

    Output a genome segmentation of restriction fragments as a BED file.

    CHROMSIZES_PATH : UCSC-like chromsizes file, with chromosomes in desired
    order.

    FASTA_PATH : Genome assembly FASTA file or folder containing FASTA files
    (uncompressed).

    ENZYME : Name of restriction enzyme

    T)Z	all_namesz*.faz*.fastaNZchromidr   wr   	
F)seplineterminatorindexheader)r   Zread_chromsizeslistkeysopisdirglobjoinextendZ
load_fastadigestgroupbyZcumcountintsysstdoutopenZto_csvflush)r   r	   r
   outr   Zrel_idsZchromsZ	filepathsZfasta_recordsZfragsf r(   Z/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/cooler/cli/digest.pyr      s*   $


r   )r   Zos.pathpathr   r"   Zclick r   r   Z_utilr   commandargumentoptionZChoicer   r(   r(   r(   r)   <module>   s8    