Source code for src.graphdb_builder.databases.parsers.drugGeneInteractionDBParser

import os.path
from graphdb_builder import mapping as mp, builder_utils

############################################
#   The Drug Gene Interaction Database     # 
############################################
[docs]def parser(databases_directory, download=True): config = builder_utils.get_config(config_name="drugGeneInteractionDBConfig.yml", data_type='databases') url = config['DGIdb_url'] header = config['header'] output_file = "dgidb_targets.tsv" drugmapping = mp.getMappingForEntity("Drug") relationships = set() directory = os.path.join(databases_directory, "DGIdb") builder_utils.checkDirectory(directory) fileName = os.path.join(directory, url.split('/')[-1]) if download: builder_utils.downloadDB(url, directory) with open(fileName, 'r', encoding='utf-8') as associations: first = True for line in associations: if first: first = False continue data = line.rstrip("\r\n").split("\t") gene = data[0] source = data[3] interactionType = data[4] if data[4] != '' else 'unknown' drug = data[8].lower() if drug == "": drug = data[7] if drug == "" and data[6] != "": drug = data[6] else: continue if gene != "": if drug in drugmapping: drug = drugmapping[drug] relationships.add((drug, gene, "TARGETS", "NA", "NA", "NA", interactionType, "DGIdb: "+source)) builder_utils.remove_directory(directory) return (relationships, header, output_file)