continue # Except for % character. if '%' in search_query: continue # Tuning, Add "" to both side on query. original_search_query = search_query search_query = '"%s"' % search_query print('search_query:', search_query) # Hgnc response elapsed_millis = get_current_millis() while True: try: response = hgnc_http.request('/search/' + quote(search_query), 'GET', '', '')['response'] except: print('HGNC request failed, so retry after 5 seconds') time.sleep(5) continue else: print('HGNC request time:', get_elapsed_seconds(get_current_millis(), elapsed_millis)) break # Ignore empty docs, score less than current saved gene. if not response['docs']: # Cache gene result information. query_result_map[original_search_query] = { 'hgnc_id': None, 'symbol': None,
from urllib.parse import quote import sys START_S_ID = None if len(sys.argv) > 1: START_S_ID = sys.argv[1] hgnc_search_uri = 'http://rest.genenames.org' db_uri = 'http://e3cb0988.ngrok.io' # Get all preprocessed MeSH terms in DB. db_http = HttpWrapper(db_uri) all_processed = db_http.request( '/sql', 'GET', { 'query': 'SELECT * FROM LUNG_PROCESSED WHERE S_ID = 28', }, '', ) # Search using P_NAME from processed rows. # S_ID and HGNC Map. # Key: S_ID # Value: HGNC doc max score sid_hgnc_map = dict() hgnc_http = HttpWrapper(hgnc_search_uri) def get_max_score_doc(result_docs):
get_elapsed_seconds(get_current_millis(), elapsed_millis)) # Get MeSH query mesh_name = None max_doc = None if len(processeds) == 1: mesh_name = processeds[0]['P_NAME'] else: for processed in processeds: elapsed_millis = get_current_millis() response = None while True: try: # Hgnc response response = hgnc_http.request( '/search/' + quote(processed['P_NAME']), 'GET', '', '')['response'] except: print('HGNC request failed, so retry after 5 seconds') time.sleep(5) continue else: print( 'HGNC response time:', get_elapsed_seconds(get_current_millis(), elapsed_millis)) break if not response['docs']: continue if not max_doc or max_doc['score'] < response['maxScore']: print('Found max doc')