#!/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/#fromfuture.utilsimportiteritemsimportbs4importpypath.resources.urlsasurlsimportpypath.share.curlascurl
[docs]defdeathdomain_interactions():""" Downloads HTML tables from the DeathDomain webpage and extracts the interactions. """result=[]families=['CARD','DD','DED','PYD']forfaminfamilies:url=urls.urls['death']['url_dead']%famc=curl.Curl(url,silent=False)html=c.resultsoup=bs4.BeautifulSoup(html,'lxml')d={}fortabinsoup.find_all('table',{'class':'tab'}):forrintab.find_all('tr'):cs=r.find_all('td')iflen(cs)>0:i={'family':cs[0].find('a').text,'A':cs[1].find('a').text,'B':cs[3].find('a').text,'met':cs[4].textifcs[4].textisnotNoneelse'','ref':cs[-1].find('a').text}ifi['A']notind:d[i['A']]={}ifi['B']notind[i['A']]:d[i['A']][i['B']]={}d[i['A']][i['B']]['family']=i['family']if'met'notind[i['A']][i['B']]:d[i['A']][i['B']]['met']=[]d[i['A']][i['B']]['met'].append(i['met'])if'ref'notind[i['A']][i['B']]:d[i['A']][i['B']]['ref']=[]d[i['A']][i['B']]['ref'].append(i['ref'])forp1,v1initeritems(d):forp2,v2initeritems(v1):ifp1!=p2:result.append([p1,p2,';'.join(common.unique_list(v2['met'])),';'.join(common.unique_list(v2['ref']))])returnresult
[docs]defdeathdomain_interactions_rescued():""" Loads the DeathDomain interactions from rescued data. """url=urls.urls['death']['url_alive']c=curl.Curl(url,silent=False,large=True)_=next(c.result)return[[i.strip()foriinline.split('\t')]forlineinc.result]