#!/usr/bin/env python# -*- coding: utf-8 -*-## This file is part of the `pypath` python module## Copyright 2014-2023# EMBL, EMBL-EBI, Uniklinik RWTH Aachen, Heidelberg University## Authors: see the file `README.rst`# Contact: Dénes Türei (turei.denes@gmail.com)## Distributed under the GPLv3 License.# See accompanying file LICENSE.txt or copy at# https://www.gnu.org/licenses/gpl-3.0.html## Website: https://pypath.omnipathdb.org/#from__future__importannotationsimportcsvimportcollectionsimportbs4importpypath.share.curlascurlimportpypath.resources.urlsasurlsimportpypath.utils.mappingasmapping
[docs]defdgidb_interactions()->list[tuple]:""" Retrieves drug-gene interactions from DGIdb. Returns: A list with tuples. Tuples are dgidb interactons """result=set()DgidbInteraction=collections.namedtuple('DgidbInteraction',['genesymbol','entrez','resource','type','drug_name','drug_chembl','score','pmid'],)url=urls.urls['dgidb']['interactions']c=curl.Curl(url=url,silent=False,large=True)interactions=csv.DictReader(c.result,delimiter='\t')forinteractionininteractions:interaction={k:vorNonefork,vininteraction.items()}dgidb_interaction=DgidbInteraction(genesymbol=interaction['gene_name'],entrez=interaction['entrez_id'],resource=interaction['interaction_claim_source'],type=interaction['interaction_types'],drug_name=interaction['drug_claim_primary_name'],drug_chembl=interaction['drug_concept_id'],score=interaction['interaction_group_score'],pmid=interaction['PMIDs'],)result.add(dgidb_interaction)returnlist(result)
[docs]defdgidb_annotations():""" Downloads druggable protein annotations from DGIdb. """DgidbAnnotation=collections.namedtuple('DgidbAnnotation',['category'],)url=urls.urls['dgidb']['categories']c=curl.Curl(url=url,silent=False,large=True)data=csv.DictReader(c.result,delimiter='\t')result=collections.defaultdict(set)forrecindata:uniprots=mapping.map_name(rec['entrez_gene_symbol'],'genesymbol','uniprot',)foruniprotinuniprots:result[uniprot].add(DgidbAnnotation(category=rec['category']))returndict(result)
[docs]defget_dgidb_old():""" Deprecated. Will be removed soon. Downloads and processes the list of all human druggable proteins. Returns a list of GeneSymbols. """genesymbols=[]url=urls.urls['dgidb']['main_url']c=curl.Curl(url,silent=False)html=c.resultsoup=bs4.BeautifulSoup(html,'html.parser')cats=[o.attrs['value']foroinsoup.find('select',{'id':'gene_categories'}).find_all('option')]forcatincats:url=urls.urls['dgidb']['url']%catc=curl.Curl(url)html=c.resultsoup=bs4.BeautifulSoup(html,'html.parser')trs=soup.find('tbody').find_all('tr')genesymbols.extend([tr.find('td').text.strip()fortrintrs])returnmapping.map_names(genesymbols,'genesymbol','uniprot')