Kysymys:
Kuinka poimia RNA-sekvenssi ja sekundäärirakenteen rajoitteet PDB-tiedostosta
Peter
2017-06-07 13:24:36 UTC
view on stackexchange narkive permalink

Yritän löytää ohjelmallisen tavan purkaa seuraavat tiedot automaattisesti PDB-tiedostosta:

  1. RNA-sekvenssi
  2. rakenteen rajoitukset suluissa, esim . ((. (.).))

Onko olemassa ohjelmistoa, joka voi ottaa ATE-tiedoston syötteeksi ja tuottaa nämä kaksi tietoa?

esim. tiedosto. 3NDB_ba.pdb

nukleotidisekvenssi on:

gUCUCGUCCCGUGGGGCUCGGCGGUGGGGGAGCAUCUCCUGUAGGGGAGAUGUAACCCCCUUUACCUGCCGAACCCCGCCAGGCCCGGAAGGGAGCAACGGUAGGCAGGACGUCGGCGCUCACGGGGGUGCGGGAC .

Ja sekundäärinen rakenne:

. (((. (.. ((((((((((((. ((((((((((( ....)))))))))) ..)))))) ... ((((((((... ... ((... ... ((... ))) ... ...))) ..)))))).))))))))))))))) ... ...).))).

Ehdotan, että katsot Biopythonia. Heillä on ATE-moduuli: http://biopython.org/wiki/The_Biopython_Structural_Bioinformatics_FAQEn ole perehtynyt ATE: hen, joten en tiedä, toimiiko tämä haluamallasi tavalla.
Hei Peter, kiitos kysymyksesi lähettämisestä ja tervetuloa Bioinformatics Stack Exchangeen. Olen korjannut kysymyksesi kieliopin ja oikeinkirjoituksen helpottaakseni muiden ihmisten lukemista ja vastaamista. En ole perehtynyt ATE-tiedostomuotoon, joten olisi hienoa, jos voisit lisätä hieman enemmän asiayhteyttä / tarinaa kysymyksesi ympärille. Esimerkiksi mistä nämä ATE-tiedostot ovat peräisin (ts. Julkiset tai yksityiset tietolähteet)? Onko mitään syytä, miksi transkriptiosekvenssien ottaminen NCBI: ltä ei ole tarkoituksenmukaista?
Voisitko antaa esimerkin erityisestä ATE-tiedostosta, jota voimme testata?
Kolme vastused:
Marcin Magnus
2017-06-07 15:06:32 UTC
view on stackexchange narkive permalink

Ehdotan, että katsot rna-pdb-tools , me teemme paljon enemmän kuin tarvitset! :-) Työkalut voivat saada sekvenssin, toissijaisen rakenteen ja paljon muuta käyttämällä erilaisia ​​algoritmeja, ja kaikki on hyvin dokumentoitu http://rna-pdb-tools.readthedocs.io/en/latest/

Sekvenssin saamiseksi http://rna-pdb-tools.readthedocs.io/en/latest/main.html#get-sequence

  $ rna_pdb_tools.py --get_seq 5_solution_1.pdb> 5_solution_1.pdb V: 1-576CAUCCGGUAUCCCAAGACAAUCUCGGGUUGGGUUGGGAAGUAUCAUGGCUAAUCACCAUGAUGCAAUCGGGUUGAACACUUAAUUGGGUUAAAACGGUGGGGGACGAUCCCGUAACAUCCGUCCUAACGGCGACAGACUGCACGGCCCUGCCUCAGGUGUGUCCAAUGAACAGUCGUUCCGAAAGGAAG  

tai voit saada järjestyksessä ja sekundaarirakenteen kautta x3dna ( http: // x3dna .org /)

  [mm] py3dna $ git: (master) ✗ ./rna_x3dna.py test_data / 1xjr.pdbtest_data / 1xjr.pdb >1xjr nts = 47 [1xjr] - DSSR: n johdettu toissijainen rakenne )))))  

Ongelma ei ole triviaali. Toivon, että rna-pdb-toolsilla on asioita, jotka voivat ratkaista tämän ongelman puolestasi ( http://rna-pdb-tools.readthedocs.io/en/latest/want.html#module-rna_pdb_tools.utils.rna_x3dna. rna_x3dna)

Lisäsin tältä sivulta peräisin olevan esimerkin transkriptioiden saamiseksi, mutta en löytänyt [nopeasti] mitään suluista
@gringer kyllä, en kumpikaan (ja tuossa dokumentaatiossa on joitakin melko huonoja ehdotuksia, kuten "f: lle \" ls * txt \ "; tee ... (!), Joten otin sen silti suolalla. Kiitos muokkaa kuitenkin!
mikä vialla "for f: ssä" ls * txt: ssä; tehdä. . .? Voin korjata sen, mutta miksi?
@MarcinMagnus kaksi asiaa: ensinnäkin, se epäonnistuu outoissa tiedostojen nimissä, minkä vuoksi on [yleensä huonoa käytäntöä] (http://mywiki.wooledge.org/ParsingLs) jäsentää `ls '-tuotetta. `ls 'on suunniteltu tuottamaan tuloksia ihmisille, ei koneille, eikä se pysty käsittelemään parittomia tiedostonimiä sulavasti (vaikka GNU: n` ls' viimeisimmät versiot ovat parantaneet sitä). Toiseksi, se on vain epäkelpo, koska sitä ei tarvita täällä. Yksinkertainen "f: lle * txt" tekee saman asian ja on paljon vankempi, koska se voi käsitellä mitä tahansa tiedostonimeä, myös sellaisia, jotka sisältävät uusia viivoja.
Pahoittelen myös ääntäni. Jäsennys `` ls '' on klassinen meemi * nix-maailmassa ja yksi yleisimmistä karhuista aloitteleville kuoriohjelmoijille. Vietän paljon aikaa * nix -yhteisöissä (olen mod [[linux.se] - ja [ubuntu.se] -sivustoissa), joten olen luultavasti herkempi asiaan kuin minun pitäisi olla. En missään tapauksessa tarkoittanut halua halveksia työtäsi ja anteeksipyyntöäni, jos se tapahtui tuolla tavalla.
OK, näen sen nyt ;-) Tiesin "kissan" ja "kaikun" väärinkäytöstä. Nyt näen `ls 'luettelossa http://porkmail.org/era/unix/award.html En tiennyt sitä aiemmin. Kiitos, että osoitit tämän. Korjan asiakirjat kaikissa paikoissa ;-) kiitos! Käytän Linuxia yli 10 vuotta, mutta silti jotkut asiat muistuttavat oppimisesta ;-)
@MarcinMagnus kiitos :) Kun olet siinä, olisi hienoa, jos voisit myös korjata puuttuvat lainaukset (`for i in *; tee komento" $ i "; valmis`), koska ne ovat myös välttämättömiä käsiteltäessä mielivaltaista tiedostoa nimet. Jos haluat enemmän kuin edes halusit tietää muuttujien lainaamisen merkityksestä * nix-kuorissa, katso [Turvallisuusvaikutukset unohtamatta lainata muuttujaa bash / POSIX-kuoreissa] (https://unix.stackexchange.com/q/171346/ 22222) ja [Miksi komentosarjani tukahduttaa välilyönnin tai muita erikoismerkkejä?] (Https://unix.stackexchange.com/q/131766/22222).
Heitän toisen ehdotuksen backtickeja koskevaan sekoitukseen, joka voidaan korvata `sh`-skripteissä nimellä $ () (joka on kätkettävissä), esim. `for i dollarissa (ls * pdb)` * [mutta @terdon's-kommentin mukaan `ls 'on tarpeeton, joten` i: lle * pdb: ssä toimisi paremmin] *
marcin
2017-06-08 00:22:15 UTC
view on stackexchange narkive permalink

Konteksti

PDB-tiedostomuoto on kiinteän sarakkeen tiedostomuoto, joka on suunniteltu 1970-luvulla makromolekyylien rakennemallien tallentamiseen. Muoto on ollut käytössä pitkään, sillä on monia käyttötarkoituksia, ja vaikka siinä on viralliset tiedot, liikkeessä olevat tiedostot eivät välttämättä noudata sitä. Siinä on aina luettelo atomeista, joissa on koordinaatit (kaksi ensimmäistä riviä lisätään korostamaan, että se on kiinteän sarakkeen muoto, ne eivät ole osa tiedostoa):

  1 2 3 4 5 6 7 812345678901234567890123456789012345678901234567890123456789012345678901234567890ATOM 1 N VAL A 1 3.320 14.780 4.844 1.00 35.53 NATOM 2 CA VAL A 1 3.577 16.239 4.984 1.00 35.39 CATOM 3 C VAL A 1 4.896 16.3985277 A 1 2.343 16.975 5.494 1.00 45.39 CATOM 6 CG1 VAL A 1 2.586 18.497 5.590 1.00 60.06 CATOM 7 CG2 VAL A 1 1.103 16.811 4.634 1.00 53.93 CATOM 8 N LEU A 2 5.748 17.241 5.158 1.00 28.04 NATOM 9 CA LEU A 2 7.116 17.471 5 .661 1,00 24,31 CATOM 10 C LEU A 2 7.166 18.490 6.792 1.00 24.00 C ...  

tai, jos haluat näyttää jonkin verran RNA:

  ATOM 42 N3 GB 2 9.252 12.871 -1.168 1.00 36.98 NATOM 43 C4 GB 2 8.424 12.964 -2.233 1.00 34.09 CATOM 44 PAB 3 10.376 8.321 -4.834 1.00 40.53 PATOM 45 OP1 AB 3 11.773 8.279 -5.364 1.00 38.97 OATOM 46 OP2 AB 3 9.396 7.283 -5.218 39,32 OATOM 47 O5 'AB 3 10,429 8,473 -3,211 1,00 36,55 O
ATOM 48 C5 'AB 3 11.698 8.232 -2.554 1.00 35.13 C  

Protein Data Bank - kansainvälinen instituutio, joka arkistoi ja merkitsee kaikkien biologisten molekyylien rakennemalleja voi tallettaa - käyttää nyt ensisijaisena muotona mmCIF . Kiinteän sarakkeen PDB-muodossa oli luonnostaan ​​rajoituksia (enintään 99 999 atomia, mutta myös oli vaikea sisällyttää lisätietoja). Ne tuottavat edelleen PDB-tiedostoja, jos mahdollista (eli suurimpia rakenteita lukuun ottamatta), mutta ainoa talletuksiin nyt hyväksytty muoto on mmCIF.

mmCIF: llä on melko ei intuitiivinen CIF-syntakse (ajattele JSON tai XML, mutta suunniteltu ennen XML: ää) sekä ontologia, jonka määrittelee PDBx / mmCIF-sanakirja (ajattele XML-skeemaa). MmCIF: n sisältö on jaettu taulukkomaisiin luokkiin, joissa on taulukoiden väliset suhteet (se on suunniteltu RDMBS-suosion huipulla) ja sitä on vähän vaikeampaa työskennellä, joten vanha ATE-muoto on suositumpi.

Jaksot ATE: stä

ATE-muodossa on tietue nimeltä SEQRES , joka nimenomaisesti listaa sekvenssin, esimerkiksi (5NEO):

  SEQRES 1 A 18 GGUGGGGACGACC SEQRES 2 A 18 CCA CBV C  

mmCIF-muodossa on lisätietoja:

  _entity_poly.pdbx_seq_one_letter_code 'GGUGGGGACGACCCCA (CBV) C' _entity_poly.pdbx_seq_one_letter_code_can GGUGGGGGCCACCCC ntity_poly.pdbx_strand_id Silmukka__entity_poly_seq.entity_id _entity_poly_seq.num _entity_poly_seq.mon_id _entity_poly_seq.hetero 1 1 G n 1 2 G n 1 3 U n 1 4 G n 1 5 G n 1 6 G n 1 7 G n 1 C n 1 10 G n 1 11 A n 1 12 C n 1 13 C n 1 14 C n 1 15 C n 1 16 A n 1 17 CBV n 1 18 C n 

sekvenssi on kätevästi purettu sinulle.

Lisäksi mmCIF: ssä oleva _entity_poly_seq sisältää tietoja mikroheterogeenisuudesta eikä SEQRES-tietue. On merkitystä, kun mallissa on kaksi vaihtoehtoista tähdettä samassa paikassa, koska osassa näytettä oli pistemutaatio.

ATE-tiedostoilla, jotka eivät ole peräisin ATE: stä, ei yleensä ole SEQRES-tietuetta. Saatat saada sekvenssin atomiluettelosta (tähteiden nimet sarakkeissa 18-20), mutta joitain tähteitä saattaa puuttua atomiluettelosta, jos atomiasemia ei voitu määrittää.

Joten sen pitäisi olla helppoa Esimerkiksi BioPythonilla on BioSeqIO-moduuli, jossa on kaksi PDB-pseudomuotoa:

  • pdb-seqres - Lukee proteiinitietopankin (PDB) tiedoston proteiinisekvenssin määrittämiseksi. sellaisena kuin se näkyy otsikossa (ei riippuvuuksia).
  • pdb-atomi - käyttää Bio.PDB: tä määrittämään (osittaisen) proteiinisekvenssin sellaisena kuin se esiintyy rakenteessa tiedoston atomikoordinaattiosan perusteella ( vaatii NumPy for Bio.PDB).

Yritin juuri BioPython 1.66: ta ja vaikka SeqIO.parse () pystyy purkamaan proteiinisekvenssin, se epäonnistuu RNA: n kanssa , kuten 5NEO yllä. Hups.

Toissijaiset rakenteen rajoitukset

Tässä voidaan ajatella erilaisia ​​rajoituksia. Kirjoitan tarkennuksessa käytetyistä rajoituksista. Pelkästään kokeelliset tiedot eivät riitä mallin tarkentamiseen, joten tarvitaan rajoituksia, jotka edustavat aikaisempaa tietoa - atomisidosten pituudet, kulmat, tasomaiset rajoitukset, rajoitukset, jotka perustuvat paikalliseen samankaltaisuuteen muiden rakenteiden kanssa jotka määritettiin korkeamman resoluution tiedoista jne., mikä tahansa voi auttaa tekemään järkevän mallin. Tarkennusohjelmat (kuten Refmac, BUSTER, Phenix.refine) yrittävät sovittaa mallin tietoihin ja tyydyttää geometriset rajoitukset samanaikaisesti.

Makromolekyylikristallografiaohjelmisto on melko pirstoutunut ja prosessissa käytetään yleensä useita erilaisia ​​ohjelmia. Sattuu, että toissijaisten rakennerajoitusten luomiseen tarkoitetut ohjelmat ovat erillään varsinaisista tarkennusohjelmista. (Toissijaiset rakenteen rajoitukset ovat vähemmän välttämättömiä kuin kovalenttisten sidosten rajoitukset). CCP4: llä on LibG-ohjelma, joka tekee DNA: n / RNA: n rajoituksia Refmacille. Phenixillä on ohjelma nimeltä phenix.secondary_structure_restraints, tai voit käyttää palvelinta UCSC: ltä.

Näillä rajoituksilla ei ole "hakasulkuformaattia". , mutta ne määrittelevät nimenomaisesti odotetut etäisyydet ja kulmat atomien välillä. Esimerkiksi (phenix.refine):

  bond {action = * add atom_selection_1 = ketju A ja jäännös 1 ja nimi O6 atom_selection_2 = ketju A ja jäännös 18 ja nimi N4 distance_ideal = 2,91 sigma = 0.1}  

tai (Refmacille):

  exte dist ensimmäinen ketju A resi 16 ins. atomin N6 toinen ketju A resi 3 ins. atomin O4 arvo 2,94 sigma 0,15 tyyppi 1 ex dista ensimmäinen ketju A resi 16 ins. atomin N1 toinen ketju A resi 3 ins. atomin N3-arvo 2,84 sigma 0,1 tyypin 1 rasitus ensimmäinen ketju A resi 16 ins. atomin C2 toinen ketju A resi 16 ins. atomin N1 kolmas ketju A resi 3 ins. atomin N3 neljäs ketju A resi 3 ins. atomin C4 arvo 180 sigma 15 tyyppi 1  
Ivan Castro
2017-06-08 04:31:46 UTC
view on stackexchange narkive permalink

Jos osaat käyttää pythonia:

1 - Lataa ModeRNA-moduuli täältä ja asenna

2 - pythonista IDLE execute:

  moderna-tuonnista * m = load_model ('file.pdb', 'A') #A on chainseq = m.get_sequence () sec = m.get_secstruc ()  

muuttuja sec tallentaa toissijaisen rakenteen hakasulkuihin.



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...