Kysymys:
Kuinka yhdistää PDB-ketjut Uniprot-tunnuksiin API-palvelujen avulla
Sara
2017-10-24 23:48:46 UTC
view on stackexchange narkive permalink

Minulla on paljon ATE-tunnuksia, ja minun on hankittava näiden PDB-tunnusten erityisketjujen uniprot-fasta-sekvenssit API-palveluilta. Kuvittele esimerkiksi, että minun täytyy saada '1kf6' 'A-ketjun fasta-sekvenssi. Tämän 1kf6-ketjun uniprot-merkintä (liittyminen) on 'P00363'. Jos löydän tavan saada tämä merkintä, voin yksinkertaisesti hakea sen fasta-sekvenssin bioservices-paketin avulla:

  biopalvelujen tuonnista * u = UniProt () sequence = u.retrieve ("P00363", "fasta") print (sekvenssi)  

Suurin ongelma on, että en tiedä miten löydän tämän uniprot-merkinnän ("P00363 täällä") jokaiselle ketjulle PDB-tunnuksissa (tässä Luulen, etten tiedä, että tämä "P00363" on "1kf6" "A" -ketjun uniprot-merkintä ja yritän löytää sen API-palveluiden avulla). Yritin käyttää henkilötunnistusta. ID-kartoituksen ristiviittauksissa määritetään jokaisen merkinnän ketjun nimi ja jos voin lisätä ristiviittaussarakkeen u.searchiin ('1kf6', sarakkeet = "id, merkinnän nimi, pituus, geenit, pdb"), Voin yksinkertaisesti löytää suosikkiketjuuni liittyvän merkinnän. Seuraava koodi palauttaa joitain merkintöjä, jotka liittyvät yhteen 1kf6-ketjuihin. Ongelmana on, että en tiedä tarkalleen, mikä merkintä liittyy A-ketjuun, että tässä on suosikkiketjuni. Seuraavassa koodissa id etsii merkintää ja muut parametrit etsivät muuta niihin liittyvää:

  biopalvelujen tuonnista * u = UniProt () res = u.search ("1kf6", sarakkeet = "id, merkinnän nimi, pituus, geenit") print (res)  

Kutakin seuraavista sanoista voidaan käyttää ja lisätä sarakkeisiin:

  'id', 'merkinnän nimi', 'geenit', 'geenit (KÄYTETTÄVÄT)', 'geenit (VAIHTOEHTOINEN)', 'geenit (OLN)', 'geenit (ORF)', 'organismi' , 'organismin tunnus', 'proteiinien nimet', 'proteomi', 'sukulinja (ALL)', 'sukutunnus', 'viruksen isännät', 'fragmentti', 'sekvenssi', 'pituus', 'massa', 'encodedon', 'comment (VAIHTOEHTOISET TUOTTEET)', 'comment (ERRONEOUS GENE MODEL PREDICTION)', 'comment (ERRONEOUS INICIATION)', 'comment (ERRONEOUS TERMINATION)', 'comment (ERRONEOUS TRANSLATION)', 'comment (FRAMESHIFT) ) ',' kommentti (MASSASPEKTROMETRIA) ',' kommentti (POLYMORFISMI) ',' kommentti (RNA-EDITOINTI) ',' kommentti (SEQUENCE-VAROITUS) ',' ominaisuus (ALTERNATIIVINEN SEQUENCE) ',' ominaisuus (NATURAL VARIANT) ', 'ominaisuus (NON ADJACENT RESIDUES)', 'feature (NON STANDARD RESIDUE)', 'feature (NON TERMINAL RESIDUE)', 'feature (SEQUENCE CONFLICT)', 'feature (SEQUENCE UNCERTAINTY)', 'versio (jakso)', 'verkkotunnukset', 'verkkotunnus', 'kommentti (DOMAIN)', 'kommentti (SAMANKALTAISUUS)', 'ominaisuus (KIERRETTY KELA)', 'ominaisuus (KOMPOSITIONAALINEN BIAS)', 'ominaisuus (DOMAININ MÄÄRÄ)', 'ominaisuus (MOTIF ) ',' ominaisuus (REGION) ' , 'ominaisuus (REPEAT)', 'ominaisuus (ZINC FINGER)', 'ec', 'kommentti (ABSORPTIO)', 'kommentti (CATALYTIC ACTIVITY)', 'comment (COFACTOR)', 'comment (ENZYME REGULATION)', 'kommentti (FUNCTION)', 'kommentti (KINETICS)', 'kommentti (PATHWAY)', 'kommentti (REDOX POTENTIAL)', 'kommentti (LÄMPÖTILAN RIPPU)', 'kommentti (PH-RIPPU)', 'ominaisuus (AKTIIVINEN SIVU) ) ',' ominaisuus (BINDING SITE) ',' feature (DNA BINDING) ',' feature (METAL BINDING) ',' feature (NP BIND) ',' feature (SITE) ',' go ',' go (biologinen prosessi) ',' go (molekyylifunktio) ',' go (solukomponentti) ',' go-id ',' interpro ',' vuorovaikuttaja ',' kommentti (SUBUNIT) ',' citation ',' citationmapping ',' luotu ',' viimeinen muokkaus ',' muokattu sekvenssi ',' versio (merkintä) ',' 3d ',' ominaisuus (BETA STRAND) ',' ominaisuus (HELIX) ',' ominaisuus (TURN) ',' kommentti (ALIKELLOSIJAINTI) ',' ominaisuus (INTRAMEMBRANE) ',' ominaisuus (TOPOLOGINEN DOMAIN) ',' ominaisuus (LÄHETETTÄVÄ) ',' merkintätaso ',' pisteet ',' ominaisuudet ',' kommentti (VAROITUS) ',' kommentti (KUDOSTEN ERITTELY) ',' kommentti (YLEISTÄ) ',' avainsanat ',' konteksti ',' exi stence ',' työkalut ',' tarkistettu ',' ominaisuus ',' perheet ',' osa-alueet ',' taksonomia ',' versio ',' klusterit ',' kommentit ',' tietokanta ',' avainsana-id ', 'reitti', 'pisteet'

Käytin joitain yllä olevista sanoista sarakeosassa, mutta he eivät pystyneet hakemaan ketjun nimeä. Kukaan tietää, mikä yllä olevista parametreista voi antaa minulle ketjun nimen tälle ATE: lle? vai kenelläkään on muuta ideaa löytää uniprot-merkintä (UniprotKB AC), joka liittyy jokaiseen ATE: n ID-ketjuun API-palveluiden kautta?

Kolme vastused:
Sara
2017-10-25 02:10:12 UTC
view on stackexchange narkive permalink

Löysin vastauksen ja ajattelin, että siitä voi olla hyötyä muille. voimme käyttää pypdb-pakettia tähän tarkoitukseen (se toimii unix-järjestelmissä):

  Tuo pypdball_info = pypdb.get_all_info ('1kf6') print (all_info)  

tuotos on seuraava:

  {'polymeer': [{'@entityNr': '1', '@length': '602', '@type': 'proteiini ',' @ weight ':' 66057.6 ',' ketju ': [{' @id ':' A '}, {' @id ':' M '}],' Taksonomia ': {' @ nimi ':' Escherichia coli ',' @id ':' 562 '},' macroMolecule ': {' @name ':' Fumaraattireduktaasin flavoproteiinin alayksikkö ',' liittyminen ': {' @id ':' P00363 '}},' polymerDescription ' : {'@description': 'FUMARATE REDUCTASE FLAVOPROTEIN'}, 'enzClass': {'@ec': '1.3.5.4'}}, {'@entityNr': '2', '@length': '243' , '@type': 'proteiini', '@ weight': '27021.9', 'ketju': [{'@id': 'B'}, {'@id': 'N'}], 'Taksonomia' : {'@name': 'Escherichia coli', '@id': '562'}, 'macroMolecule': {'@name': 'Fumaraattireduktaasin rikki-rikki-alayksikkö', 'liittyminen': {'@id' : 'P0AC47'}}, 'polymerDescription': {'@description': 'FUMARATE REDUCTASE IRON-SULFUR PROTEIN'}, 'enzClass': {'@ec': '1.3.5.1'}}, {'@en tityNr ':' 3 ',' @length ':' 130 ',' @type ':' protein ',' @ weight ':' 14898.8 ',' chain ': [{' @id ':' C '}, {'@id': 'O'}], 'Taksonomia': {'@name': 'Escherichia coli', '@id': '562'}, 'macroMolecule': {'@name': 'Fumaraattireduktaasi alayksikkö C ',' liittyminen ': {' @id ':' P0A8Q0 '}},' polymerDescription ': {' @description ':' FUMARATE REDUCTASE 15 KDA HYDROPHOBIC PROTEIN '}}, {' @entityNr ':' 4 ' , '@pituus': '119', '@type': 'proteiini', '@paino': '13118.9', 'ketju': [{'@id': 'D'}, {'@id': 'P'}], 'Taksonomia': {'@name': 'Escherichia coli', '@id': '562'}, 'macroMolecule': {'@name': 'Fumaraattireduktaasin alayksikkö D', 'liittyminen ': {' @id ':' P0A8Q3 '}},' polymerDescription ': {' @description ':' FUMARATE REDUCTASE 13 KDA HYDROPHOBIC PROTEIN '}}],' id ':' 1KF6 '}  

Tämä lähtö antaa kaikki kaikkiin ketjuihin liittyvät tiedot, ja löydämme yksinkertaisesti jokaisen ketjun uniprotkb AC: n täältä. Löysin myös toisen vastauksen tähän kysymykseen. Tämä vastaus löytyy täältä ja seuraava koodi:

  tuontipyynnöt kohteesta xml.etree.ElementTree tuonti fromstringpdb_id = '1kf6.A'pdb_mapping_url =' http: // www.rcsb.org/pdb/rest/das/pdb_uniprot_mapping/alignment'uniprot_url = 'http://www.uniprot.org/uniprot/{}.xml'def get_uniprot_accession_id (response_xml): root = fromstring (response_xml) palaa seuraavaksi (el for el in root.getchildren () [0] .getchildren () if el.attrib ['dbSource'] == 'UniProt') .attrib ['dbAccessionId'] def get_uniprot_protein_name (uniport_id): uinprot_response = pyynnöt.get (uniprot_url.format (uniport_id)) .teksti palaa merkkijonosta (uinprot_response) .find ('.// ​​{http://uniprot.org/uniprot} RecommendedName / {http://uniprot.org/uniprot} fullName'). textdef map_pdb_to_uniprot (pdb_id): pdb_mapping_response = pyynnöt.get (pdb_mapping_url, params = {'query': pdb_id}) .text uniprot_id = get_uniprot_accession_id (pdb_mapping_respon_painos) uniprot_name rotein_name (uniprot_id) return {'pdb_id': pdb_id, 'uniprot_id': uniprot_id, 'uniprot_name': uniprot_name} print (map_pdb_to_uniprot (pdb_id))  

Tämän koodin lähtö on seuraava :

  {'pdb_id': '1kf6.A', 'uniprot_id': 'P00363', 'uniprot_name': 'Fumaraattireduktaasin flavoproteiinin alayksikkö'}  
mgalardini
2017-10-27 13:28:37 UTC
view on stackexchange narkive permalink

Vaihtoehtoinen ratkaisu sisältää EBI: n SIFTS -resurssin käytön. Kirjoitin python-jäsentäjän heidän xml-muotoilleen, mikä antaa sinulle kartoituksen pdb: n ja uniprot-merkinnän välillä yhden jäännöstason tasolla. hiljainen "ftp://ftp.ebi.ac.uk/pub/databases/msd/sifts/xml/1kf6.xml.gz" | pistooli | python parse_sifts.py1kf6 AM 0 P00363 M 11kf6 AQ 1 P00363 Q 21kf6 AT 2 P00363 T 31kf6 AF 3 P00363 F 41kf6 AQ 4 P00363 Q 51kf6 AA 5 P00363 A 61kf6 AD 6 P00363 D 71kf6 P 7363 A6 P7363 A6 9 P00363 I 10 [...]

Palautetut kentät ovat seuraavat:

  • pdb-tunnus
  • ketju
  • pdb-jäännös
  • pdb-asema
  • uniprot-tunnus
  • uniprot-jäännös
  • uniprot-asema

Laita tarvitsemasi tiedot yllä olevaan katkelmaan vain valitsemallesi ATE-tunnuksellesi.

Näyttää siltä, ​​että se on hyvä, mutta kun kirjoitin koodin ($ curl --silent "ftp://ftp.ebi.ac.uk/pub/databases/msd/sifts/xml/1kf6.xml.gz" | gunzip | python parse_sifts.py) Cygwinissä sain seuraavan virheen: python: ei voi avata tiedostoa "parse_sifts.py": [Errno 2] Ei tällaista tiedostoa tai hakemistoa (23) Epäonnistunut kirjoitusosa
Oletko varma, että Python-komentosarja oli samassa hakemistossa, jossa suoritit koodinpätkän?
Kun yritän avata selaimessani tiedoston "ftp.ebi.ac.uk/pub/databases/msd/sifts/xml/1kf6.xml.gz", saan tämän virheen: Tätä sivustoa ei löydy ftp://ftp.ebi.ac.uk/pub/databases/msd/sifts/xml/1kf6.xml.gz "saattaa olla väliaikaisesti poissa tai se on saattanut siirtyä pysyvästi uudelle verkko-osoitteelle. ERR_FTP_FAILED. Mielestäni ongelma johtuu palvelimesta.
Yritin juuri ja se toimi minulle hyvin: ftp://ftp.ebi.ac.uk/pub/databases/msd/sifts/xml/1kf6.xml.gz
Nyt se toimi myös minulle ...
rraadd88
2020-04-18 04:50:14 UTC
view on stackexchange narkive permalink

Katso tämä tiedosto osoitteesta SIFT.ftp.ebi.ac.uk/pub/databases/msd/sifts/csv/pdb_chain_uniprot.csvSe sisältää PDB-ketjujen jäännöstietokartoituksen yksiprot-tunnuksilla.

  # 2020/04/12 - 21:03 | ATE: 15,20 | UniProt: 2020.02PDB, CHAIN, SP_PRIMARY, RES_BEG, RES_END, PDB_BEG, PDB_END, SP_BEG, SP_END101m, A, P02185,1,154,0,153,1,154102l, A, P00720,1,40,1,40,1,40102l, A , P00720,42,165,41, Ei mitään, 41,164 ..  


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...