B
    rØ`u  ã               @   sP   d dl mZ dd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Z	dS )é    )Ú
sqlConnectc             C   sL   g }t | ƒ}t ¡ }x2|D ]*}d |¡}| |¡}| |d |i¡ qW |S )NaE  SELECT BodySite, FORMAT(disease_num, 0) disease_num, FORMAT(loaded_run_num, 0) loaded_run_num, FORMAT(QC_0_num, 0) QC_0_num, FORMAT(QC_1_num, 0) QC_1_num, FORMAT(run_num, 0) run_num, FORMAT(species_num, 0) species_num, FORMAT(genus_num, 0) genus_num, FORMAT(project_num, 0) project_num FROM mbodymap_intro WHERE BodySite="{}"ZPhenotypeIntro)Ú
handleSiter   ÚMySQLConnectionÚformatÚqueryOneÚappend)ÚsiteÚresultÚsiteListÚconnectÚitemZ	sql_introZ
site_intro© r   úVC:\Users\Administrator\Desktop\mbodymap\mbodymap-server\service\bodySitePageService.pyÚ	introData   s    

r   c             C   s‚  g }t | ƒ}t ¡ }xf|D ]\}d |¡}| |¡}g }x*|D ] }|d dksB|d d krbqBd |d ¡}	| |	¡d }
d |d |¡}| |¡d }d |d |¡}| |¡d	 }d
}d |d |¡}| |¡}t|ƒ}x |D ]}|d dkræ|d7 }qæW d ||d ¡}| |¡d }d ||d ¡}| |¡d }| |d |
d |¡|||||dœ¡ qBW | |d |i¡ qW |S )NzASELECT DISTINCT disease FROM mbodymap_samples WHERE BodySite="{}"ÚdiseaseZNAz)SELECT term FROM mesh_data WHERE uid="{}"Útermz…SELECT COUNT(run_id) run_id_num, COUNT(DISTINCT project_id) project_id_num FROM mbodymap_samples WHERE disease="{}" AND BodySite="{}"Z
run_id_numzkSELECT COUNT(DISTINCT project_id) project_id_num FROM mbodymap_samples WHERE disease="{}" AND BodySite="{}"Zproject_id_numr   zžSELECT accession_id,QCStatus,uid FROM mbodymap_loaded_samples WHERE accession_id IN (SELECT run_id From mbodymap_samples WHERE disease="{}" AND BodySite="{}")ZQCStatusé   zjSELECT COUNT(DISTINCT ncbi_taxon_id) from mbodymap_species_to_samples WHERE BodySite="{}" AND disease="{}"zCOUNT(DISTINCT ncbi_taxon_id)zhSELECT COUNT(DISTINCT ncbi_taxon_id) from mbodymap_genus_to_samples WHERE BodySite="{}" AND disease="{}"z{:,})r   Údisease_nameÚrun_numÚprocessed_numZ	valid_numÚspecies_numÚproject_numZ	genus_numZPhenotypeTbl)r   r   r   r   Úqueryr   Úlenr   )r   r	   r
   r   Z	site_itemÚsql_diseaseZsite_diseaseZsite_resultr   Zsql_disease_namer   Zsql_runsZruns_numr   ZvalidZsql_loaded_runsZloaded_runsr   Z
loaded_runZsql_speciesZspeciesZ	sql_genusZgenusr   r   r   ÚtblData   sV    



r   c             C   s,   | dkrdddgS | dkr"ddgS | gS d S )NzLarge intestineÚRectumÚColonÚCecumzSmall intestineÚIleumÚDuodenumr   )r   r   r   r   r   Z   s
    
r   c             C   sÄ   t  ¡ }|dkrXd | ¡}| |¡}xš|D ](}d |d ¡}| |¡d }||d< q*W nhd | ¡}| |¡}d}	g }xJ|D ]B}|	dk rzd	 |d ¡}
| |
¡}|rzt|ƒ | |¡ |	d
7 }	qzW |S )NÚidz€SELECT DISTINCT ncbi_taxon_id,taxon_rank_level from mbodymap_relative_species_abundances where ncbi_taxon_id LIKE "{}%" limit 10z6SELECT name FROM biosql_taxon_2 WHERE ncbi_taxon_id={}Zncbi_taxon_idÚnamezbSELECT DISTINCT name, node_rank, ncbi_taxon_id from biosql_taxon_2 where name LIKE "%{}%" LIMIT 20r   é
   zKSELECT * FROM mbodymap_relative_species_abundances where ncbi_taxon_id="{}"r   )r   r   r   r   r   Úprintr   )ÚsearchInputÚ	searchOptr   ÚsqlÚsearchResultr   Úsql_namer"   r	   ÚiÚ	sql_existÚexistr   r   r   Ú
searchTaxac   s0    






r-   c             C   sÄ   t  ¡ }|dkrXd | ¡}| |¡}xš|D ](}d |d ¡}| |¡d }||d< q*W nhd | ¡}| |¡}d}	g }xJ|D ]B}|	d	k rzd
 |d ¡}
| |
¡}|rzt|ƒ | |¡ |	d7 }	qzW |S )Nr!   zOSELECT DISTINCT disease from mbodymap_samples where disease LIKE "{}%" limit 10z)SELECT term FROM mesh_data WHERE uid="{}"r   r   r"   zHSELECT DISTINCT term, uid from mesh_data where term LIKE "%{}%" LIMIT 20r   r#   z1SELECT * FROM mbodymap_samples where disease="{}"Úuidr   )r   r   r   r   r   r$   r   )r%   r&   r   r'   r(   r   r)   r"   r	   r*   r+   r,   r   r   r   ÚsearchPhenotype   s*    







r/   c             C   s    t  ¡ }d | ¡}| |¡}|S )Nz>SELECT BodySite FROM mbodymap_intro WHERE BodySite LIKE "%{}%")r   r   r   r   )r%   r   r'   r	   r   r   r   ÚsearchBodysiteš   s    

r0   c             C   s    t  ¡ }d | ¡}| |¡}|S )NzXSELECT accession_id FROM mbodymap_loaded_samples WHERE accession_id LIKE "%{}%" LIMIT 10)r   r   r   r   )r%   r   r'   r	   r   r   r   ÚsearchSample¡   s    

r1   c             C   s    t  ¡ }d | ¡}| |¡}|S )Nu`   SELECT `NCBIÂ ProjectÂ ID` FROM mbodymap_projects WHERE `NCBIÂ ProjectÂ ID` LIKE "%{}%" LIMIT 10)r   r   r   r   )r%   r   r'   r	   r   r   r   ÚsearchProject¨   s
    
r2   N)
Úutilsr   r   r   r   r-   r/   r0   r1   r2   r   r   r   r   Ú<module>   s   G	