o
    Nrf3                     @   sZ   d dl mZ d dlmZ d dlZd dlZd dlmZ dd Z	dd Z
edkr+e
  dS dS )	    )print_functionN)teec                 C   s   t | }t||S )z&s -> (s0, s1), (s2, s3), (s4, s5), ...)iterzip)iterablea r   k/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/../../../bin/chr_pos_to_genome_pos.pypairwise
   s   
r
   c                     s  t jdd} | jdddd | jddd d | jd	d
d d | jddddd |  }|jd ur7t|jnt|jt	j
D ]}zg }|  }i }i }dd |jdD D ]9}||d d  ||d d  dd }dtt fdd|D }	|	||d d <  ||d d < qZt|D ].\}
}|
|v r|jd u r|d g7 }q||jg7 }q|
|v r|||
 g7 }q||g7 }qztdtt| W n ty   Y W  d S w W q@ ty } ztd|| t	jd W Y d }~q@d }~ww d S )Nab  
    
    python chr_pos_to_genome_pos.py -t 1,2:3,4

    Convert chromosome,position pairs to genome_positions. Assumes that the
    coordinates refer to the hg19 assembly (unless otherwise specified).

    Example:

    2       NM_000014       chr12   -       9220303 9268825

    -> python scripts/chr_pos_to_genome_pos.py -c 3:5,3:6

    2       NM_000014       genome  -       2115405269      2115453791

    --------------------------------

    This also works with space-delimited fields:

    chr5    56765,56766

    ->python scripts/chr_pos_to_genome_pos.py -c 1:2

    genome  881683465,881683466

)descriptionz-az
--assemblyZhg19)defaultz-sz--chromsizes-filez-nz--new-chromz-cz	--columnsz1,2zfWhich columns to translate to genome positions. Column pairs should be 1-based and separated by colons)r   helpc                 S   s    g | ]}d d | dD qS )c                 S   s   g | ]}t |qS r   )int).0yr   r   r	   
<listcomp>B   s    z#main.<locals>.<listcomp>.<listcomp>:)split)r   xr   r   r	   r   B   s     zmain.<locals>.<listcomp>,r      c                    s   g | ]}t  t|qS r   )ncZchr_pos_to_genome_posr   )r   posZchromZ
chrom_infor   r	   r   G   s    z
genome({})	z	KeyError:)file)argparseArgumentParseradd_argument
parse_argsZchromsizes_filer   Zget_chrominfo_from_fileZget_chrominfoZassemblysysstdinstripr   columnsjoinmapstr	enumerateZ	new_chromformatprintBrokenPipeErrorKeyErrorstderr)parserargslineZline_outputZ
line_partsZtranslated_positionsZtranslated_chromsZtranslate_pairZpossZ
genome_posipartZker   r   r	   main   sR   


. 

"r2   __main__)
__future__r   Znegspy.coordinatesZcoordinatesr   r    r   	itertoolsr   r
   r2   __name__r   r   r   r	   <module>   s   W
