
    v*Hdv,                     ^   d dl mZ d dlmZ ddlmZ d dlZd dlZd dlZd dl	Z	dZ
ej                            ej                            ej                            e                              Zej                            ed          Z e	j         eed                    Zej                            ed	          Z e	j         eed                    Z ee          Zi dd
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*i d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d
d
ddddddddddddddi ddddddd d d"d"d$d$d&d&d(d(d*d*d,d,d.d.d0d0d2d2d4d4d6d6d8d8d:d:i d<d<d=d
d>dd?dd@ddAddBddCddDddEddFddGddHd dId"dJd$dKd&dLd(i dMd*dNd,dOd.dPd0dQd2dRd4dSd6dTd8dUd:dVd<dWd
dXddYddZdd[dd\dd]di d^dd_dd`d
daddbddcdddddeddfddgddhddid6djd8dkd:dld<dmd6dnd8i dod6dpd8dqd:drd<dsd6dtd8dud6dvd8dwd:dxd<dyd6dzd8d{d6d|d8d}d:d~d<dd6d8d:d:d:d:d:d:dZi dd dddddddddddddddddddddddddd!dd#dd%dd'Zg dZd dddddddddd
Zd Zd ZdS )    )HttpResponse)render   )	QueryFormNDEBUGz$all_protein_coding_gene_name.set.pklrbzddi_score_for_website.dict.pkl1   2   3   4   5   6   7   8	   9
   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26chr1chr2chr3chr4chr5chr6chr7chr8chr9chr10chr11chr12chr13chr14chr15chr16chr17chr18chr19chr20chr21chr22chr23chr24chr25chr26chr01chr02chr03chr04chr05chr06chr07chr08chr09010203040506070809xyxymt0x0yXYXYMT0X0Ychrxchrychrxychrmtchr0xchr0ychrXchrYchrXYchrMTchr0X)chr0YchrMmitoMmchrmMitogndmDDIdmnamedmfullDDI_ranklen_dmlen_cdsmis_cdsmis_dm
enrichmentpath_count_dmpath_count_geneorchrposstrand)
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   c                 v  "#$ d}d}d}d}g }g }g }g d}| j         dk    rt          | j                  }	|	                                rd}
|	j        d                                                                         }t          j        d          }t          j        d          }t          j	        ||
                                          }t          j	        ||
                                          }|s|r	 |                                \  }}}n #  |                                \  }}|}Y nxY wt          j        d	d|          }t          j        d	d|          }t          |         }	 t          |          dz   }t          |          }n	#  d
}
Y nxY w|
r| d| d| }dt           d| d|dz
   d| d	}t!          j        |                                                                                              d          }t)          d|           i }|D ]}	 |                    d          \  }}$}t          |          }t          |          }n#  t)          d|            d
}
Y TxY w	 ||         d
         |k    r|||         d
<   n#  ||$g||<   Y nxY w||         d         |k     r|||         d<   t+                      }|                                D ]\  }}|                    d          \  #}|\  }}$$ d# }||vr|                    |           nE	 #$fdt0          D             }n#  t)          d$ d#            Y txY w|                    |||g           |                    |           |rdddt7          |          d
         d                  }t9          |d |          }d |D             }|                    d d!           |                    d d"           |                    d d#           |                    d$ |D                        ndt           d%| d|dz
   d| d&	}t!          j        |                                                                          }|sd'}n|                    d          }t)          |           |d
                             d          } | d(         $| d)         }!d*|! d+$ d,}n7|t<          v r|}|                    d d#           |t>          vrd
}d-}nt7          t@          |         !                                          } | D ]R""tD          d.                  }"fd/t0          D             }|                    |           |                    |           Sdddt7          |          d
         d0                  }t9          |d1 |          }d2 |D             }|                    d3 |D                        n"d
}d4}|}nd
}d}d}d5}nd
}d}t                      }	tG          | d6|	||||||t+          |          |d7	          S )8NCACNA1A r   )r   zDDI rankGenezDomain NamezDomain Full NamezPfam IDPOSTgenez.^(?:chr)?([\dxymt]+)[:\-]([\d ,]+)\-([\d ,]+)$z&^(?:chr)?([\dxymt]+)[:\-]([\d ,]+)\S*$z[, ]r   :-z;/var/www/html/miniconda/bin/bedtools intersect -a stdin -b z$/static/files/range_dm.bed -wb <<<$'	z'|cut -f 2,3,7,8 2>/dev/null
zres=z error spliting  bedtools result #_c                 X    g | ]&}t                             t          |                  'S  )ddimap_ddi).0r   idmigns     ./data/website_data/www/html/ddi/myapp/views.py
<listcomp>zhome_view.<locals>.<listcomp>   s*    &c&c&cQs3x}WQZ'@&c&c&c    z5 this domain is not included in the DDI result : gn= z, dm = FT)+r   c                     | d         S )Nir   r   s    r   <lambda>zhome_view.<locals>.<lambda>   
    QrU r   )keyreversec                 ,    g | ]fd dD             S )c                      g | ]
}|         S r   r   r   r   is     r   r   z(home_view.<locals>.<listcomp>.<listcomp>   s    'U'U'U!'U'U'Ur   )	r   r   r
   r   r   r   r   r   r   s    @r   r   zhome_view.<locals>.<listcomp>   s0    &o&o&oZ['U'U'U'U6T'U'U'U&o&o&or   r
   Query_Match_EndQuery_Match_StartChromc                 6    g | ]}|d          dk    |d         S )NAr
   r   r   r   s     r   r   zhome_view.<locals>.<listcomp>   %    (Q(Q(Q!1R5D==1===r   z0/static/files/range_cds_and_intron.bed -wb <<<$'z '|cut -f 2,3,5,6,7,8 2>/dev/nullzE<div id="error"><span>The query range is outside of gene</span></div>r   r   z[<div class="error"><span style="background: #ff8f6b;font-size:20px">The query range is the z region of gene z0, but outside of Pfam domain region</span></div>z1<div id="error"><span>Gene not found</span></div>r   c                 6    g | ]}t           |                  S r   )r   )r   r   dm_tmps     r   r   zhome_view.<locals>.<listcomp>   s"    "X"X"X!6'!*#5"X"X"Xr   r   c                     | d         S )Nr   r   r   s    r   r   zhome_view.<locals>.<lambda>   r   r   c                 ,    g | ]fd dD             S )c                      g | ]
}|         S r   r   r   s     r   r   z(home_view.<locals>.<listcomp>.<listcomp>   s    'M'M'M!'M'M'Mr   )r   r   r   r
   r   r   r   r   r   s    @r   r   zhome_view.<locals>.<listcomp>   s0    &g&g&gRS'M'M'M'M6L'M'M'M&g&g&gr   c                 6    g | ]}|d          dk    |d         S )r   r   r
   r   r   s     r   r   zhome_view.<locals>.<listcomp>   r   r   zM<div id="error"><span>not a protein coding gene or invalid input</span></div>z0<div id="error"><span>Invalid Input</span></div>zt.html)	form	igv_query
query_iteminput_errorinput_error2validz_resultclinvar_genetable_header)$methodr   r   is_validcleaned_datastripupperrecompilematchlowergroupssubchrmapintBASE_DIRospopenreadsplitprintsetitemsaddselected_fields_ddi_dictextendappendlistsortedinsert	hgnc_dict
ddi_gn_setr   valuesr   r   )%requestr   r   r   r   r   z_result_sortedr   r   r   normalr   	reg_rangereg_range_single_positonm_range1m_range2chr_pos_spos_ecmdres	query_tmpiresq_sq_eidm_raw	check_dupvidm_snkddi_resreverse_tagtmpregionr   r   r   s%                                     @@@r   	home_viewr  O   s   IKLEHOL  L ~&&==?? P	MF*6288::@@BBJ 
#TUUI')z2['\'\$x	:+;+;+=+=>>Hx 8*:J:J:L:LMMH '8 '")1):):&D%""*//"3"3KD%!EEEvr511vr511d|JJqLEJJEEFFF  -1#' 9 9% 9 9% 9 9I AZb  A  A  IM  A  A  QV  WX  QX  A  A  \a  A  A  AC(3--,,..4466<<TBBC&%%% "I # 8 8%59ZZ5E5E2Cc7"%c((C"%c((CC%!"KT"K"KLLL%&F$HA(1!4s::8;	' 21 5A25sCIg...$W-a036647Ig.q1 !$I&/oo&7&7 1 1
&-mmC&8&8V()S#"NNSNNI--%MM!,,,,$%&c&c&c&c&cJb&c&c&cGG%!"kZ]"k"kfi"k"klll$HS$'7888 0000
  S(-D"9"9$x..:KB:O"PK&,X??T_&`&`&`O&o&o_n&o&o&oO ''+<=== ''+>??? ''7333 ''(Q(Qx(Q(Q(QRRRR QZb  Q  Q  UY  Q  Q  ]b  cd  ]d  Q  Q  hm  Q  Q  QC(3--,,..4466C S&m!iiooc


!!fll400!"g!$R (S  FL  (S  (S  ^a  (S  (S  (S y((&	##Aw///Z//E"UKK s:557788C"% 1 1%gen5"X"X"X"X?W"X"X"Xt,,, 0000 ).D"9"9$x..:KB:O"PK&,X??T_&`&`&`O&g&gWf&g&g&gO !''(Q(Qx(Q(Q(QRRRRm&		 E"J!ILKK 
{{"$&('--(
	 
	  s<   :D D0-!F F8II/3J
J&L;;Mc                     t          |           D ])}t          d|           }t          | d| d           *t          d          S )Nzrequest.z  = z
**************
z<p> this is the test page <p>)direvalr   r   )r   argskwargsr   r   s        r   	test_viewr  
  s[    \\ 1 1>a>>""/////00008999r   )django.httpr   django.shortcutsr   formsr   r   r   loggingpickle	log_levelpathdirnameabspath__file__r   joinfnloadopenr   r   r   r   r   r   r   map_zresultr  r  r   r   r   <module>r"     sS   $ $ $ $ $ $ # # # # # #       				 				   	7??27??27??8+D+DEEFFW\\(BCCFKR''	W\\(<==fk$$r4..!!SXX

7!S 
7!S 
7!S 
7!S 
7!S 
7!S 
7!S 
7!S 
7!S 
7RTVZ 
7\^`d 
7fhjn 
7
d
7
7 $
7(*D
724d
7 
7<>
7FH$
7PRTX
7Z\^b
7dfhl
7nprv
7
d
7
7 $
7(+S
725s
7<?
7FI3
7PSUX
7Z]_b
7dgil
7nqsv
7 
7 
7 s
7 $
7 !%d
7 -1$
7 9=d
7 EI$
7 QUVZ
7 ]abf
7 imnr
7 	
7 D	
7 #'	
7 /3D	
7 ;?	
7 GKD	
7 SWX\	
7 _cdh	
7 
7 
7 kopt	
7
 #
7
 s
7
 %+C
7
 28
7
 ?Ec
7
 LRSV
7
 Y_`c
7
 flmp
7 #
7 
7 '.t
7 6=d
7 ELT
7 T[\`
7 cjko
7 4
7 
7 
7 !$
7 )0
7 8?
7 GNt
7 V]^b
7 elmq
7 4
7 !$
7 )0
7 8?
7 GNs
7 U\]`
7 cjkn
7 3
7  
7 '.s
7 5<S
7 
7 
7 CJ3
7 QXY\
7 _cdg
7 jnor
7 
7 3
7 !%c
7 ,0
7 7;C
7 BFs
7 MQRU
7 X[\`
7 cfgk
7 nrsw
7 
7 D
7 #'
7 
7 
7 /24
7 :=d
7 EI$
7 QUVZ
7 ]abf
7 imnr
7 $
7 
7 '.t
7 6=d
7 ELT
7 T[\`
7 cijn
7 $
7  
7 (/
7 7>t
7 
7 OS\`jn
T4
7 
7 
7"4 !	1 a a	
  a q q a " R r 	" 
2 
2  b!$ mll 


 
x x xv: : : : :r   