Hướng dẫn biopython pdb chain - chuỗi pdb biopython

Biopython

Lớp chuỗi, được sử dụng trong các đối tượng cấu trúc.

Lớp ________ 1 ________ 2 (ID)(id)

Cơ sở: Bio.PDB.Entity.Entity

Xác định lớp chuỗi.

Chuỗi là một đối tượng của thực thể loại, lưu trữ dư lượng và bao gồm một phương pháp để truy cập các nguyên tử từ dư lượng.

________ 4 (tự, id) ¶(self, id)

Khởi tạo lớp.

________ 5 (bản thân, người khác) ¶(self, other)

Xác thực nếu ID lớn hơn khác.

________ 6 (bản thân, người khác) ¶(self, other)

Xác thực nếu ID lớn hơn hoặc bằng nhau.

________ 7 (bản thân, người khác) ¶(self, other)

Xác thực nếu ID nhỏ hơn khác.

________ 8 (bản thân, người khác) ¶(self, other)

Xác thực nếu ID thấp hơn hoặc bằng ID khác.

________ 9 (tự, id) ¶(self, id)

Trả lại dư lượng với ID đã cho.

ID của dư lượng là (Cờ Hetero, Định danh trình tự, Mã chèn). Nếu ID là INT, nó được dịch thành (Hồi, ID, ID,) bằng phương thức _Translate_id.

Arguments:
  • id - (chuỗi, int, chuỗi) hoặc int

________ 10 (tự, id) ¶(self, id)

Kiểm tra xem dư lượng có ID đã cho có trong chuỗi này.

Arguments:
  • id - (chuỗi, int, chuỗi) hoặc int

________ 10 (tự, id) ¶(self, id)

Kiểm tra xem dư lượng có ID đã cho có trong chuỗi này.

Arguments:
  • id - (chuỗi, int, chuỗi) hoặc int

________ 10 (tự, id) ¶(self)

Kiểm tra xem dư lượng có ID đã cho có trong chuỗi này.

________ 11 (tự, id) ¶(self)

Xóa mục.

________ 12 (bản thân) ¶

Trả về số nhận dạng chuỗi.(self, id)

________ 13 (tự) ¶

Trả lại một danh sách các dư lượng không bị hủy bỏ.

Một số đối tượng dư lượng ẩn một số dư lượng rối loạn (đối tượng DismedResidue). Phương pháp này giải nén chúng, tức là. Nó trả về một danh sách các đối tượng dư lượng đơn giản.

________ 14 (tự, id) ¶
  • id - (chuỗi, int, chuỗi) hoặc int

________ 10 (tự, id) ¶(self)

Kiểm tra xem dư lượng có ID đã cho có trong chuỗi này.

________ 11 (tự, id) ¶(self)

Xóa mục.

________ 12 (bản thân) ¶(self, verbose: bool = False) → None¶

Trả về số nhận dạng chuỗi.

________ 13 (tự) ¶

Trả lại một danh sách các dư lượng không bị hủy bỏ.

Một số đối tượng dư lượng ẩn một số dư lượng rối loạn (đối tượng DismedResidue). Phương pháp này giải nén chúng, tức là. Nó trả về một danh sách các đối tượng dư lượng đơn giản. (verbose) – default False describe runtime problems

________ 14 (tự, id) ¶(self, verbose: bool = False, start: Union[int, NoneType] = None, fin: Union[int, NoneType] = None)

Trả lại 1 nếu một dư lượng có ID đã cho.

Trả lại một danh sách các dư lượng không bị hủy bỏ.

Một số đối tượng dư lượng ẩn một số dư lượng rối loạn (đối tượng DismedResidue). Phương pháp này giải nén chúng, tức là. Nó trả về một danh sách các đối tượng dư lượng đơn giản. (verbose) – default False describe runtime problems

________ 14 (tự, id) ¶

Trả lại 1 nếu một dư lượng có ID đã cho.

ID của dư lượng là (Cờ Hetero, Định danh trình tự, Mã chèn).

Nếu ID là INT, nó được dịch thành (Hồi, ID, ID,) bằng phương thức _Translate_id. – if any chain does not have .pic attribute

Tranh luận:

________ 15 (tự) ¶

import os
from Bio import PDB


class ChainSplitter:
    def __init__(self, out_dir=None):
        """ Create parsing and writing objects, specify output directory. """
        self.parser = PDB.PDBParser()
        self.writer = PDB.PDBIO()
        if out_dir is None:
            out_dir = os.path.join(os.getcwd(), "chain_PDBs")
        self.out_dir = out_dir

    def make_pdb(self, pdb_path, chain_letters, overwrite=False, struct=None):
        """ Create a new PDB file containing only the specified chains.

        Returns the path to the created file.

        :param pdb_path: full path to the crystal structure
        :param chain_letters: iterable of chain characters (case insensitive)
        :param overwrite: write over the output file if it exists
        """
        chain_letters = [chain.upper() for chain in chain_letters]

        # Input/output files
        (pdb_dir, pdb_fn) = os.path.split(pdb_path)
        pdb_id = pdb_fn[3:7]
        out_name = "pdb%s_%s.ent" % (pdb_id, "".join(chain_letters))
        out_path = os.path.join(self.out_dir, out_name)
        print "OUT PATH:",out_path
        plural = "s" if (len(chain_letters) > 1) else ""  # for printing

        # Skip PDB generation if the file already exists
        if (not overwrite) and (os.path.isfile(out_path)):
            print("Chain%s %s of '%s' already extracted to '%s'." %
                    (plural, ", ".join(chain_letters), pdb_id, out_name))
            return out_path

        print("Extracting chain%s %s from %s..." % (plural,
                ", ".join(chain_letters), pdb_fn))

        # Get structure, write new file with only given chains
        if struct is None:
            struct = self.parser.get_structure(pdb_id, pdb_path)
        self.writer.set_structure(struct)
        self.writer.save(out_path, select=SelectChains(chain_letters))

        return out_path


class SelectChains(PDB.Select):
    """ Only accept the specified chains when saving. """
    def __init__(self, chain_letters):
        self.chain_letters = chain_letters

    def accept_chain(self, chain):
        return (chain.get_id() in self.chain_letters)


if __name__ == "__main__":
    """ Parses PDB id's desired chains, and creates new PDB structures. """
    import sys
    if not len(sys.argv) == 2:
        print "Usage: $ python %s 'pdb.txt'" % __file__
        sys.exit()

    pdb_textfn = sys.argv[1]

    pdbList = PDB.PDBList()
    splitter = ChainSplitter("/home/steve/chain_pdbs")  # Change me.

    with open(pdb_textfn) as pdb_textfile:
        for line in pdb_textfile:
            pdb_id = line[:4].lower()
            chain = line[4]
            pdb_fn = pdbList.retrieve_pdb_file(pdb_id)
            splitter.make_pdb(pdb_fn, chain)

Một lưu ý cuối cùng: Đừng viết trình phân tích cú pháp của riêng bạn cho các tệp PDB.Thông số kỹ thuật định dạng là xấu xí (thực sự xấu xí) và số lượng tệp PDB bị lỗi ngoài kia rất đáng kinh ngạc.Sử dụng một công cụ như Biopython sẽ xử lý phân tích cú pháp cho bạn!don't write your own parser for PDB files. The format specification is ugly (really ugly), and the amount of faulty PDB files out there is staggering. Use a tool like BioPython that will handle parsing for you!

Hơn nữa, thay vì sử dụng Chain1, bạn nên sử dụng các công cụ tương tác với cơ sở dữ liệu PDB cho bạn.Họ tính đến các giới hạn kết nối FTP, tính chất thay đổi của cơ sở dữ liệu PDB và hơn thế nữa.Tôi nên biết - Tôi đã cập nhật Chain2 để tính toán các thay đổi trong cơ sở dữ liệu.=)