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 Show Nếu bạn cuộn xuống đủ xa, bạn sẽ đến một dòng giống như thế này. 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). Để 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 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
đầu ra 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 PDBtập tin duy nhấtChú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ệpChứ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 PDBProDy 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
Đầ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 tinBạ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) 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 danhCá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 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α 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 5Nhiều chuỗi cũng có thể được phân tích cú pháp theo cùng một cách 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 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ợpTrì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 PDBCá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ử |