Biopython - moduł PDB

Biopython dostarcza moduł Bio.PDB do manipulacji strukturami polipeptydowymi. PDB (Protein Data Bank) jest największym źródłem informacji o strukturze białek dostępnym online. Zawiera wiele różnych struktur białkowych, w tym kompleksy białko-białko, białko-DNA, białko-RNA.

Aby załadować PDB, wpisz poniższe polecenie -

from Bio.PDB import *

Formaty plików struktury białek

PDB rozprowadza struktury białkowe w trzech różnych formatach -

  • Format pliku oparty na XML, który nie jest obsługiwany przez Biopython
  • Format pliku pdb, który jest specjalnie sformatowanym plikiem tekstowym
  • Format plików PDBx / mmCIF

Pliki PDB dystrybuowane przez Protein Data Bank mogą zawierać błędy formatowania, które powodują, że są niejednoznaczne lub trudne do przeanalizowania. Moduł Bio.PDB próbuje automatycznie radzić sobie z tymi błędami.

Moduł Bio.PDB implementuje dwa różne parsery, jeden w formacie mmCIF, a drugi w formacie pdb.

Nauczmy się szczegółowo analizować każdy z formatów -

Parser mmCIF

Pobierzmy przykładową bazę danych w formacie mmCIF z serwera pdb za pomocą poniższego polecenia -

>>> pdbl = PDBList() 
>>> pdbl.retrieve_pdb_file('2FAT', pdir = '.', file_format = 'mmCif')

Spowoduje to pobranie określonego pliku (2fat.cif) z serwera i zapisanie go w bieżącym katalogu roboczym.

Tutaj PDBList zapewnia opcje wyświetlania i pobierania plików z internetowego serwera FTP PDB. metoda retrieve_pdb_file wymaga nazwy pliku do pobrania bez rozszerzenia. retrieve_pdb_file ma również opcję określenia katalogu pobierania, katalogu pdir i formatu pliku, format_pliku. Możliwe wartości formatu pliku są następujące -

  • „MmCif” (domyślnie, plik PDBx / mmCif)
  • „Pdb” (format PDB)
  • „Xml” (format PMDML / XML)
  • „Mmtf” (mocno skompresowany)
  • „Pakiet” (archiwum w formacie PDB dla dużych struktur)

Aby załadować plik cif, użyj Bio.MMCIF.MMCIFParser, jak określono poniżej -

>>> parser = MMCIFParser(QUIET = True) 
>>> data = parser.get_structure("2FAT", "2FAT.cif")

Tutaj QUIET pomija ostrzeżenie podczas analizowania pliku. get_structure will parse the file and return the structure with id as 2FAT (pierwszy argument).

Po uruchomieniu powyższego polecenia analizuje plik i wyświetla ewentualne ostrzeżenie, jeśli jest dostępne.

Teraz sprawdź strukturę za pomocą poniższego polecenia -

>>> data 
<Structure id = 2FAT>

To get the type, use type method as specified below,

>>> print(type(data)) 
<class 'Bio.PDB.Structure.Structure'>

Pomyślnie przeanalizowaliśmy plik i uzyskaliśmy strukturę białka. Dowiemy się szczegółów struktury białka i jak ją uzyskać w następnym rozdziale.

Parser PDB

Pobierzmy przykładową bazę danych w formacie PDB z serwera pdb za pomocą poniższego polecenia -

>>> pdbl = PDBList() 
>>> pdbl.retrieve_pdb_file('2FAT', pdir = '.', file_format = 'pdb')

Spowoduje to pobranie określonego pliku (pdb2fat.ent) z serwera i zapisanie go w bieżącym katalogu roboczym.

Aby załadować plik pdb, użyj Bio.PDB.PDBParser, jak określono poniżej -

>>> parser = PDBParser(PERMISSIVE = True, QUIET = True) 
>>> data = parser.get_structure("2fat","pdb2fat.ent")

Tutaj get_structure jest podobne do MMCIFParser. PERMISSIVE spróbuj przeanalizować dane białka tak elastycznie, jak to możliwe.

Teraz sprawdź strukturę i jej typ za pomocą fragmentu kodu podanego poniżej -

>>> data 
<Structure id = 2fat> 
>>> print(type(data)) 
<class 'Bio.PDB.Structure.Structure'>

Cóż, struktura nagłówka przechowuje informacje ze słownika. Aby to zrobić, wpisz poniższe polecenie -

>>> print(data.header.keys()) dict_keys([
   'name', 'head', 'deposition_date', 'release_date', 'structure_method', 'resolution', 
   'structure_reference', 'journal_reference', 'author', 'compound', 'source', 
   'keywords', 'journal']) 
>>>

Aby uzyskać nazwę, użyj następującego kodu -

>>> print(data.header["name"]) 
an anti-urokinase plasminogen activator receptor (upar) antibody: crystal 
structure and binding epitope
>>>

Możesz również sprawdzić datę i rozdzielczość za pomocą poniższego kodu -

>>> print(data.header["release_date"]) 2006-11-14 
>>> print(data.header["resolution"]) 1.77

Struktura PDB

Struktura PDB składa się z jednego modelu zawierającego dwa łańcuchy.

  • łańcuch L, zawierający szereg reszt
  • łańcuch H, zawierający szereg reszt

Każda reszta składa się z wielu atomów, z których każdy ma pozycję 3D reprezentowaną przez współrzędne (x, y, z).

Nauczmy się szczegółowo, jak uzyskać strukturę atomu w poniższej sekcji -

Model

Metoda Structure.get_models () zwraca iterator po modelach. Jest zdefiniowany poniżej -

>>> model = data.get_models() 
>>> model 
<generator object get_models at 0x103fa1c80> 
>>> models = list(model) 
>>> models [<Model id = 0>] 
>>> type(models[0]) 
<class 'Bio.PDB.Model.Model'>

Tutaj Model opisuje dokładnie jedną konformację 3D. Zawiera jeden lub więcej łańcuchów.

Łańcuch

Metoda Model.get_chain () zwraca iterator po łańcuchach. Jest zdefiniowany poniżej -

>>> chains = list(models[0].get_chains()) 
>>> chains 
[<Chain id = L>, <Chain id = H>] 
>>> type(chains[0]) 
<class 'Bio.PDB.Chain.Chain'>

Tutaj Chain opisuje właściwą strukturę polipeptydu, tj. Kolejną sekwencję związanych reszt.

Pozostałość

Metoda Chain.get_residues () zwraca iterator po resztach. Jest zdefiniowany poniżej -

>>> residue = list(chains[0].get_residues())
>>> len(residue) 
293 
>>> residue1 = list(chains[1].get_residues()) 
>>> len(residue1) 
311

Cóż, Reszta zawiera atomy należące do aminokwasu.

Atomy

Residue.get_atom () zwraca iterator po atomach, jak zdefiniowano poniżej -

>>> atoms = list(residue[0].get_atoms()) 
>>> atoms 
[<Atom N>, <Atom CA>, <Atom C>, <Atom Ov, <Atom CB>, <Atom CG>, <Atom OD1>, <Atom OD2>]

Atom zawiera współrzędną 3D atomu i nazywa się go wektorem. Jest zdefiniowany poniżej

>>> atoms[0].get_vector() 
<Vector 18.49, 73.26, 44.16>

Reprezentuje wartości współrzędnych x, y i z.