The Molecular Interactions Query Language (MIQL) defines a way to allow more powerful and flexible queries by using a specific syntax when doing searches. If we have a common way to access the data (PSICQUIC), we need a common way to write the search queries. In most cases, searches are done for a specific identifier or group of identifiers. However, the service is not limited to these. For instance, there are ways to search for specific organisms, interaction detection methods or publication identifiers. The MIQL defines how these kind of queries can be done.
MIQL is a consensus between the different databases, so you should be able to use the same query across different repositories. It is based on the PSIMITAB format and allows to search for data in specific columns, by using the fields explained in the next section.
The MIQL syntax is based on Lucene's syntax. A query is broken into terms and operators:
- Terms: single words or phrases (group of words surrounded by quotes). E.g.
- Fields: used to search in a specific column. See the next section for the specific field names. E.g.
- Term modifiers: wildcard searches, fuzzy searches, proximity and range searches. E.g.
- Operands: OR (or space), AND, NOT, +, -. E.g.
brca2 AND rpa1or
brca2 NOT mouseor
+brca2 –mouse –expansion:spoke
- Grouping and field grouping:
brca2 AND ( mouse "in vitro" )
IMPORTANT: When using parenthesis in your queries, please add a space after and opening parenthesis and before a closing one, since some PSICQUIC implementations need it for correct parenthesis recognition.
There are two versions of MIQL language which have been implemented so far.