Python phân tích tệp PDB

Tôi đang cố gắng viết một trình phân tích cú pháp nhanh cho. pdb [chúng hiển thị cấu trúc protein]. Một ví dụ về protein mà tôi đang xem là KRAS [phổ biến trong bệnh ung thư] và ở đây. http. //www. rcsb. org/pdb/tệp/3GFT. pdb

Nếu bạn cuộn xuống đủ xa, bạn sẽ đến một dòng giống như thế này.
ATOM 1 N MET A 1 63. 645 97. 355 31. 526 1. 00 33. 80 N

Yếu tố đầu tiên "nguyên tử" có nghĩa là điều này liên quan đến một nguyên tử thực tế trong protein. 1 liên quan đến số lượng chung, N liên quan đến loại nguyên tử, "MET" là tên của dư lượng, "A" liên quan đến loại chuỗi, 1 ["1 thứ hai"] là số lượng nguyên tử và

Đầu ra tôi cần giống như thế này [trong đó "1" bên dưới tương ứng với số lượng nguyên tử, không phải số lượng chung].
ĐẠT MỘT 1 63. 645 97. 355 31. 526

Để làm cho vấn đề trở nên phức tạp hơn, đôi khi số lượng nguyên tử [số "1" thứ hai trong trường hợp này] là số âm. Trong những trường hợp đó, tôi muốn bỏ qua dòng đó và tiếp tục cho đến khi tôi đạt được mục tích cực vì những yếu tố đó liên quan đến hóa sinh cần thiết để tìm vị trí chứ không phải protein thực tế. Để làm cho vấn đề trở nên tồi tệ hơn, đôi khi bạn nhận được một dòng như vậy

ATOM 139 CA AILE A 21 63. 260 111. 496 12. 203 0. 50 12. 87 C
ATOM 140 CA BILE A 21 63. 275 111. 495 12. 201 0. 50 12. 17 C

Mặc dù cả hai đều đề cập đến dư lượng 21, nhưng hóa sinh không đủ chính xác để có được vị trí chính xác, vì vậy họ đưa ra hai lựa chọn. Lý tưởng nhất là tôi sẽ chỉ định "1", "2" hoặc bất cứ thứ gì, nhưng nếu tôi chỉ chọn tùy chọn đầu tiên thì sẽ ổn thôi. Cuối cùng, đối với loại nguyên tử ["N"] trong ví dụ ban đầu của tôi, tôi chỉ muốn lấy những dòng đó có chữ "CA"

Tôi là người mới sử dụng trăn và quá trình đào tạo của tôi là về thống kê sinh học nên tôi đã tự hỏi cách tốt nhất để làm điều này là gì?

Tôi nhận ra rằng có một chút để hỏi, nhưng một số hướng dẫn sẽ giúp ích rất nhiều. Tôi đã lập trình tất cả các bit thống kê bằng R, nhưng bây giờ tôi chỉ cần lấy các tệp của mình ở đúng định dạng

Đối số đầu tiên của hàm

In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
6 là một chuỗi cung cấp tên của tệp. Đối số thứ hai của hàm
In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
6 là một chuỗi cho biết chế độ tệp. Chúng tôi đang sử dụng
In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
8 ở đây vì chúng tôi đang đọc tệp. Các giá trị có thể khác bao gồm
In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
9 để tạo tệp mới để ghi và
In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
0 để nối thêm vào tệp hiện có

Nếu sáu ký tự đầu tiên của dòng là

In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
1 [2 dấu cách ở cuối] thì dòng đó có thông tin thú vị. Các số và tên chiếm các vị trí cố định trên một dòng, vì vậy bạn có thể trích xuất chúng bằng cách lập chỉ mục và chuyển đổi chúng từ chuỗi thành số, nếu cần, trong trình đọc của bạn

Tôi là người mới trong lĩnh vực tin sinh học và khi cố phân tích tệp pdb bằng thư viện Biopython đã gặp phải lỗi này. một số nguyên tử được xác định hai lần trong phần dư không thể lấy tọa độ, id, tên, v.v.

Làm cách nào tôi có thể nhận được tất cả các nguyên tử thay vì các bản sao?

Đây là mã của tôi

from Bio.PDB.PDBParser import PDBParser
parser = PDBParser[PERMISSIVE=1]

structure = parser.get_structure["test", "/home/chinar/Downloads/Serinthreonine_ protein kinase, PIM 2/1_doc.pdb"]


for model in structure:
    for chain in model:
        for residue in chain:
            for atom in residue:
                print[atom]

đầu ra

Warning: PDBConstructionException: Atom C defined twice in residue  at line 31.

Exception ignored.

Some atoms or residues may be missing in the data structure.
  % message, PDBConstructionWarning]
/usr/local/lib/python3.6/dist-packages/Bio/PDB/PDBParser.py:291:

PDBConstructionWarning: 

PDBConstructionException: Atom C defined twice in residue  at line 32.

Exception ignored.

Some atoms or residues may be missing in the data structure.

  % message, PDBConstructionWarning]




trình tự lắp ráp lỗi phần mềm biopython • 4. 5 nghìn lượt xem

THÊM NHẬN XÉT • đã cập nhật 3. 3 năm trước bởi Joe 20k • đã viết 3. 3 năm trước bởi movchinar • 0

0

Vào chế độ chỉnh sửa

Đây có phải là tệp PDB bạn đã tạo không?

Là tập tin chắc chắn hình thành một cách chính xác?

THÊM TRẢ LỜI • 3. 3 năm trước bởi Joe 20k

0

Vào chế độ chỉnh sửa

Sau quá trình tự động ghép nối, kết quả là một tệp có định dạng là pdbqt. Tôi đã thay đổi định dạng pdbqt thành PDB bằng lệnh UNIX [cut -c-66 my_docking. pdbqt > my_docking. pdb]

Ví dụ này trình bày cách sử dụng trình tìm nạp PDB linh hoạt,. Đầu vào hợp lệ là định danh PDB, e. g 2k39 hoặc danh sách các mã định danh PDB, e. g.

In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
0. Các tệp PDB đã nén [
In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
1] sẽ được lưu vào thư mục làm việc hiện tại hoặc thư mục đích

Tìm nạp tệp PDB

tập tin duy nhất

Chúng tôi bắt đầu bằng cách nhập mọi thứ từ gói ProDy

In [1]: from prody import *

Hàm sẽ trả về tên tệp nếu tải xuống thành công

In [2]: filename = fetchPDB['1p38']

In [3]: filename
Out[3]: '1p38.pdb.gz'

Nhiều tệp

Chức năng này cũng chấp nhận một danh sách các định danh PDB

In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]

Đối với các lần tải xuống không thành công,

In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
2 sẽ được trả lại [hoặc danh sách sẽ chứa mục
In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]

In [5]: filenames
Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
2]

Cũng lưu ý rằng trong trường hợp này, chúng tôi đã chuyển tên thư mục. Các tệp được lưu trong thư mục này, sau khi nó được tạo nếu nó không tồn tại

ProDy sẽ cung cấp cho bạn báo cáo kết quả tải xuống và trả về danh sách tên tệp. Báo cáo sẽ được in trên màn hình, trong trường hợp này sẽ là

@> 1p38 [./1p38.pdb.gz] is found in the target directory.
@> @!~# is not a valid identifier.
@> 1r39 downloaded [./1r39.pdb.gz]
@> PDB download completed [1 found, 1 downloaded, 1 failed].

Phân tích tệp PDB

ProDy cung cấp trình phân tích cú pháp PDB nhanh và linh hoạt,. Trình phân tích cú pháp có thể được sử dụng để đọc các tập hợp con nguyên tử, chuỗi hoặc mô hình cụ thể [trong cấu trúc NMR] được xác định rõ ràng để tăng hiệu suất. Ví dụ này cho thấy cách sử dụng các tùy chọn phân tích cú pháp linh hoạt

Ba loại đầu vào được chấp nhận từ người dùng

  • Đường dẫn tệp PDB, e. g.
    In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]
    
    In [5]: filenames
    Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
    
    5
  • đường dẫn tệp PDB được nén [gzipped], e. g.
    In [4]: filenames = fetchPDB[['1p38', '1r39', '@!~#']]
    
    In [5]: filenames
    Out[5]: ['1p38.pdb.gz', '1r39.pdb.gz', None]
    
    6
  • mã định danh PDB, e. g. 2k39

Đầu ra là một thể hiện lưu trữ dữ liệu nguyên tử và có thể được sử dụng làm đầu vào cho các hàm và lớp để phân tích động lực học

Phân tích một tập tin

Bạn có thể phân tích cú pháp các tệp PDB bằng cách chuyển tên tệp [các tệp được nén được xử lý]. Chúng tôi làm như vậy sau khi tải xuống tệp PDB [xem để biết thêm thông tin]

Warning: PDBConstructionException: Atom C defined twice in residue  at line 31.

Exception ignored.

Some atoms or residues may be missing in the data structure.
  % message, PDBConstructionWarning]
/usr/local/lib/python3.6/dist-packages/Bio/PDB/PDBParser.py:291:

PDBConstructionWarning: 

PDBConstructionException: Atom C defined twice in residue  at line 32.

Exception ignored.

Some atoms or residues may be missing in the data structure.

  % message, PDBConstructionWarning]




2

Trình phân tích cú pháp trả về một thể hiện

Cũng lưu ý rằng thời gian cần thiết để phân tích cú pháp tệp được in trên màn hình. Điều này bao gồm thời gian cần thiết để đánh giá các đường tọa độ và xây dựng một phiên bản và không bao gồm thời gian dành cho việc đọc tệp từ đĩa

Sử dụng một định danh

Các tệp PDB có thể được phân tích cú pháp bằng cách chuyển một mã định danh đơn giản. Trình phân tích cú pháp sẽ tìm tệp PDB khớp với số nhận dạng đã cho trong thư mục làm việc hiện tại. Nếu không tìm thấy tệp phù hợp, ProDy sẽ tự động tải xuống từ máy chủ PDB FTP và lưu nó vào thư mục làm việc hiện tại

Warning: PDBConstructionException: Atom C defined twice in residue  at line 31.

Exception ignored.

Some atoms or residues may be missing in the data structure.
  % message, PDBConstructionWarning]
/usr/local/lib/python3.6/dist-packages/Bio/PDB/PDBParser.py:291:

PDBConstructionWarning: 

PDBConstructionException: Atom C defined twice in residue  at line 32.

Exception ignored.

Some atoms or residues may be missing in the data structure.

  % message, PDBConstructionWarning]




3

Tập hợp con của các nguyên tử

Trình phân tích cú pháp có thể được sử dụng để phân tích các nguyên tử xương sống hoặc Cα

Warning: PDBConstructionException: Atom C defined twice in residue  at line 31.

Exception ignored.

Some atoms or residues may be missing in the data structure.
  % message, PDBConstructionWarning]
/usr/local/lib/python3.6/dist-packages/Bio/PDB/PDBParser.py:291:

PDBConstructionWarning: 

PDBConstructionException: Atom C defined twice in residue  at line 32.

Exception ignored.

Some atoms or residues may be missing in the data structure.

  % message, PDBConstructionWarning]




4

Chuỗi cụ thể

Trình phân tích cú pháp có thể được sử dụng để phân tích một chuỗi cụ thể từ tệp PDB

Warning: PDBConstructionException: Atom C defined twice in residue  at line 31.

Exception ignored.

Some atoms or residues may be missing in the data structure.
  % message, PDBConstructionWarning]
/usr/local/lib/python3.6/dist-packages/Bio/PDB/PDBParser.py:291:

PDBConstructionWarning: 

PDBConstructionException: Atom C defined twice in residue  at line 32.

Exception ignored.

Some atoms or residues may be missing in the data structure.

  % message, PDBConstructionWarning]




5

Nhiều chuỗi cũng có thể được phân tích cú pháp theo cùng một cách

Warning: PDBConstructionException: Atom C defined twice in residue  at line 31.

Exception ignored.

Some atoms or residues may be missing in the data structure.
  % message, PDBConstructionWarning]
/usr/local/lib/python3.6/dist-packages/Bio/PDB/PDBParser.py:291:

PDBConstructionWarning: 

PDBConstructionException: Atom C defined twice in residue  at line 32.

Exception ignored.

Some atoms or residues may be missing in the data structure.

  % message, PDBConstructionWarning]




6

mô hình cụ thể

Trình phân tích cú pháp có thể được sử dụng để phân tích một mô hình cụ thể từ một tệp

Warning: PDBConstructionException: Atom C defined twice in residue  at line 31.

Exception ignored.

Some atoms or residues may be missing in the data structure.
  % message, PDBConstructionWarning]
/usr/local/lib/python3.6/dist-packages/Bio/PDB/PDBParser.py:291:

PDBConstructionWarning: 

PDBConstructionException: Atom C defined twice in residue  at line 32.

Exception ignored.

Some atoms or residues may be missing in the data structure.

  % message, PDBConstructionWarning]




7

vị trí thay thế

Khi tệp PDB chứa các vị trí thay thế cho một số nguyên tử, theo mặc định, các vị trí thay thế có chỉ báo

@> 1p38 [./1p38.pdb.gz] is found in the target directory.
@> @!~# is not a valid identifier.
@> 1r39 downloaded [./1r39.pdb.gz]
@> PDB download completed [1 found, 1 downloaded, 1 failed].
0 được phân tích cú pháp

In [2]: filename = fetchPDB['1p38']

In [3]: filename
Out[3]: '1p38.pdb.gz'
0

Vị trí thay thế cụ thể có thể được phân tích cú pháp như sau

In [2]: filename = fetchPDB['1p38']

In [3]: filename
Out[3]: '1p38.pdb.gz'
1

Lưu ý rằng trong trường hợp này, số lượng nguyên tử khác nhau giữa hai nhóm nguyên tử. Điều này là do các loại dư lượng nguyên tử với các vị trí thay thế là khác nhau

Ngoài ra, tất cả các vị trí thay thế có thể được phân tích cú pháp như sau

In [2]: filename = fetchPDB['1p38']

In [3]: filename
Out[3]: '1p38.pdb.gz'
2

Lưu ý rằng lần này trình phân tích cú pháp trả về ba bộ tọa độ. Một cho mỗi chỉ báo vị trí thay thế được tìm thấy trong tệp này [A, B, C]. Khi phân tích cú pháp nhiều vị trí thay thế, trình phân tích cú pháp sẽ mong đợi loại dư lượng giống nhau cho mỗi nguyên tử có vị trí thay thế. Nếu tên dư lượng khác nhau, thông báo cảnh báo sẽ được in

Đối số tổng hợp

Trình phân tích cú pháp có thể được sử dụng để phân tích tọa độ từ một mô hình cụ thể cho một tập hợp con các nguyên tử của một chuỗi cụ thể

In [2]: filename = fetchPDB['1p38']

In [3]: filename
Out[3]: '1p38.pdb.gz'
3

dữ liệu tiêu đề

Trình phân tích cú pháp PDB có thể được sử dụng để trích xuất dữ liệu tiêu đề trong tệp từ tệp PDB như sau

In [2]: filename = fetchPDB['1p38']

In [3]: filename
Out[3]: '1p38.pdb.gz'
4

Cũng có thể chỉ phân tích cú pháp dữ liệu tiêu đề bằng cách chuyển model=0 làm đối số

In [2]: filename = fetchPDB['1p38']

In [3]: filename
Out[3]: '1p38.pdb.gz'
5

hoặc sử dụng chức năng

In [2]: filename = fetchPDB['1p38']

In [3]: filename
Out[3]: '1p38.pdb.gz'
6

Viết tệp PDB

Các tệp PDB có thể được ghi bằng chức năng. Ví dụ này cho thấy cách ghi tệp PDB cho các phiên bản và tập hợp con của các nguyên tử

Chủ Đề