B
    ŒâOa+-  ã               @   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 ¡ }x@|D ]6}d}d |¡}| |¡}g }x |D ]ö}	|	d dksF|	d d krfqFd |	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 }|r|	d dkrž| |	d |d |¡||||||dœ	¡ nvd ||	d ¡}| |¡}|d krì| |	d |d |¡||||||dœ	¡ n(| |	d |d |¡||||||dœ	¡ qF| |	d |d |¡||||||dœ	¡ qFW | |d |i¡ qW |S )NFzASELECT DISTINCT disease FROM mbodymap_samples WHERE BodySite="{}"ÚdiseaseZNAz)SELECT term FROM mesh_data WHERE uid="{}"Z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="{}"zbselect association from mbodymap_bodysite_disease_association where bodysite="{}" and disease="{}"ÚassociationÚD006262z{:,})	r   Údisease_nameÚrun_numÚprocessed_numZ	valid_numÚspecies_numÚproject_numÚ	genus_numr   zTselect * from curated_lefse_analysis_results where bodysite="{}" and phenotype2="{}"ZPhenotypeTbl)r   r   r   r   Úqueryr   Úlenr   )r   r	   r
   r   Z	site_itemZ
has_markerÚ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speciesÚ	sql_genusZgenusZsql_associationr   Zsql_pheno_has_markerZpheno_has_markerr   r   r   ÚtblData   s¦    





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   œ   s
    
r   c             C   s>   t  ¡ }|dkr&d | ¡}| |¡}nd | ¡}| |¡}|S )NÚidzpSELECT DISTINCT ncbi_taxon_id, taxon_rank_level, name from mbodymap_taxa where ncbi_taxon_id like "{}%" limit 10zgSELECT DISTINCT ncbi_taxon_id, taxon_rank_level, name from mbodymap_taxa where name like "{}%" limit 10)r   r   r   r   )ÚsearchInputÚ	searchOptr   ÚsqlÚsearchResultr   r   r   Ú
searchTaxa¥   s    
r)   c             C   s>   t  ¡ }|dkr&d | ¡}| |¡}nd | ¡}| |¡}|S )Nr$   znSELECT DISTINCT disease uid, disease_name term from mbodymap_phenotype_index where disease LIKE "{}%" limit 10zsSELECT DISTINCT disease uid, disease_name term from mbodymap_phenotype_index where disease_name LIKE "{}%" limit 10)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    

r+   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    

r,   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
    
r-   N)
Úutilsr   r   r   r   r)   r*   r+   r,   r-   r   r   r   r   Ú<module>   s    	