
    5i                     N    d dl Z d dlZd dlmZ d dlmZmZ d dlZ G d de      Zy)    N)DXHTTPRequest)DXRecordDXFilec                        e Zd Zd fd	Zed        Zed        Zed        Zed        Z	ed        Z
ed        Zed        Zed	        Zed
        Zd Zd Zd Zd Z xZS )Datasetc                 z    t         t        |   |       || _        || _        d | _        |rd|vrt        d      y y )Ndetailsz.detail is expected key in detail_describe_dict)superr   __init__
dataset_id_detail_describe_visualize_info
ValueError)selfr   detail_describe_dict	__class__s      ~/home/marpiech/ifpan-abm-pgxpred/analysis/marpiech-gwas-test/venv/lib/python3.12/site-packages/dxpy/bindings/apollo/dataset.pyr   zDataset.__init__	   sK    h&z2$ 4# 44 !QRR 5      c                     | j                  dddh      }d }d|d   v }|r|}|d   d   d   }t        |      }||fS t        | j                  |      }||fS )	NT
propertiesr	   default_fieldsfieldsCohortBrowsertypesdataset$dnanexus_link)describer   id)
record_objrecord_obj_desccohort_info	is_cohortr   dataset_objs         r   resolve_cohort_to_datasetz!Dataset.resolve_cohort_to_dataset   s    $--y(A . 
 #w'??	)K(3I>?OPJ!*-K K'' "*--AKK''r   c                 ,    | j                   d   d   d   S )Nr	   
descriptorr   )detail_describer   s    r   descriptor_filezDataset.descriptor_file$   s    ##I.|<=MNNr   c                 l   t         j                  j                  dk(  }t        | j                  d| j
                        j                         }|r<dd l}|j                  |      }t        j                  |      }|j                         }nt        j                  |      }t        j                  |      S )N   rb)modeprojectr   )fileobj)sysversion_infomajorr   r*   
project_idreadStringIOgzipGzipFile
decompressjsonloads)r   
is_python2contentr6   xfile_objs         r   descriptor_file_dictzDataset.descriptor_file_dict(   s    %%++q0
  tT__

$& 	 !!'*A}}Q/HmmoG oog.Gzz'""r   c                     | j                   .t        d| j                  z   dz   | j                  dd      | _         | j                   S )N/z
/visualizeF)r/   cohortBrowser)r   r   r   r4   r)   s    r   visualize_infozDataset.visualize_info;   sF    '#0doo%4 OOeD$D  ###r   c                 <    | j                   }|j                  d      S )Nurl)rD   get)r   vis_infos     r   vizserver_urlzDataset.vizserver_urlD   s    &&||E""r   c                 8    | j                   j                  d      S )Nr/   r(   rG   r)   s    r   r4   zDataset.project_idI   s    ##''	22r   c                 V    | j                   j                  d      j                  d      S )Nr	   versionrK   r)   s    r   rM   zDataset.versionM   s$    ##''	266yAAr   c                 f    | j                   | j                  dddh      | _         | j                   S )NTr   r	   r   )r   r   r)   s    r   r(   zDataset.detail_describeQ   s<      ($(MM#\9,E %2 %D! $$$r   c                 0   | j                   d   }i }t        t        |            D ]m  }||   d   }||   d   |||   d   ||   j                  d      ||   j                  d      d}||j	                         vrg ||<   ||   j                  |       o |S )Nassaysgeneralized_assay_modelnameuuid	referencegeneralized_assay_model_version)rR   indexrS   rT   rU   )r@   rangelenrG   keysappend)r   rP   assays_info_dictrV   model
assay_dicts         r   r[   zDataset.assays_info_dictY   s    **843v;' 	7E5M";<Euf-uf-#E]..{;39%=3D3D54J ,1133*, 'U#**:6	7"  r   c                 l    | j                   j                         D ]  }|D ]  }|d   |k(  s|c c S   y )NrS   r[   values)r   
assay_uuid
assay_listassays       r   assay_info_dictzDataset.assay_info_dictq   s@    //668 	!J# !=J. L!	!r   c                     g }| j                   j                  |      r4| j                   j                  |      D ]  }|j                  |d           |S )NrR   )r[   rG   rZ   )r   
assay_typeassay_names_listrc   s       r   rg   zDataset.assay_names_listw   sT      $$Z0..22:> 7 ''f67r   c                 (    || j                  |      v S N)rg   )r   
assay_namerf   s      r   is_assay_name_validzDataset.is_assay_name_valid~   s    T22:>>>r   c                 v    | j                   j                         }|D ]  }|D ]  }|d   |k(  s|d   c c S   y )NrR   rV   r_   )r   rj   assay_lists_per_modelmodel_assaysrc   s        r   assay_indexzDataset.assay_index   sK     $ 5 5 < < >1 	*L% *=J. >)*	*r   ri   )__name__
__module____qualname__r   staticmethodr%   propertyr*   r@   rD   rI   r4   rM   r(   r[   rd   rg   rk   ro   __classcell__)r   s   @r   r   r      s    S ( (  O O # #$ $ $ # # 3 3 B B % %    .! ?*r   r   )	r1   r7   dxpyr   dxpy.bindingsr   r   r:   r    r   r   <module>ry      s"    
   * ~*h ~*r   