Hướng dẫn biopython pdb - biopython pdb

    Giới thiệu

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 là một mô -đun sinh học tập trung vào việc làm việc với các cấu trúc tinh thể của các đại phân tử sinh học. Tài liệu này cung cấp một cái nhìn tổng quan khá đầy đủ về
    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7.

    Cài đặt Bio.pdb

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 được tự động cài đặt như một phần của Biopython. Biopython có thể được lấy từ http://www.biopython.org. Nó chạy trên nhiều nền tảng (Linux/UNIX, Windows, Mac, Mạnh).

    Ai là người sử dụng Bio.pdb?

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 đã được sử dụng trong việc xây dựng Disembl, một máy chủ web dự đoán các vùng bị rối loạn trong protein và Columbiaa, một trang web cung cấp cấu trúc protein được chú thích (không còn có sẵn?).
    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 cũng đã được sử dụng để thực hiện tìm kiếm quy mô lớn cho các vị trí hoạt động tương đồng giữa các cấu trúc protein trong PDB (xem Protein 51: 96 Nott108, 2003) và để phát triển một thuật toán mới xác định các yếu tố cấu trúc thứ cấp tuyến tính (xem BMC Bioinformatics 6 : 202, 2005).51: 96–108, 2003), and to develop a new algorithm that identifies linear secondary structure elements (see BMC Bioinformatics 6: 202, 2005).

    Đánh giá từ các yêu cầu về các tính năng và thông tin,

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 cũng được sử dụng bởi một số LPC (các công ty dược phẩm lớn :-).

    Có một tài liệu tham khảo Bio.pdb?

    Có, và tôi sẽ đánh giá cao nó nếu bạn sẽ đề cập đến

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 trong các ấn phẩm nếu bạn sử dụng nó. Tài liệu tham khảo là:

    Hamelryck, T., Manderick, B. (2003) Lớp phân tích PDB và cấu trúc được thực hiện trong Python. Tin sinh học 19: 2308 Từ231019: 2308–2310

    Bài viết có thể được tải xuống miễn phí thông qua trang web Tạp chí Bioinformatics. Tôi hoan nghênh e-mail cho tôi biết bạn đang sử dụng

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 cho những gì. Yêu cầu tính năng cũng được chào đón quá.

    Bio.pdb được kiểm tra tốt như thế nào?

    Khá tốt, thực sự.

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 đã được thử nghiệm rộng rãi trên gần 5500 cấu trúc từ PDB - tất cả các cấu trúc dường như được phân tích chính xác. Thông tin chi tiết có thể được tìm thấy trong bài viết tin sinh học
    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7.
    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 đã được sử dụng/đang được sử dụng trong nhiều dự án nghiên cứu như một công cụ đáng tin cậy. Trên thực tế, tôi đã sử dụng
    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 gần như hàng ngày cho mục đích nghiên cứu và tiếp tục làm việc để cải thiện nó và thêm các tính năng mới.

    Nó nhanh như thế nào?

    Hiệu suất

    sc = mmcif_dict["_exptl_crystal.density_percent_sol"]
    
    9 đã được thử nghiệm trên khoảng 800 cấu trúc (mỗi cấu trúc thuộc một siêu họ SCOP duy nhất). Điều này mất khoảng 20 phút, hoặc trung bình 1,5 giây cho mỗi cấu trúc. Phân tích cấu trúc của tiểu đơn vị ribosome lớn (1FKK), chứa khoảng 64000 nguyên tử, mất 10 giây trên PC 1000 MHz. Nói tóm lại: nó có nhiều hơn đủ nhanh cho nhiều ứng dụng.

    Tại sao tôi nên sử dụng Bio.pdb?

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 có thể chính xác là những gì bạn muốn, và sau đó một lần nữa nó có thể không. Nếu bạn quan tâm đến việc khai thác dữ liệu tiêu đề PDB, bạn có thể muốn tìm nơi khác vì chỉ có sự hỗ trợ hạn chế cho việc này. Nếu bạn tìm kiếm một cấu trúc dữ liệu đầy đủ, mạnh mẽ để truy cập dữ liệu nguyên tử
    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 có lẽ là dành cho bạn.

    Cách sử dụng

    Câu hỏi chung

    Nhập bio.pdb

    Điều đó đơn giản:

    Có hỗ trợ cho đồ họa phân tử không?

    Không trực tiếp, chủ yếu là vì đã có khá nhiều giải pháp dựa trên Python/Python, có khả năng có thể được sử dụng với

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7. Sự lựa chọn của tôi là Pymol, BTW (Tôi đã sử dụng thành công này với
    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 và có lẽ sẽ có các mô -đun Pymol cụ thể trong
    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 sớm/một ngày nào đó). Các giải pháp đồ họa phân tử dựa trên Python/Aware bao gồm:

    • Pymol: http://pymol.org
    • Chimera: http://www.cgl.ucsf.edu/chimera/
    • PMV: http://mgltools.scripps.edu/packages/pmv
    • COOT: http://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/
    • CCP4MG: http://www.ccp4.ac.uk/mg/
    • MMLIB: http://pymmlib.sourceforge.net/
    • VMD: http://www.ks.uiuc.edu/research/vmd/
    • MMTK: http://dirac.cnrs-orleans.fr/mmtk/

    Tôi thật điên rồ khi viết một ứng dụng đồ họa phân tử khác (thực sự đã thực hiện điều đó, thực tế :-).

    Tuy nhiên, bạn có thể tương tác xem các thực thể cấu trúc Biopython trong một cuốn sổ Jupyter bằng cách sử dụng nglview:

    import nglview as nv
    
    view = nv.show_biopython(structure)
    view
    

    Input/output

    Làm cách nào để tạo một đối tượng cấu trúc từ tệp PDB?

    Đầu tiên, tạo đối tượng

    sc = mmcif_dict["_exptl_crystal.density_percent_sol"]
    
    9:

    Sau đó, tạo một đối tượng cấu trúc từ tệp PDB theo cách sau (tệp PDB trong trường hợp này được gọi là

    y_list = mmcif_dict["_atom_site.Cartn_y"]
    
    6,
    y_list = mmcif_dict["_atom_site.Cartn_y"]
    
    7 là tên do người dùng xác định cho cấu trúc):

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    

    Làm cách nào để tạo một đối tượng cấu trúc từ tệp MMCIF?

    Tương tự như trường hợp trường hợp tệp PDB, trước tiên hãy tạo đối tượng

    y_list = mmcif_dict["_atom_site.Cartn_y"]
    
    8:

    Sau đó sử dụng trình phân tích cú pháp này để tạo một đối tượng cấu trúc từ tệp MMCIF:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    

    Còn về định dạng PDB XML mới thì sao?

    Điều đó chưa được hỗ trợ, nhưng tôi chắc chắn có kế hoạch hỗ trợ điều đó trong tương lai (nó không có nhiều công việc). Liên hệ với tôi nếu bạn cần điều này, nó có thể khuyến khích tôi :-).

    Tôi muốn có một số quyền truy cập cấp thấp hơn vào tệp MMCIF

    Bạn đã nhận được nó. Bạn có thể tạo một từ điển Python ánh xạ tất cả các thẻ MMCIF trong một tệp MMCIF vào các giá trị của chúng. Nếu có nhiều giá trị (như trong trường hợp thẻ

    y_list = mmcif_dict["_atom_site.Cartn_y"]
    
    9, giữ tọa độ Y của tất cả các nguyên tử), thẻ được ánh xạ tới danh sách các giá trị. Từ điển được tạo từ tệp MMCIF như sau:

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    

    Ví dụ: Nhận nội dung dung môi từ tệp MMCIF:

    sc = mmcif_dict["_exptl_crystal.density_percent_sol"]
    

    Ví dụ: Nhận danh sách tọa độ y của tất cả các nguyên tử

    y_list = mmcif_dict["_atom_site.Cartn_y"]
    

    Nhờ Christian Rother, bạn có thể truy cập một số thông tin từ tiêu đề PDB. Tuy nhiên, lưu ý rằng nhiều tệp PDB chứa các tiêu đề có thông tin không đầy đủ hoặc sai. Nhiều lỗi đã được khắc phục trong các tệp MMCIF tương đương. Do đó, nếu bạn quan tâm đến thông tin tiêu đề, bạn nên trích xuất thông tin từ các tệp MMCIF bằng công cụ

    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    0 được mô tả ở trên, thay vì phân tích tiêu đề PDB.Hence, if you are interested in the header information, it is a good idea to extract information from mmCIF files using the
    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    0 tool described above, instead of parsing the PDB header.

    Bây giờ điều đó đã được làm rõ, hãy để Lừa trở lại để phân tích cú pháp tiêu đề PDB. Đối tượng cấu trúc có một thuộc tính gọi là

    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    1 là từ điển Python ánh xạ các bản ghi tiêu đề cho các giá trị của chúng.

    Example:

    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    

    Các khóa có sẵn là

    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    2,
    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    3,
    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    4,
    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    5,
    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    6,
    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    7,
    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    8 (Bản đồ vào danh sách các tài liệu tham khảo),
    resolution = structure.header["resolution"]
    keywords = structure.header["keywords"]
    
    9,
    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    0 và
    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    1 (Bản đồ đến một từ điển với các thông tin khác nhau về hợp chất bị tinh thể).

    Từ điển cũng có thể được tạo mà không cần tạo đối tượng

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    2, tức là. trực tiếp từ tệp PDB:

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    

    Tôi có thể sử dụng Bio.pdb với các cấu trúc NMR (nghĩa là với nhiều hơn một mô hình) không?

    Chắc chắn rồi. Nhiều trình phân tích cú pháp PDB cho rằng chỉ có một mô hình, làm cho tất cả chúng nhưng vô dụng đối với các cấu trúc NMR. Thiết kế của đối tượng

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    2 giúp dễ dàng xử lý các tệp PDB với nhiều hơn một mô hình (xem phần đối tượng cấu trúc).The Structure Object).

    Làm cách nào để tải xuống các cấu trúc từ PDB?

    Điều này có thể được thực hiện bằng cách sử dụng đối tượng

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    4, sử dụng phương thức
    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    5. Đối số cho phương pháp này là định danh PDB của cấu trúc.

    pdbl = PDBList()
    pdbl.retrieve_pdb_file("1FAT")
    

    Lớp

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    4 cũng có thể được sử dụng làm công cụ dòng lệnh:

    Tệp được tải xuống sẽ được gọi là

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    7 và được lưu trữ trong thư mục làm việc hiện tại. Lưu ý rằng phương thức
    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    5 cũng có một đối số tùy chọn
    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    9 chỉ định một thư mục cụ thể để lưu trữ các tệp PDB đã tải xuống.

    Phương pháp

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    5 cũng có một số tùy chọn để chỉ định định dạng nén được sử dụng để tải xuống và chương trình được sử dụng để giải nén cục bộ (định dạng
    pdbl = PDBList()
    pdbl.retrieve_pdb_file("1FAT")
    
    1 mặc định và
    pdbl = PDBList()
    pdbl.retrieve_pdb_file("1FAT")
    
    2). Ngoài ra, trang web PDB FTP có thể được chỉ định khi tạo đối tượng
    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    4. Theo mặc định, máy chủ FTP của Ngân hàng dữ liệu protein trên toàn thế giới được sử dụng. Xem tài liệu API để biết thêm chi tiết. Một lần nữa cảm ơn Kristian Rother đã quyên góp mô -đun này.

    Làm cách nào để tải xuống toàn bộ PDB?

    Các lệnh sau sẽ lưu trữ tất cả các tệp PDB trong thư mục

    pdbl = PDBList()
    pdbl.retrieve_pdb_file("1FAT")
    
    4:

    python PDBList.py all /data/pdb
    python PDBList.py all /data/pdb -d
    

    Phương thức API cho điều này được gọi là

    pdbl = PDBList()
    pdbl.retrieve_pdb_file("1FAT")
    
    5. Thêm tùy chọn
    pdbl = PDBList()
    pdbl.retrieve_pdb_file("1FAT")
    
    6 sẽ lưu trữ tất cả các tệp trong cùng một thư mục. Mặt khác, chúng được sắp xếp thành các thư mục con kiểu PDB theo PDB ID của họ. Tùy thuộc vào lưu lượng truy cập, tải xuống hoàn chỉnh sẽ mất 2-4 ngày.

    Làm cách nào để giữ một bản sao cục bộ của PDB cập nhật?

    Điều này cũng có thể được thực hiện bằng cách sử dụng đối tượng

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    4. Người ta chỉ đơn giản là tạo một đối tượng
    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    4 (chỉ định thư mục nơi có bản sao cục bộ của PDB) và gọi phương thức
    pdbl = PDBList()
    pdbl.retrieve_pdb_file("1FAT")
    
    9:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    0

    Tất nhiên người ta có thể tạo ra một cronjob hàng tuần trong số này để giữ cho bản sao địa phương tự động cập nhật. Trang web PDB FTP cũng có thể được chỉ định (xem tài liệu API).

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    4 có một số phương pháp bổ sung có thể được sử dụng. Phương pháp
    python PDBList.py all /data/pdb
    python PDBList.py all /data/pdb -d
    
    1 có thể được sử dụng để có được danh sách tất cả các mục PDB lỗi thời. Phương pháp
    python PDBList.py all /data/pdb
    python PDBList.py all /data/pdb -d
    
    2 có thể được sử dụng để có được các mục được thêm, sửa đổi hoặc bị lỗi thời trong tuần hiện tại. Để biết thêm thông tin về khả năng của
    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    4, hãy xem tài liệu API.

    Còn tất cả các tệp PDB Buggy thì sao?

    Người ta biết rằng nhiều tệp PDB có chứa các lỗi ngữ nghĩa (Tôi không nói về chính các cấu trúc, mà là đại diện của chúng trong các tệp PDB).

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 cố gắng xử lý điều này theo hai cách. Đối tượng
    sc = mmcif_dict["_exptl_crystal.density_percent_sol"]
    
    9 có thể hoạt động theo hai cách: một cách hạn chế và một cách cho phép (đây bây giờ là mặc định). Cách hạn chế từng là mặc định, nhưng mọi người dường như nghĩ rằng
    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 đã bị sập, do một lỗi (hah!), Vì vậy tôi đã thay đổi nó. Nếu bạn từng gặp một lỗi thực sự, xin vui lòng cho tôi biết ngay lập tức!

    Example:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    1

    Ở trạng thái cho phép (mặc định), các tệp PDB rõ ràng có chứa các lỗi được sửa chữa (nghĩa là một số dư lượng hoặc nguyên tử bị bỏ lại). Những lỗi này bao gồm:

    • Nhiều dư lượng với cùng một định danh
    • Nhiều nguyên tử có cùng một định danh (có tính đến định danh Altloc)

    Các lỗi này cho thấy các vấn đề thực trong tệp PDB (để biết chi tiết, xem bài viết về tin sinh học). Ở trạng thái hạn chế, các tệp PDB có lỗi gây ra ngoại lệ xảy ra. Điều này rất hữu ích để tìm lỗi trong các tệp PDB.

    Tuy nhiên, một số lỗi được tự động sửa. Thông thường mỗi nguyên tử bị rối loạn nên có một định danh altloc không trống. Tuy nhiên, có nhiều cấu trúc không tuân theo quy ước này, và có một định danh trống và không trống cho hai vị trí bị rối loạn của cùng một nguyên tử. Điều này được tự động giải thích theo đúng cách.

    Đôi khi, một cấu trúc chứa một danh sách các dư lượng thuộc chuỗi A, tiếp theo là dư lượng thuộc chuỗi B, và một lần nữa tiếp theo là dư lượng thuộc chuỗi A, tức là các chuỗi bị hỏng. Điều này cũng được giải thích chính xác.

    Tôi có thể viết các tệp PDB không?

    Sử dụng lớp

    python PDBList.py all /data/pdb
    python PDBList.py all /data/pdb -d
    
    7 cho việc này. Tất nhiên, nó cũng dễ dàng viết ra các phần cụ thể của một cấu trúc.

    Ví dụ: Lưu cấu trúc

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    2

    Nếu bạn muốn viết ra một phần của cấu trúc, hãy sử dụng lớp

    python PDBList.py all /data/pdb
    python PDBList.py all /data/pdb -d
    
    8 (cũng trong
    python PDBList.py all /data/pdb
    python PDBList.py all /data/pdb -d
    
    7). Chọn có bốn phương pháp:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    3

    Theo mặc định, mọi phương thức trả về 1 (có nghĩa là mô hình/chuỗi/dư lượng/nguyên tử được bao gồm trong đầu ra). Bằng cách phân lớp

    python PDBList.py all /data/pdb
    python PDBList.py all /data/pdb -d
    
    8 và trả lại 0 khi thích hợp, bạn có thể loại trừ các mô hình, chuỗi, v.v. khỏi đầu ra. Cumbersome có thể, nhưng rất mạnh mẽ. Mã sau đây chỉ ghi ra dư lượng glycine:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    4

    Nếu điều này quá phức tạp đối với bạn, mô -đun

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    01 chứa hàm
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    02 tiện dụng ghi tất cả các dư lượng trong chuỗi giữa dư lượng bắt đầu và kết thúc.

    Tôi có thể viết các tệp MMCIF không?

    Không, và tôi cũng không có kế hoạch để thêm chức năng đó sớm (hoặc bao giờ

    • Tôi không cần nó, và nó rất nhiều công việc, cộng với không ai từng yêu cầu nó). Những người muốn thêm điều này có thể liên hệ với tôi.

    Đối tượng cấu trúc

    Những gì mà bố cục tổng thể của một đối tượng cấu trúc?

    Đối tượng

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    2 tuân theo cái gọi là kiến ​​trúc SMCRA (Cấu trúc/Mô hình/Chuỗi/Rư/nguyên tử): Kiến trúc:SMCRA (Structure/Model/Chain/Residue/Atom) architecture :

    • Một cấu trúc bao gồm các mô hình
    • Một mô hình bao gồm các chuỗi
    • Một chuỗi bao gồm dư lượng
    • Một dư lượng bao gồm các nguyên tử

    Đây là cách nhiều nhà sinh học/nhà sinh học cấu trúc nghĩ về cấu trúc, và cung cấp một cách đơn giản nhưng hiệu quả để đối phó với cấu trúc. Công cụ bổ sung về cơ bản được thêm vào khi cần thiết. Một sơ đồ UML của đối tượng

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    2 (quên bây giờ các lớp ____105) được hiển thị trong hình bên dưới.

    Hướng dẫn biopython pdb - biopython pdb

    Sơ đồ kiến ​​trúc SMCRA của đối tượng cấu trúc.

    Các đường đầy đủ với kim cương biểu thị sự kết hợp, các đường đầy đủ với mũi tên biểu thị sự tham chiếu, các đường đầy đủ với các hình tam giác biểu thị sự kế thừa và đường nét đứt với các hình tam giác biểu thị sự hiện thực hóa giao diện.

    Làm cách nào để điều hướng thông qua một đối tượng cấu trúc?

    Mã sau lặp lại thông qua tất cả các nguyên tử của một cấu trúc:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    5

    Ngoài ra còn có một số phím tắt:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    6

    Cấu trúc, mô hình, chuỗi, dư lượng và nguyên tử được gọi là các thực thể trong Biopython. Bạn luôn có thể lấy cha mẹ

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    06 từ một đứa trẻ
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    06, ví dụ:Entities in Biopython. You can always get a parent
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    06 from a child
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    06, e.g.:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    7

    Bạn cũng có thể kiểm tra xem

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    06 có một đứa trẻ nào đó sử dụng phương pháp
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    09 hay không.

    Tôi có thể làm điều đó thuận tiện hơn một chút không?

    Bạn có thể làm những việc như:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    8

    Bạn cũng có thể sử dụng chức năng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    10:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    9

    Rõ ràng, ________ 111 ​​= Atom, ________ 112 = dư lượng, ________ 113 = chuỗi, ________ 114 = mô hình, ________ 115 = cấu trúc. Bạn có thể sử dụng điều này để đi lên trong hệ thống phân cấp, ví dụ: Để có được một danh sách (duy nhất)

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 hoặc
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    17 cha mẹ từ danh sách
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18S:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    0

    Để biết thêm thông tin, xem tài liệu API.

    Dễ. Dưới đây là một số ví dụ:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    1

    Lưu ý rằng bạn có thể sử dụng một phím tắt:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    2

    ID mô hình là gì?

    ID mô hình là một số nguyên biểu thị thứ hạng của mô hình trong tệp PDB/MMCIF. ID mô hình bắt đầu ở 0. Cấu trúc tinh thể thường chỉ có một mô hình (có ID 0), trong khi các tệp NMR thường có một số mô hình.

    ID chuỗi là gì?

    ID chuỗi được chỉ định trong tệp PDB/MMCIF và là một ký tự duy nhất (thường là một chữ cái).

    ID dư lượng là gì?

    Điều này phức tạp hơn một chút, do định dạng PDB vụng về. ID dư lượng là một tuple với ba yếu tố:

    • Hetero-flag: Đây là
      structure = parser.get_structure("PHA-L", "1FAT.pdb")
      
      19 cộng với tên của dư lượng dị thể (ví dụ:
      structure = parser.get_structure("PHA-L", "1FAT.pdb")
      
      20 trong trường hợp phân tử glucose), hoặc
      structure = parser.get_structure("PHA-L", "1FAT.pdb")
      
      21 trong trường hợp phân tử nước.hetero-flag: this is
      structure = parser.get_structure("PHA-L", "1FAT.pdb")
      
      19 plus the name of the hetero-residue (e.g.
      structure = parser.get_structure("PHA-L", "1FAT.pdb")
      
      20 in the case of a glucose molecule), or
      structure = parser.get_structure("PHA-L", "1FAT.pdb")
      
      21 in the case of a water molecule.
    • Định danh trình tự trong chuỗi, ví dụ: 100sequence identifier in the chain, e.g. 100
    • Mã chèn, ví dụ:
      structure = parser.get_structure("PHA-L", "1FAT.pdb")
      
      22. Mã chèn đôi khi được sử dụng để bảo tồn một sơ đồ đánh số dư mong muốn nhất định. Một đột biến chèn Ser 80 (chèn, ví dụ: giữa dư lượng Thr 80 và ASN 81) có thể, ví dụ: Có số nhận dạng trình tự và mã chèn như sau: THR 80 A, SER 80 B, ASN 81. Theo cách này, sơ đồ đánh số dư vẫn phù hợp với cấu trúc loại hoang dã.insertion code, e.g.
      structure = parser.get_structure("PHA-L", "1FAT.pdb")
      
      22. The insertion code is sometimes used to preserve a certain desirable residue numbering scheme. A Ser 80 insertion mutant (inserted e.g. between a Thr 80 and an Asn 81 residue) could e.g. have sequence identifiers and insertion codes as follows: Thr 80 A, Ser 80 B, Asn 81. In this way the residue numbering scheme stays in tune with that of the wild type structure.

    Do đó, ID của dư lượng glucose ở trên sẽ là

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    23. Nếu mã Hetero-Flag và Chèn là trống, chỉ riêng bộ định danh trình tự có thể được sử dụng:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    3

    Lý do cho Hetero-Flag là nhiều, nhiều tệp PDB sử dụng cùng một định danh trình tự cho axit amin và dư lượng dị hợp hoặc nước, sẽ tạo ra các vấn đề rõ ràng nếu không sử dụng chất dị hợp.

    ID nguyên tử là gì?

    ID nguyên tử chỉ đơn giản là tên nguyên tử (ví dụ:

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    24). Trong thực tế, tên ATOM được tạo bằng cách tước tất cả các không gian từ tên ATOM trong tệp PDB.

    Tuy nhiên, trong các tệp PDB, một không gian có thể là một phần của tên nguyên tử. Thông thường, các nguyên tử canxi được gọi là

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    25 để phân biệt chúng với các nguyên tử Cα (được gọi là
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    26). Trong trường hợp, việc tước bỏ các không gian sẽ tạo ra vấn đề (ví dụ: hai nguyên tử được gọi là
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    24 trong cùng một dư lượng), các không gian được giữ.

    Rối loạn được xử lý như thế nào?

    Đây là một trong những điểm mạnh của

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7. Nó có thể xử lý cả các nguyên tử bị rối loạn và đột biến điểm (ví dụ: một gly và dư lượng ALA ở cùng một vị trí).

    Rối loạn nên được xử lý từ hai quan điểm: nguyên tử và quan điểm dư lượng. Nói chung, tôi đã cố gắng gói gọn tất cả sự phức tạp phát sinh từ rối loạn. Nếu bạn chỉ muốn lặp lại tất cả các nguyên tử Cα, bạn không quan tâm rằng một số dư lượng có chuỗi bên bị rối loạn. Mặt khác, nó cũng có thể đại diện cho rối loạn hoàn toàn trong cấu trúc dữ liệu. Do đó, các nguyên tử hoặc dư lượng bị rối loạn được lưu trữ trong các đối tượng đặc biệt hoạt động như thể không có rối loạn. Điều này được thực hiện bằng cách chỉ đại diện cho một tập hợp các nguyên tử hoặc dư lượng bị rối loạn. Tập hợp con nào được chọn (ví dụ: trong số hai vị trí ATOM bên bị rối loạn của phần dư Ser) có thể được người dùng chỉ định.

    Các vị trí nguyên tử bị rối loạn được biểu thị bằng các đối tượng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 thông thường, nhưng tất cả các đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 đại diện cho cùng một nguyên tử vật lý được lưu trữ trong một đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    31 (xem phần đối tượng cấu trúc). Mỗi đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 trong một đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    31 có thể được lập chỉ mục duy nhất bằng cách sử dụng trình xác định altloc của nó. Đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    31 Chuyển tiếp tất cả các cuộc gọi phương thức chưa được thực hiện đến đối tượng nguyên tử được chọn, theo mặc định, theo mặc định, phương thức đại diện cho nguyên tử có công suất cao nhất. Người dùng tất nhiên có thể thay đổi đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 đã chọn, sử dụng trình xác định altloc của nó. Theo cách này, rối loạn nguyên tử được thể hiện chính xác mà không có nhiều phức tạp bổ sung. Nói cách khác, nếu bạn không quan tâm đến rối loạn nguyên tử, bạn sẽ không bị làm phiền bởi nó.
    are represented by ordinary
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 objects, but all
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 objects that represent the same physical atom are stored in a
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    31 object (see section The Structure Object). Each
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 object in a
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    31 object can be uniquely indexed using its altloc specifier. The
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    31 object forwards all uncaught method calls to the selected Atom object, by default the one that represents the atom with the highest occupancy. The user can of course change the selected
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 object, making use of its altloc specifier. In this way atom disorder is represented correctly without much additional complexity. In other words, if you are not interested in atom disorder, you will not be bothered by it.

    Mỗi nguyên tử bị rối loạn có một định danh altloc đặc trưng. Bạn có thể chỉ định rằng một đối tượng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    31 nên hoạt động giống như đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 được liên kết với một định danh Altloc cụ thể:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    4

    Một trường hợp đặc biệt phát sinh khi rối loạn là do đột biến điểm, tức là khi hai hoặc nhiều đột biến điểm của polypeptide có trong tinh thể. Một ví dụ về điều này có thể được tìm thấy trong cấu trúc PDB 1EN2.point mutations, i.e. when two or more point mutants of a polypeptide are present in the crystal. An example of this can be found in PDB structure 1EN2.

    Vì các dư lượng này thuộc về một loại dư lượng khác (ví dụ: Hãy nói với Ser 60 và Cys 60), chúng không nên được lưu trữ trong một đối tượng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 như trong trường hợp phổ biến. Trong trường hợp này, mỗi dư lượng được biểu thị bằng một đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 và cả hai đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 được lưu trữ trong một đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    41 duy nhất (xem phần đối tượng cấu trúc).The Structure Object).

    Đối tượng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    41 Chuyển tiếp tất cả các phương thức chưa được tính đến đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 đã chọn (theo mặc định, đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 cuối cùng được thêm vào) và do đó hoạt động giống như một dư lượng thông thường. Mỗi đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 trong một đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    41 có thể được xác định duy nhất bằng tên dư lượng của nó. Trong ví dụ trên, phần dư Ser 60 sẽ có ID ‘Ser, trong đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    41, trong khi dư lượng Cys 60 sẽ có ID‘ Cys. Người dùng có thể chọn đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 hoạt động trong đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    41 thông qua ID này.

    Ví dụ: Giả sử rằng một chuỗi có đột biến điểm ở vị trí 10, bao gồm dư lượng Ser và Cys. Hãy chắc chắn rằng dư lượng 10 của chuỗi này hoạt động như dư lượng Cys.

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    5

    Ngoài ra, bạn có thể nhận được một danh sách tất cả các đối tượng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 (ví dụ: tất cả các đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    31 được giải nén đối với các đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 riêng lẻ của chúng) bằng phương pháp
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    53 của đối tượng A (____ 105) ________ 116.

    Tôi có thể sắp xếp dư lượng trong một chuỗi bằng cách nào đó không?

    Vâng, hơi, nhưng tôi đã chờ đợi một yêu cầu cho tính năng này hoàn thành nó :-).

    Làm thế nào là phối tử và dung môi được xử lý?

    Xem id dư lượng là gì?

    Còn các yếu tố B thì sao?

    Vâng, vâng!

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 Hỗ trợ các yếu tố B đẳng hướng và dị hướng, và cũng liên quan đến độ lệch chuẩn của yếu tố B dị hướng nếu có (xem phân tích phần).Analysis).

    Điều gì về độ lệch chuẩn của các vị trí nguyên tử?

    Yup, hỗ trợ. Xem phần Phân tích.Analysis.

    Tôi nghĩ rằng cấu trúc dữ liệu SMCRA không linh hoạt/gợi cảm/bất cứ điều gì đủ

    Chắc chắn, chắc chắn. Mọi người luôn nghĩ ra các cấu trúc dữ liệu (chủ yếu là phần mềm hơi hoặc được triển khai một phần) xử lý tất cả các tình huống có thể và có thể mở rộng theo tất cả các cách có thể suy nghĩ (và không thể tưởng tượng được). Tuy nhiên, sự thật là 99,9% người sử dụng (và ý tôi là thực sự sử dụng!) Các cấu trúc tinh thể suy nghĩ về các mô hình, chuỗi, dư lượng và nguyên tử. Triết lý của

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 là cung cấp cấu trúc dữ liệu hợp lý, sạch sẽ, đơn giản nhưng hoàn chỉnh để truy cập dữ liệu cấu trúc. miếng bánh pudding đang bị ăn dở.

    Hơn nữa, khá dễ dàng để xây dựng các cấu trúc dữ liệu chuyên dụng hơn trên lớp

    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    2 (ví dụ: có một lớp
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    59). Mặt khác, đối tượng
    handle = open(filename, "r")
    header_dict = parse_pdb_header(handle)
    handle.close()
    
    2 được xây dựng bằng cách sử dụng phương pháp phân tích cú pháp/người tiêu dùng (được gọi là ________ 49/________ 58 và
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    63, tương ứng). Người ta có thể dễ dàng sử dụng lại trình phân tích cú pháp PDB/MMCIF bằng cách triển khai lớp
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    63 chuyên biệt. Tất nhiên cũng là tầm thường để thêm hỗ trợ cho các định dạng tệp mới bằng cách viết trình phân tích cú pháp mới.

    Phân tích

    Sử dụng các phương pháp sau:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    6

    Sử dụng các phương pháp sau:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    7

    Làm thế nào để tôi đo khoảng cách?

    Điều đó đơn giản: toán tử trừ các nguyên tử đã bị quá tải để trả lại khoảng cách giữa hai nguyên tử.

    Example:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    8

    Làm cách nào để đo góc?

    Điều này có thể dễ dàng được thực hiện thông qua biểu diễn vectơ của tọa độ nguyên tử và hàm

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    65 từ mô -đun
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    66:

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    9

    Làm cách nào để đo góc xoắn?

    Một lần nữa, điều này có thể dễ dàng được thực hiện thông qua biểu diễn vectơ của tọa độ nguyên tử, lần này bằng cách sử dụng hàm

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    67 từ mô -đun
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    66:

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    0

    Làm cách nào để xác định các liên hệ nguyên tử-nguyên tử?

    Sử dụng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    69. Điều này sử dụng cấu trúc dữ liệu cây KD được mã hóa trong C phía sau màn hình, do đó, nó khá nhanh (xem
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    70).

    Sử dụng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    71. Bạn có thể sử dụng đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    59 kết quả để lấy chuỗi dưới dạng đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    73 hoặc để có được danh sách các nguyên tử Cα. Polypeptide có thể được chế tạo bằng cách sử dụng tiêu chí khoảng cách C-N hoặc Cα-Cα.

    Example:

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    1

    Lưu ý rằng trong trường hợp trên, chỉ có mô hình 0 của cấu trúc được xem xét bởi

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    71. Tuy nhiên, có thể sử dụng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    71 để xây dựng các đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    59 từ các đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    77 và
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    17.

    Làm thế nào để tôi có được trình tự của một cấu trúc?

    Điều đầu tiên cần làm là trích xuất tất cả các polypeptide từ cấu trúc (xem mục trước). Trình tự của mỗi polypeptide sau đó có thể dễ dàng thu được từ các đối tượng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    59. Trình tự được biểu diễn dưới dạng đối tượng Biopython
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    73.

    Example:

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    2

    Làm cách nào để xác định cấu trúc thứ cấp?

    Đối với chức năng này, bạn cần cài đặt DSSP (và có được giấy phép cho nó - miễn phí để sử dụng học tập). Sau đó, sử dụng lớp

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    81, ánh xạ
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 đối tượng vào cấu trúc thứ cấp của chúng (và diện tích bề mặt có thể truy cập). Các mã DSSP được liệt kê trong bảng dưới đây. Lưu ý rằng DSSP (chương trình, và do đó, do đó, lớp) không thể xử lý nhiều mô hình!

    Mã DSSPCấu trúc thứ cấp
    Hα-helix
    BDư lượng β-cầu bị cô lập
    ESợi
    G3-10 Helix
    TôiHelix π
    TXoay
    Sbẻ cong
    -Khác

    Làm cách nào để tính diện tích bề mặt có thể truy cập của dư lượng?

    Sử dụng lớp

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    81 (xem thêm mục trước). Nhưng xem thêm mục tiếp theo.

    Làm thế nào để tôi tính toán độ sâu dư lượng?

    Độ sâu dư lượng là khoảng cách trung bình của các nguyên tử dư lượng từ bề mặt có thể truy cập dung môi. Nó có một tham số hóa khá mới và rất mạnh mẽ về khả năng tiếp cận dung môi. Đối với chức năng này, bạn cần cài đặt chương trình MSMS của Michel Sanner. Sau đó sử dụng lớp

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    84. Lớp này hoạt động như một từ điển ánh xạ
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 đối tượng với các bộ dữ liệu tương ứng (độ sâu dư lượng, độ sâu Cα). Độ sâu Cα là khoảng cách của nguyên tử Cα dư lượng đến bề mặt có thể truy cập dung môi.

    Example:

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    3

    Bạn cũng có thể truy cập vào bề mặt phân tử (thông qua hàm

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    86), dưới dạng một mảng numpy với các điểm bề mặt.

    Làm thế nào để tôi tính toán một nửa tiếp xúc hình cầu?

    Phơi nhiễm Half Sphere (HSE) là một biện pháp 2D, 2D tiếp xúc với dung môi. Về cơ bản, nó đếm số lượng nguyên tử Cα xung quanh dư lượng theo hướng của chuỗi bên của nó và theo hướng ngược lại (trong bán kính 13 Å). Mặc dù sự đơn giản của nó, nó vượt trội so với nhiều biện pháp tiếp xúc với dung môi khác. Một bài viết mô tả biện pháp 2D tiểu thuyết này đã được gửi.

    HSE có hai hương vị: HSEα và HSEβ. Cái trước chỉ sử dụng các vị trí nguyên tử Cα, trong khi vị trí sau sử dụng các vị trí nguyên tử Cα và Cβ. Biện pháp HSE được tính bằng lớp

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    87, cũng có thể tính toán số liên lạc. Lớp thứ hai có các phương thức trả về từ điển ánh xạ đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    16 cho các giá trị HSEα, HSEβ và số tiếp xúc tương ứng của nó.

    Example:

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    4

    Đầu tiên, tạo một tệp căn chỉnh ở định dạng FASTA, sau đó sử dụng lớp

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    89. Lớp này cũng có thể được sử dụng để sắp xếp với nhiều hơn hai cấu trúc.

    Làm cách nào để kiểm tra nếu một đối tượng dư lượng là axit amin?

    Sử dụng

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    90.

    Tôi có thể thực hiện các hoạt động vector trên tọa độ nguyên tử không?

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 Các đối tượng Trả về biểu diễn đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    66 của tọa độ với phương pháp
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    93.
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    66 thực hiện toàn bộ các hoạt động vectơ 3D, phép nhân ma trận (trái và phải) và một số hoạt động liên quan đến xoay tiên tiến. Xem thêm câu hỏi tiếp theo.

    Làm cách nào để đặt một Cβ ảo vào dư lượng Gly?

    OK, tôi thừa nhận, ví dụ này chỉ có mặt để thể hiện các khả năng của mô -đun ____ 37 ____ ____ ____166 (mặc dù mã này thực sự được sử dụng trong mô -đun

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    87, chứa một cách mới để tham số hóa việc tiếp xúc dư lượng - xuất bản đang hoạt động). Giả sử rằng bạn muốn tìm thấy vị trí của nguyên tử Cβ Ridue, nếu nó có một. Bạn làm điều đó như thế nào? Chà, xoay nguyên tử N của dư lượng gly dọc theo liên kết Cα -C trên -120 độ gần như đặt nó vào vị trí của nguyên tử Cβ ảo. Ở đây, cách làm điều đó, sử dụng phương pháp
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    98 (có thể được sử dụng để xây dựng một vòng quay xung quanh một trục nhất định) của mô -đun
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    66:

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    5

    Ví dụ này cho thấy rằng nó có thể thực hiện một số hoạt động vectơ không cần thiết trên dữ liệu nguyên tử, có thể khá hữu ích. Ngoài tất cả các hoạt động vectơ thông thường (chéo (sử dụng

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    00) và DOT (sử dụng
    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    01), góc, định mức, v.v.) và hàm
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    98 đã đề cập ở trên, mô -đun
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    66 cũng có các phương pháp để xoay (
    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    04) hoặc phản ánh (
    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    05) Một vectơ trên đầu khác.

    Thao tác cấu trúc

    Làm thế nào để tôi tăng cường hai cấu trúc?

    Đáng ngạc nhiên, điều này được thực hiện bằng cách sử dụng đối tượng

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    06. Đối tượng này tính toán ma trận xoay và dịch thuật xoay hai danh sách các nguyên tử trên đầu nhau theo cách mà RMSD của chúng được giảm thiểu. Tất nhiên, hai danh sách cần chứa cùng một lượng nguyên tử. Đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    06 cũng có thể áp dụng phép quay/dịch vào danh sách các nguyên tử. Việc xoay và dịch được lưu trữ dưới dạng tuple trong thuộc tính
    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    08 của đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    06 (lưu ý rằng vòng quay là nhân đúng!). RMSD được lưu trữ trong thuộc tính
    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    10.

    Thuật toán được sử dụng bởi

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    06 xuất phát từ các tính toán ma trận, tái bản lần 2. Golub, G. & Van Loan (1989) và sử dụng phân tách giá trị số ít (điều này được thực hiện trong mô -đun
    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    12 chung).

    Example:

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    6

    Làm thế nào để tôi áp dụng hai cấu trúc dựa trên các trang web hoạt động của chúng?

    Khá dễ dàng. Sử dụng các nguyên tử vị trí hoạt động để tính toán ma trận xoay/dịch (xem ở trên) và áp dụng chúng cho toàn bộ phân tử.

    Tôi có thể thao tác tọa độ nguyên tử không?

    Có, sử dụng phương thức

    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    13 của đối tượng
    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    18 hoặc trực tiếp bằng phương pháp
    structure = parser.get_structure("PHA-L", "1FAT.cif")
    
    15.

    Các mô -đun tin sinh học cấu trúc khác

    Bio.SCOP

    Xem hướng dẫn Biopython chính.

    Bio.FSSP

    Chưa có tài liệu nào có sẵn.

    Bạn đã trả lời câu hỏi của tôi!

    Woah! Nó muộn và tôi mệt mỏi, và một ly Pedro Ximenez Sherry tuyệt vời đang đợi tôi. Chỉ cần gửi cho tôi một thư, và tôi sẽ trả lời bạn vào buổi sáng (với một chút may mắn).

    Người đóng góp

    Tác giả chính/người bảo trì của

    mmcif_dict = MMCIF2Dict("1FAT.cif")
    
    7 là:

    Thomas Hamelryck Trung tâm Sinh học Học viện Sinh học Phân tử Đại học Copenhagen Universitetsparken 15, đã qua 10 DK-2100 København Ø Đan Mạch Đan Mạch Đan Mạch Đan Mạch Đan Mạch Đan Mạch Đan Mạch

    Kristian Rother đã quyên góp mã để tương tác với cơ sở dữ liệu PDB và để phân tích tiêu đề PDB. Indraneel Majumdar đã gửi trong một số báo cáo lỗi và hỗ trợ mã hóa mô -đun

    structure = parser.get_structure("PHA-L", "1FAT.pdb")
    
    59. Rất cám ơn Brad Chapman, Jeffrey Chang, Andrew Dalke và Iddo Friedberg vì những gợi ý, nhận xét, giúp đỡ và/hoặc chỉ trích cắn :-).

    Tôi có thể đóng góp không?

    Có có có! Chỉ cần gửi e-mail đến Thomas Hamelryck hoặc đến các nhà phát triển Biopython nếu bạn có một cái gì đó hữu ích để đóng góp! Danh tiếng vĩnh cửu đang chờ đợi!