#!/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/#importcollectionsimportpypath.resources.urlsasurlsimportpypath.share.curlascurlimportpypath.utils.taxonomyastaxonomy
[docs]defgpcrdb_annotations(organism=9606):""" :param int,str organism: Only human and mouse (9606 and 10090) are supported. """GpcrdbAnnotation=collections.namedtuple('GpcrdbAnnotation',['gpcr_class','family','subfamily',])organism=taxonomy.ensure_ncbi_tax_id(organism)iforganismnotin(9606,10090):return{}i_uniprot=31iforganism==10090else15url=urls.urls['gpcrdb']['families']c=curl.Curl(url,silent=False,large=True)result=collections.defaultdict(set)forlineinc.result:ifline[0]!=' ':cls=line.split('|')[0].strip()family=Nonesubfamily=Noneelifline[4]!=' ':family=line.strip()subfamily=Noneelifline[8]!=' ':subfamily=line.strip()else:line=line.strip().strip('"')ifline.startswith('gpcr'):line=line.split('","')uniprot=line[i_uniprot]ifuniprot:result[uniprot].add(GpcrdbAnnotation(gpcr_class=cls,family=family,subfamily=subfamily,))returndict(result)