예제 #1
0
        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,
예제 #2
0
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):
예제 #3
0
          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')