Source code for indra.databases.mirbase_client

"""A client to miRBase."""

import os

__all__ = [
    'get_mirbase_id_from_mirbase_name',
    'get_mirbase_name_from_mirbase_id',
    'get_hgnc_id_from_mirbase_id',
    'get_mirbase_id_from_hgnc_id',
    'get_mirbase_id_from_hgnc_symbol',
]

HERE = os.path.dirname(os.path.abspath(__file__))
MIRBASE_FILE = os.path.join(HERE, os.pardir, 'resources', 'mirbase.tsv')


[docs]def get_mirbase_name_from_mirbase_id(mirbase_id): """Return the miRBase name corresponding to the given miRBase ID. Parameters ---------- mirbase_id : str The miRBase ID to be converted. Example: "MI0000060" Returns ------- mirbase_name : str The miRBase name corresponding to the given miRBase ID. """ return _mirbase_id_to_name.get(mirbase_id)
[docs]def get_mirbase_id_from_mirbase_name(mirbase_name): """Return the miRBase identifier corresponding to the given miRBase name. Parameters ---------- mirbase_name : str The miRBase ID to be converted. Example: "hsa-mir-19b-2" Returns ------- mirbase_id : str The miRBase ID corresponding to the given miRBase name. """ return _mirbase_name_to_id.get(mirbase_name)
[docs]def get_hgnc_id_from_mirbase_id(mirbase_id): """Return the HGNC ID corresponding to the given miRBase ID. Parameters ---------- mirbase_id : str The miRBase ID to be converted. Example: "MI0000060" Returns ------- hgnc_id : str The HGNC ID corresponding to the given miRBase ID. """ return _mirbase_id_to_hgnc_id.get(mirbase_id)
[docs]def get_mirbase_id_from_hgnc_id(hgnc_id): """Return the HGNC ID corresponding to the given miRBase ID. Parameters ---------- hgnc_id : str An HGNC identifier to convert to miRBase, if it is indeed an miRNA. Example: "31476" Returns ------- mirbase_id : str The miRBase ID corresponding to the given HGNC ID. """ return _hgnc_id_to_mirbase_id.get(hgnc_id)
[docs]def get_mirbase_id_from_hgnc_symbol(hgnc_symbol): """Return the HGNC gene symbol corresponding to the given miRBase ID. Parameters ---------- hgnc_symbol : str An HGNC gene symbol to convert to miRBase, if it is indeed an miRNA. Example: "MIR19B2" Returns ------- mirbase_id : str The miRBase ID corresponding to the given HGNC gene symbol. """ return _hgnc_symbol_to_mirbase_id.get(hgnc_symbol)
def _read(): """Read the miRBase data into some lookup dictionaries.""" mirbase_id_to_name = {} mirbase_name_to_id = {} hgnc_id_to_mirbase_id = {} mirbase_id_to_hgnc_id = {} hgnc_symbol_to_mirbase_id = {} mirbase_id_to_hgnc_symbol = {} with open(MIRBASE_FILE) as file: next(file) for line in file: try: mirbase_id, mirbase_name, db, identifier, name = \ line.strip().split('\t') except ValueError: # fails on WORMBASE since no names continue mirbase_id_to_name[mirbase_id] = mirbase_name mirbase_name_to_id[mirbase_name] = mirbase_id if db == 'HGNC': hgnc_id_to_mirbase_id[identifier] = mirbase_id mirbase_id_to_hgnc_id[mirbase_id] = identifier hgnc_symbol_to_mirbase_id[name] = mirbase_id mirbase_id_to_hgnc_symbol[mirbase_id] = name return ( mirbase_id_to_name, mirbase_name_to_id, hgnc_id_to_mirbase_id, mirbase_id_to_hgnc_id, hgnc_symbol_to_mirbase_id, mirbase_id_to_hgnc_symbol, ) ( _mirbase_id_to_name, _mirbase_name_to_id, _hgnc_id_to_mirbase_id, _mirbase_id_to_hgnc_id, _hgnc_symbol_to_mirbase_id, _mirbase_id_to_hgnc_symbol, ) = _read()