
    5i|                     X    d dl Z ddlmZ dZdZe j
                  j                  Zd Zd Z	y)    N   )err_exitz#Found following invalid filters: {}z/Too many items given in field {}, maximum is {}c                     t        | t              sy| D ]A  }t        dk(  r$t        |t              rt        |t              r. yt        |t              rA y y)NFr   T)
isinstancelistpython_versionstrunicode)objectitems     /home/marpiech/ifpan-abm-pgxpred/analysis/marpiech-gwas-test/venv/lib/python3.12/site-packages/dxpy/dx_extract_utils/input_validation_somatic.pyis_list_of_stringsr   
   sN    fd# QtS)Zg-FdC(     c                 :   | j                         }|dk(  rtd}h d}t        |      j                  |      sHt        t        j                  t        t        |      j                  t        |                               d|v ry| d   }|j                         }h d}t        |      j                  |      sHt        t        j                  t        t        |      j                  t        |                               d|v rft        |d         st        t        j                  d             t        |d         dkD  rt        t        j                  dd             |d   r|d	z  }d
|v rft        |d
         st        t        j                  d             t        |d
         dkD  rt        t        j                  dd             |d
   r|d	z  }d|v rft        |d         st        t        j                  d             t        |d         dkD  rt        t        j                  dd             |d   r|d	z  }d|v r\t        |d         st        t        j                  d             t        |d         dkD  rt        t        j                  dd             d|v r\t        |d         st        t        j                  d             t        |d         dkD  rt        t        j                  dd             d|v rr| d   }|j                         }ddh}t        |      j                  |      sHt        t        j                  t        t        |      j                  t        |                               d|v rft        |d         st        t        j                  d             t        |d         dkD  rt        t        j                  dd             |d   r|d	z  }d|v rt        |d         st        t        j                  d             |d   D ]%  }	|	dvst        t        j                  d             ' t        |d         dkD  rt        t        j                  dd             d|v r;| d   }
|
j                         }ddh}t        |      j                  |      sHt        t        j                  t        t        |      j                  t        |                               d|v r\t        |
d         st        t        j                  d             t        |
d         dkD  rt        t        j                  dd             d|v r\t        |
d         st        t        j                  d             t        |
d         dkD  rt        t        j                  dd             d |v rt        | d          dkD  rt        t        j                  d d             | d    D ]  }|j                         }d!|v rd"|v rd#|v s(t        t        j                  d              t                t        t        |j                                     rjt        t        j                  d              t                 | d    r|d	z  }d	k7  rt        d$       y y )%Nvariantr   >   allelesamplelocation
annotationr   >   genehgvschgvspsymbolfeaturer   zannotation["symbol"]d      r   zannotation["gene"]r   zannotation["feature"]r   zannotation["hgvsc"]r   zannotation["hgvsp"]r   	allele_idvariant_typezallele["allele_id"]zallele["variant_type"])SNPINSDELDUPINVCNVzCNV:TRBNDz
DUP:TANDEMzDEL:MEzINS:MEMISSINGzMISSING:DELUNSPECIFIEDREFOTHER
   r   	sample_idassay_sample_idzsample["sample_id"]i  zsample["assay_sample_id"]i  r   
chromosomestarting_positionending_positionzaExactly one of "symbol", "gene", feature", "allele_id" or "location" must be provided in the json)keyssetissubsetr   malformed_filterformatr	   
differencer   r   lenmaxitem_messageprintvalues)filterfilter_typer0   required_filter_countexpected_keysannotation_filtersub_keysexpected_sub_keysallele_filterr   sample_filterindiv_locationindiv_loc_keyss                r   validate_somatic_filterrE      s   ;;=Di !F4y!!-0%,,ST1E1Ed=FY1Z-[\]4 &| 4(--/H Ox=))*;<)00S]5M5MdSdNe5f1ghi8#)*;H*EF-445KLM(23c9_334J3OP$X.)Q.)!)*;F*CD-445IJK(01C7_334HMN$V,)Q.)H$)*;I*FG-445LMN(34s:_334KCPQ$Y/)Q.)(")*;G*DE-445JKL(12S8_334I#NO(")*;G*DE-445JKL(12S8_334I#NOt"8,M$))+H!,n =x=))*;<)00S]5M5MdSdNe5f1ghih&)-*DE-445JKL}[12S8_334I#NO -)Q.)))-*GH-445MNO).9 TD  $z  z !1!8!89Q!RST }^45:_334LRPQt"8,M$))+H!,.? @x=))*;<)00S]5M5MdSdNe5f1ghih&)-*DE-445JKL}[12S8_334I#NO H,)-8I*JK-445PQR}%6784?_334OPTUV6*%&,o,,Z<="("4 !/!4!4!6 "^3,>*n<*11*=>J)$~/D/D/F*GH*11*=>J j!%*%!tu "r   )
sys
exceptionsr   r3   r7   version_infomajorr   r   rE    r   r   <module>rK      s5    
 ! 9 C!!''tvr   