#!/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/#try:fromcStringIOimportStringIOexceptModuleNotFoundError:fromioimportStringIOimportpypath.resources.urlsasurlsimportpypath.share.curlascurlimportpypath.share.progressasprogressimportpypath.inputs.pdbaspdb_inputimportpypath.inputs.commonasinputs_commonimportpypath.utils.pdbaspdb_utilsimportpypath.internals.interaasintera
[docs]defget_csa(uniprots=None):""" Downloads and preprocesses catalytic sites data. This data tells which residues are involved in the catalytic activity of one protein. """url=urls.urls['catalytic_sites']['url']c=curl.Curl(url,silent=False)data=c.resultifdataisNone:returnNoneu_pdb,pdb_u=pdb_input.pdb_chains()buff=StringIO()buff.write(data)cols={'pdb':0,'id':1,'resname':2,'chain':3,'resnum':4,'chem_fun':5,'evidence':6,}table=inputs_common.read_table(cols=cols,fileObject=buff,sep=',',hdr=1,)css={}prg=progress.Progress(len(table),'Processing catalytic sites',11)forlintable:ifl['pdb']inpdb_u:ifl['chain']inpdb_u[l['pdb']]:uniprot=pdb_u[l['pdb']][l['chain']]['uniprot']ifuniprotsisNoneoruniprotinuniprots:offset=pdb_u[l['pdb']][l['chain']]['offset']ifoffsetisnotNone:l['resnum']=int(l['resnum'])+offsetelse:this_res=pdb_utils.residue_pdb(l['pdb'],l['chain'],l['resnum'],)iflen(this_res)>0:l['resnum']=int(this_res['UPCOUNT'])else:l['resnum']=Noneifl['resnum']isnotNone:ifuniprotnotincss:css[uniprot]={}ifl['pdb']notincss[uniprot]:css[uniprot][l['pdb']]={}ifl['id']notincss[uniprot][l['pdb']]:css[uniprot][l['pdb']][l['id']]=[]css[uniprot][l['pdb']][l['id']].append(intera.Residue(name=l['resname'],number=l['resnum'],protein=uniprot,))prg.step()prg.terminate()returncss