disease.query#

Provides query handler class, which receives and responses to user search queries.

exception disease.query.InvalidParameterException[source]#

Exception for invalid parameter args provided by the user.

class disease.query.QueryHandler(database)[source]#

Class for normalizer management. Stores reference to database instance and normalizes query input.

__init__(database)[source]#

Initialize QueryHandler instance. Requires a created database object to initialize. The most straightforward way to do this is via the create_db() method:

>>> from disease.query import QueryHandler
>>> from disease.database import create_db
>>> q = QueryHandler(create_db())

We’ll generally call create_db without any arguments in code examples, for the sake of brevity. See the create_db() API description for more details.

Parameters:

database (AbstractDatabase) – storage backend to search against

normalize(query)[source]#

Return normalized concept for query.

Use to retrieve normalized disease concept records:

>>> from disease.query import QueryHandler
>>> from disease.database import create_db
>>> q = QueryHandler(create_db())
>>> result = q.normalize("NSCLC")
>>> result.normalized_id
'ncit:C2926'
Parameters:

query (str) – String to find normalized concept for

Return type:

NormalizationService

Returns:

Normalized disease concept

search(query_str, incl='', excl='')[source]#

Return highest match for each source.

>>> from disease.query import QueryHandler
>>> from disease.database import create_db
>>> q = QueryHandler(create_db())
>>> result = q.search("NSCLC")
>>> result.source_matches["Mondo"].records[0].concept_id
'mondo:0005233'
Parameters:
  • query_str (str) – query, a string, to search for

  • incl (str) – str containing comma-separated names of sources to use. Will exclude all other sources. Case-insensitive.

  • excl (str) – str containing comma-separated names of source to exclude. Will include all other source. Case-insensitive.

Returns:

dict containing all matches found in sources.

Return type:

dict

Raises:

InvalidParameterException – if both incl and excl args are provided, or if invalid source names are given.