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 xemTHÊ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]
2Trì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]
3Tậ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]
4Chuỗ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]
5Nhiề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]
6mô 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]
7vị 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ử