
    tf4                     ^    d dl mZ d dlmZ d dlZd dlZd dlmZ d Z	d Z
edk(  r e
        yy)    )print_functionN)teec                 0    t        |       }t        ||      S )z&s -> (s0, s1), (s2, s3), (s4, s5), ...)iterzip)iterableas     l/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/../../../bin/chr_pos_to_genome_pos.pypairwiser   
   s    XAq!9    c                     t        j                  d      } | j                  ddd       | j                  ddd        | j                  d	d
d        | j                  dddd       | j                         }|j                   t        j                  |j                        }nt        j                  |j                        }t        j                  D ]  }	 g }|j                         j                         }i }i }|j                  j                  d      D 	cg c]*  }|j                  d      D 	cg c]  }	t        |	       c}	, c}	}D ]  }
||
d   dz
     ||
d   dz
     j                  d      j                  d      }}dj                  t!        t"        |D cg c]"  }t        j$                  |t        |      |      $ c}            }|||
d   dz
  <   |||
d   dz
  <    t'        |      D ]P  \  }}||v r3|j(                  |dj+                        gz  },||j(                  gz  }=||v r
|||   gz  }K||gz  }R 	 t-        dj                  t!        t"        |                    y c c}	w c c}	}w c c}w # t.        $ r Y  y w xY w# t0        $ r6}t-        d||j                         t        j2                         Y d }~d }~ww xY w)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
--assembly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   help,:r      z
genome({})	z	KeyError:)file)argparseArgumentParseradd_argument
parse_argschromsizes_filencget_chrominfo_from_fileget_chrominfoassemblysysstdinstripsplitcolumnsintjoinmapstrchr_pos_to_genome_pos	enumerate	new_chromformatprintBrokenPipeErrorKeyErrorstderr)parserargs
chrom_infolineline_output
line_partstranslated_positionstranslated_chromsxytranslate_pairchromposspos
genome_posipartkes                     r
   mainrC      s   $$ 2 F6 lF;
14@
mT:
k5E  F D'//0D0DE
%%dmm4
		 (B'	BK++-J#%  "LPLLL^L^_bLc"dqQWWS\#BCG#B"d 
? (q(9!(;<jXYIZ[\I\>]>c>cdg>h>n>nor>sd XXc#qu.vjmr/G/GPSTWPXZd/e.v&wx
 =G$^A%6q%899>!."3A"56
? $J/ *$))~~-#(;(;E(B'CC#'77..  $8$;#<<K  D6)K*diiC 567G(B $C"d
 /w0 #   	B+r4::<cjjAA	Bsi   AJI72I2I7	AJ'I=BJ(J2I77J	JJJJ	K+KK__main__)
__future__r   negspy.coordinatescoordinatesr   r    r   	itertoolsr   r   rC   __name__ r   r
   <module>rK      s5    %  
  
TBn zF r   