o
    ;cf                     @   sR   d dl Z d dlZzd dlZW n ey   d dlZY nw d dlT G dd dZdS )    N)*c                   @   sN   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dddZ
dS )MNAEmbeddingc                    s  t d| g  _i }|}t|T}	|	D ]I}
|
 d}|d }|d } j||g t||vr9t |t|< |t| td t||vrQt |t|< |t| td qW d    n1 sgw   Y  t d| g  _	i }|}t|[}	|	D ]P}
zI|
 d}|d }|d } j	||g t||vrt |t|< |t| td t||vrt |t|< |t| td W q   Y qW d    n1 sw   Y  t
|}t
| _g  _|}|}i  _i  _i  _t|dd	d
.}tj|dddgd}|D ]}t|d  j|d < |d  jt|d < qW d    n	1 s3w   Y  t|dd	d
#}tj|dddgd}|D ]}t|d  j|d < qLW d    n	1 sfw   Y  g }g }|D ]}z| j|  W qq   Y qq|D ]}z| j|  W q   Y qt|  _t|  _t| j  _t| j  _dg} fdd|D }t|} fdd|D }d S )NzReading PPI network 1: 	r      specie1zReading PPI network 2: specie2 zutf-8)newlineencodingidname)	delimiter
fieldnamesz
ppi::Humanc                    s   g | ]} j | qS  )relation_map).0treatselfr   4/home/warith/Documents/LMNAKG_2/MNAmaster/mna_emb.py
<listcomp>W   s    z)MNAEmbedding.__init__.<locals>.<listcomp>c                    s   g | ]
}t  j| qS r   )thtensorrelation_emb)r   ridr   r   r   r   Y   s    )printdatasaetnet1openstripsplitappendstrsetadddatasaetnet2nploadr   seedpair
entity_mapentity_id_mapr   csv
DictReaderintr   r   longhumanproteins_idsMouseproteins_ids	human_emb	Mouse_emb)r   ppin1_filenameppin2_filenameentity_emb_filerelation_emb_fileent_idmap_filerel_idmap_fileppiSource_id_DGLKE_ListpidSource_idmap_fileflineitp1idp2idppitarget_id_DGLKE_ListpidTarget_idmap_file
entity_embentity_idmap_filerelation_idmap_filecsvfilereaderrow_valhumanproteins_Initi_idsMouseproteins_Initi_ids	protHuman	protMouse	treatmenttreatment_ridtreatment_embsr   r   r   __init__	   s   





zMNAEmbedding.__init__c                 C      | j | jfS N)r0   r1   r   r   r   r   get_embed_species[      zMNAEmbedding.get_embed_speciesc                 C   s   | j | j| jfS rP   )r(   r   r)   r   r   r   r   !get_entity_relation_map_embrdding]   s   z.MNAEmbedding.get_entity_relation_map_embrddingc                 C   s   t ||d dd| _| jS )Ncosine)num_topsim_measure)get_embedding_similaritiesalignment_matrix)r   r   r   r   r   r   get_embed_similartities`   s   z$MNAEmbedding.get_embed_similartitiesc                 C   rO   rP   )r   r$   r   r   r   r   get_networksd   rR   zMNAEmbedding.get_networksc                 C      | j S rP   )rX   r   r   r   r   get_alignment_embg      zMNAEmbedding.get_alignment_embc                 C   r[   rP   )r'   r   r   r   r   get_seed_pairi   r]   zMNAEmbedding.get_seed_pair皙?c              
   C   s   t |t|k}t |}|jD ];}||d  |d  t|krL| jt| jt	| j
|d   t| jt	| j|d   t||d  |d  g qd S )Nr   r   )r%   nonzerofloatasarrayTr'   r    r!   r)   r,   r.   r/   )r   
resultsembSEED_THRESHOLDzarrcolumnr   r   r   write_to_file_mna_embn   s   

 z"MNAEmbedding.write_to_file_mna_embN)r_   )__name__
__module____qualname__rN   rQ   rS   rY   rZ   r\   r^   ri   r   r   r   r   r      s    Rr   )r*   torchr   cPicklepickleImportErrorMNAmaster.alignmentsr   r   r   r   r   <module>   s    