o h+@sdddddZddZddZd d Zd d Zd dZddZddZddZd4ddZ d5ddZ ddZ d6dd Z d!d"Z d#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd4d1d2Zd3S)7i3)ZhumanZmousepigZratcCsdddd|iidS)N query_stringquery)fromsizer)rr r A/home/cmiss/Jenkins/workspace/SPARC-API/app/scicrunch_requests.pycreate_query_string sr cCddd|iiiS)Nrterm item.curier )doir r r create_doi_query rcCddd|iidS)Ntermsrr rr )doisr r r create_multiple_doi_query! rcCr)Nrrpennsieve.identifierrr )idsr r r create_multiple_discoverId_query,rrcCs^|d}g}|D]}|ddd|Dq dd|D}ddd d gd |d id S)N css|] }|r|VqdSN)isalnum).0er r r ;sz%create_title_query..cSsg|] }|rd|dqS)()r )r"pr r r =sz&create_title_query.. rr item.name AND fieldsrr r r)splitappendjoin)titlepartsZalphanum_partsr'rr r r create_title_query7s r4cCsddddd|iiigddS)Nrmatchrr)ZanatomyrZ organismsr r r_sourcer  identifierr r r create_anatomy_queryLsr;cCs0|d}d|d}ddddg|did S) N:*r5r)rrz *identifierr,r.)r/)r:r3rr r r create_identifier_query_s r>cCr)Nrrzpennsieve.identifier.aggregater r9r r r !create_pennsieve_identifier_queryqrr?r)rcCs||d|g|didS)Nrr,r.r )fieldZ search_termr from_r r r create_field_query{srBiricCs(dddddd|d|iiigiidS) Nr)rboolmustZ match_phrasez existing_ids.rr.r )rZexisting_id_typer r r create_onto_term_querysrFcCsddd|iiiS)Nrridr )rGr r r create_citations_querys rHc Cs.dddd|ddddiiigddid iid S) Nrr compositecurierr@zitem.curie.aggregater)r sourcesafterr r aggregationsr )r r r r create_doi_aggregates rPcCs&dddiiggdd|iidii}|S)NrrD match_allitemrK)rEZshouldfilterr )rrr r r create_doi_requestsrTcCs dddgd|ddii}|S)Nrrz*mimetype.name"r,r )Zmimetype_queryrr r r create_multiple_mimetype_querys  rVc Cs4dd|dddddiddigd iid }t|fS) Nrrr_countdesc_keyasc)r@r orderrN)get_facet_type_map)type_datar r r create_facet_querys  r`cCsf|durd}|dur d}|s|s|s||dS||dddiid}t|||t}||ddd<|S)Nr)r)r r rrrr.)facet_query_stringr])rrfacetsr startr_qsr r r create_filter_requests    recCs|r t|dSdSr )BODY_SCAFFOLD_DATASETgetlower)speciesr r r get_body_scaffold_dataset_idsrjc Cs:gdgddgdgdgdgdgdgdgdgdgdgd S)N)z(organisms.primary.species.name.aggregatez'organisms.sample.species.name.aggregatez)organisms.scaffold.species.name.aggregatezattributes.subject.sex.valuezanatomy.organ.name.aggregatezitem.modalities.keywordz$attributes.subject.ageCategory.value) riZSpeciesZgenderZGendersexZSexZgenotypezAnatomical structureorganZOrganzExperimental approachzAge categoriesr r r r r r]sr]c Csi}t|D]6\}}|dus$||dus$d||vs$d||vr%q||vr3||g||<q||||qd}|dkrId|d}|dkrWt|dkrW|d7}|D]}|dkr|sgt|d kont||d k} | ru|d7}||D]} | d kr|d 7}| ||d ur|d 7}qy| r|d7}nA|d7}||D]4} || d7}||D]} |d| d7}| ||d ur|d 7}q|d7}q| ||d ur|d 7}q|d7}|t|d ur|d7}qY|S)Nshowallrr%r&rr+datasetsr5Z scaffoldszOobjects.additional_mimetype.name:(application%2fx.vnd.abi.scaffold.meta%2Bjson) OR z:() enumeraterhkeysr0lenlist) rrrbtype_maptirZqtkZneedParentheseslmr r r ra+sT4         racCsdddddddddiid }t|dkr@d d d gii}d }|D]}||dkr-|d7}|d|d7}q!||d d<||d<|S)NrZnames_and_curiesrZpainlesszdef a=null;if(params['_source']['anatomy'] != null ) { if(params['_source']['anatomy']['organ'] != null ) { a = params['_source']['anatomy']['organ'];}} return a;)langinlinerW)scriptr rNrr-z *species.namerrqr%r&r)rt)ribodyrrrRr r r create_request_body_for_curiescs6   rcCs ||dd|ddiigddS)z Create a flatmap query for a dataset given the dataset id. The dataset id is a Pennsieve dataset id, for example N:dataset:2a3d01c0-39d3-464a-8746-54c9d67ebe0f r6item.identifierand)roperator)rr*rzobjects.dataset.pathz%objects.associated_flatmap.identifierr7r ) dataset_idr rAr r r create_dataset_flatmap_querysrN)r)r)rC)rI)rfr rrrr4r;r>r?rBrFrHrPrTrVr`rerjr]rarrr r r r s4      8'