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

Trang này mô tả

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
5, giao diện đầu vào/đầu ra trình tự tiêu chuẩn cho Biopython 1.43 trở lên. Để biết chi tiết thực hiện, xem trang phát triển
from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
6.

Novices Python có thể tìm thấy Hội thảo Biopython giới thiệu của Peter, bắt đầu bằng việc làm việc với các tệp trình tự bằng SEQIO.

Có cả một chương trong hướng dẫn (PDF) vào

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
5, và mặc dù có một số sự chồng chéo nhưng nó cũng đáng để đọc ngoài trang wiki này. Ngoài ra còn có tài liệu API (mà bạn có thể đọc trực tuyến hoặc từ bên trong Python với lệnh trợ giúp).

Mục tiêu

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
5 cung cấp một giao diện thống nhất đơn giản cho các định dạng tệp trình tự đầu vào và đầu ra (bao gồm nhiều sắp xếp chuỗi), nhưng sẽ chỉ xử lý các chuỗi dưới dạng các đối tượng
from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
9. Có một giao diện chị em
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
0 để làm việc trực tiếp với các tệp căn chỉnh chuỗi dưới dạng các đối tượng căn chỉnh.

Thiết kế được lấy cảm hứng một phần bởi sự đơn giản của Bioperl xông Seqio. Về lâu dài, chúng tôi hy vọng sẽ phù hợp với danh sách ấn tượng của các định dạng tệp chuỗi được hỗ trợ và nhiều định dạng căn chỉnh.

Lưu ý rằng việc đưa vào

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
5 (và
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
0) vào Biopython dẫn đến một số trùng lặp hoặc lựa chọn trong cách xử lý một số định dạng tệp. Ví dụ,
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
3 cũng sẽ đọc các chuỗi từ các tệp nexus - nhưng
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
3 cũng có thể làm nhiều hơn nữa, ví dụ như đọc bất kỳ cây phát sinh gen nào trong tệp nexus.

Tầm nhìn của tôi là để điều khiển dữ liệu trình tự, bạn nên thử

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
5 như là lựa chọn đầu tiên của bạn. Trừ khi bạn có một số yêu cầu rất cụ thể, tôi hy vọng điều này sẽ đủ.

Peter

Định dạng tệp

Bảng này liệt kê các định dạng tệp mà

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
5 có thể đọc, ghi và chỉ mục, với phiên bản Biopython nơi điều này được hỗ trợ lần đầu tiên (hoặc GIT để cho biết điều này được hỗ trợ trong mã phát triển mới nhất của chúng tôi). Tên định dạng là một chuỗi chữ thường đơn giản. Nếu có thể, chúng tôi sử dụng cùng tên với BioPerl xông Seqio và Têm chiều.

Tên định dạngĐọcViếtMục lụcGhi chú
Abi1.58 KhôngN/aĐọc các tệp theo dõi trình tự mao quản của ABI Sang Sanger, bao gồm cả điểm chất lượng Phred cho các cuộc gọi cơ sở. Điều này cho phép ABI chuyển đổi FASTQ. Lưu ý mỗi tệp ABI chứa một và chỉ một chuỗi (do đó không có điểm nào trong việc lập chỉ mục tệp).
Abi-trim1.71 KhôngN/aĐọc các tệp theo dõi trình tự mao quản của ABI Sang Sanger, bao gồm cả điểm chất lượng Phred cho các cuộc gọi cơ sở. Điều này cho phép ABI chuyển đổi FASTQ. Lưu ý mỗi tệp ABI chứa một và chỉ một chuỗi (do đó không có điểm nào trong việc lập chỉ mục tệp).
Abi-trim1.47 Không1.52 N/a
Đọc các tệp theo dõi trình tự mao quản của ABI Sang Sanger, bao gồm cả điểm chất lượng Phred cho các cuộc gọi cơ sở. Điều này cho phép ABI chuyển đổi FASTQ. Lưu ý mỗi tệp ABI chứa một và chỉ một chuỗi (do đó không có điểm nào trong việc lập chỉ mục tệp).1.73 KhôngKhôngN/a
Đọc các tệp theo dõi trình tự mao quản của ABI Sang Sanger, bao gồm cả điểm chất lượng Phred cho các cuộc gọi cơ sở. Điều này cho phép ABI chuyển đổi FASTQ. Lưu ý mỗi tệp ABI chứa một và chỉ một chuỗi (do đó không có điểm nào trong việc lập chỉ mục tệp).1.73 KhôngKhôngN/a
Đọc các tệp theo dõi trình tự mao quản của ABI Sang Sanger, bao gồm cả điểm chất lượng Phred cho các cuộc gọi cơ sở. Điều này cho phép ABI chuyển đổi FASTQ. Lưu ý mỗi tệp ABI chứa một và chỉ một chuỗi (do đó không có điểm nào trong việc lập chỉ mục tệp).1.43 1.43 KhôngN/a
Đọc các tệp theo dõi trình tự mao quản của ABI Sang Sanger, bao gồm cả điểm chất lượng Phred cho các cuộc gọi cơ sở. Điều này cho phép ABI chuyển đổi FASTQ. Lưu ý mỗi tệp ABI chứa một và chỉ một chuỗi (do đó không có điểm nào trong việc lập chỉ mục tệp).1.43 1.54 1.52 Abi-trim
Tương tự như trên ABI, nhưng với sự cắt tỉa chất lượng với thuật toán Mott.1.43 1.43 1.52 át chủ
Đọc các chuỗi contig từ một tệp lắp ráp ACE. Sử dụng Bio.Shenter .ace trong nội bộ1.71 1.71 KhôngN/a
Đọc các tệp theo dõi trình tự mao quản của ABI Sang Sanger, bao gồm cả điểm chất lượng Phred cho các cuộc gọi cơ sở. Điều này cho phép ABI chuyển đổi FASTQ. Lưu ý mỗi tệp ABI chứa một và chỉ một chuỗi (do đó không có điểm nào trong việc lập chỉ mục tệp).1.50 1.50 1.52 Abi-trim
Tương tự như trên ABI, nhưng với sự cắt tỉa chất lượng với thuật toán Mott.1.50 1.50 1.52 át chủ
Đọc các chuỗi contig từ một tệp lắp ráp ACE. Sử dụng Bio.Shenter .ace trong nội bộ1.51 1.51 1.52 nguyên tử CIF
Sử dụng Bio.pdb.mmcifparser để xác định chuỗi protein (một phần) khi nó xuất hiện trong cấu trúc dựa trên tọa độ nguyên tử.1.75 KhôngKhôngN/a
Đọc các tệp theo dõi trình tự mao quản của ABI Sang Sanger, bao gồm cả điểm chất lượng Phred cho các cuộc gọi cơ sở. Điều này cho phép ABI chuyển đổi FASTQ. Lưu ý mỗi tệp ABI chứa một và chỉ một chuỗi (do đó không có điểm nào trong việc lập chỉ mục tệp).1.43 Abi-trim1.52 Tương tự như trên ABI, nhưng với sự cắt tỉa chất lượng với thuật toán Mott.
át chủ1.47 Không1.52 N/a
imgt1.56 1.56 1.56 Điều này đề cập đến biến thể IMGT của định dạng tệp văn bản Plain EMBL.
Nexus1.43 1.48 KhôngĐịnh dạng liên kết nhiều nexus, còn được gọi là định dạng PAUP. Sử dụng
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
3 trong nội bộ.
PDB-seqres1.61 KhôngKhôngĐịnh dạng liên kết nhiều nexus, còn được gọi là định dạng PAUP. Sử dụng
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
3 trong nội bộ.
PDB-seqres1.61 KhôngKhôngĐịnh dạng liên kết nhiều nexus, còn được gọi là định dạng PAUP. Sử dụng
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
3 trong nội bộ.
PDB-seqres1.46 1.52 1.52 Đọc tệp Ngân hàng Dữ liệu Protein (PDB) để xác định chuỗi protein hoàn chỉnh khi nó xuất hiện trong tiêu đề (không phụ thuộc vào
from Bio import SeqIO

record_dict = SeqIO.to_dict(SeqIO.parse("example.fasta", "fasta"))
print(record_dict["gi:12345678"])  # use any record ID
0 và Numpy).
nguyên tử PDB1.43 1.43 KhôngĐịnh dạng liên kết nhiều nexus, còn được gọi là định dạng PAUP. Sử dụng
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
3 trong nội bộ.
PDB-seqres1.48 1.71 1.52 Đọc tệp Ngân hàng Dữ liệu Protein (PDB) để xác định chuỗi protein hoàn chỉnh khi nó xuất hiện trong tiêu đề (không phụ thuộc vào
from Bio import SeqIO

record_dict = SeqIO.to_dict(SeqIO.parse("example.fasta", "fasta"))
print(record_dict["gi:12345678"])  # use any record ID
0 và Numpy).
nguyên tử PDB1.58 1.58 KhôngĐịnh dạng liên kết nhiều nexus, còn được gọi là định dạng PAUP. Sử dụng
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
3 trong nội bộ.
PDB-seqres1.54 1.54 1.54 Đọc tệp Ngân hàng Dữ liệu Protein (PDB) để xác định chuỗi protein hoàn chỉnh khi nó xuất hiện trong tiêu đề (không phụ thuộc vào
from Bio import SeqIO

record_dict = SeqIO.to_dict(SeqIO.parse("example.fasta", "fasta"))
print(record_dict["gi:12345678"])  # use any record ID
0 và Numpy).
nguyên tử PDB1.54 Không1.54 Định dạng liên kết nhiều nexus, còn được gọi là định dạng PAUP. Sử dụng
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
3 trong nội bộ.
PDB-seqres1.75 KhôngKhôngĐịnh dạng liên kết nhiều nexus, còn được gọi là định dạng PAUP. Sử dụng
from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record
3 trong nội bộ.
PDB-seqres1.43 1.43 KhôngĐọc tệp Ngân hàng Dữ liệu Protein (PDB) để xác định chuỗi protein hoàn chỉnh khi nó xuất hiện trong tiêu đề (không phụ thuộc vào
from Bio import SeqIO

record_dict = SeqIO.to_dict(SeqIO.parse("example.fasta", "fasta"))
print(record_dict["gi:12345678"])  # use any record ID
0 và Numpy).
nguyên tử PDB1.43 Không1.52 Sử dụng
from Bio import SeqIO

record_dict = SeqIO.to_dict(SeqIO.parse("example.fasta", "fasta"))
print(record_dict["gi:12345678"])  # use any record ID
0 để xác định trình tự protein (một phần) khi nó xuất hiện trong cấu trúc dựa trên phần tọa độ nguyên tử của tệp (yêu cầu NUMPY).
Bằng tiến sĩ1.48 1.48 1.52 Các tệp tiến sĩ được đầu ra từ PHRED, được sử dụng bởi PHRAP và được đưa vào đầu vào. Sử dụng
from Bio import SeqIO

record_dict = SeqIO.to_dict(SeqIO.parse("example.fasta", "fasta"))
print(record_dict["gi:12345678"])  # use any record ID
2 trong nội bộ.
Phylip1.50 1.50 1.52 Tập tin phylip. Cắt tên tại 10 ký tự.
Pir1.56 Không1.56 Một định dạng giống như Fasta Fasta được giới thiệu bởi Tổ chức nghiên cứu y sinh quốc gia (NBRF) cho cơ sở dữ liệu tài nguyên thông tin protein (PIR), hiện là một phần của UNIPROT.
seqxml1.75 1.75 KhôngTrình tự đơn giản định dạng tệp XML.
SFFSFFSFFSFFSFF

Các tệp nhị phân định dạng lưu lượng dòng chảy (SFF) được sản xuất bởi các máy giải trình tự iontorrent/ionproton của Roche 454 và ionTorrent/ionProte.

SFF-Trim

Định dạng Flowgram tiêu chuẩn Áp dụng các lần cắt được liệt kê trong tệp.

from Bio import SeqIO

for record in SeqIO.parse("example.fasta", "fasta"):
    print(record.id)

Snapgene

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)

Định dạng gốc được sử dụng bởi Snapgene.

X-tốc-khôm

Định dạng căn chỉnh Stockholm còn được gọi là định dạng PFAM.

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)

Thụy Sĩ

from Bio import SeqIO

records = list(SeqIO.parse("example.fasta", "fasta"))
print(records[0].id)  # first record
print(records[-1].id)  # last record

Thụy Sĩ-Prot AKA Định dạng Uniprot. Sử dụng

from Bio import SeqIO

record_dict = SeqIO.to_dict(SeqIO.parse("example.fasta", "fasta"))
print(record_dict["gi:12345678"])  # use any record ID
3 trong nội bộ. Xem thêm Định dạng XML UNIPROT.

from Bio import SeqIO

record_dict = SeqIO.to_dict(SeqIO.parse("example.fasta", "fasta"))
print(record_dict["gi:12345678"])  # use any record ID

chuyển hướng

Tab hai cột đơn giản Các tệp chuỗi được phân tách, trong đó mỗi dòng chứa một định danh và trình tự nhận dạng bản ghi. Ví dụ: điều này được sử dụng bởi phần mềm Bông tai Aligent khi lưu các đầu dò microarray trong một tệp văn bản được phân định tab tối thiểu.

chất lượng

Các tệp chất lượng giống như các tệp fasta nhưng thay vì trình tự, bản ghi không gian phân tách các giá trị giải trình tự số nguyên như điểm chất lượng phreD. Một cặp tệp Fasta và Qual phù hợp thường được sử dụng thay thế cho một tệp FASTQ duy nhất.

from Bio import SeqIO

record = SeqIO.read("single.fasta", "fasta")

Đối với tình huống liên quan mà bạn chỉ muốn bản ghi đầu tiên (và rất vui khi bỏ qua bất kỳ bản ghi nào tiếp theo), bạn có thể sử dụng chức năng Python tích hợp

from Bio import SeqIO

record = SeqIO.read("single.fasta", "fasta")
6:

from Bio import SeqIO

first_record = next(SeqIO.parse("example.fasta", "fasta"))

Đầu ra trình tự

Để ghi các bản ghi vào tệp, hãy sử dụng hàm

from Bio import SeqIO

record = SeqIO.read("single.fasta", "fasta")
7, có trình lặp
from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
9 (hoặc danh sách), tay cầm đầu ra (hoặc tên tệp) và chuỗi định dạng:

from Bio import SeqIO

sequences = ...  # add code here
with open("example.fasta", "w") as output_handle:
    SeqIO.write(sequences, output_handle, "fasta")

or:

from Bio import SeqIO

sequences = ...  # add code here
SeqIO.write(sequences, "example.fasta", "fasta")

Có nhiều ví dụ hơn trong phần sau về chuyển đổi giữa các định dạng tệp.

Lưu ý rằng nếu bạn đang viết vào định dạng tệp căn chỉnh, tất cả các chuỗi của bạn phải có cùng độ dài.

Nếu bạn cung cấp các chuỗi dưới dạng trình lặp

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
9, thì cho các định dạng tệp tuần tự như Fasta hoặc GenBank, các bản ghi có thể được viết từng cái một. Bởi vì chỉ có một bản ghi được tạo tại một thời điểm, rất ít bộ nhớ là bắt buộc. Xem ví dụ dưới đây lọc một tập hợp các bản ghi.

Mặt khác, đối với các định dạng tệp xen kẽ hoặc không theo trình tự như Clustal, hàm

from Bio import SeqIO

record = SeqIO.read("single.fasta", "fasta")
7 sẽ buộc phải tự động chuyển đổi trình lặp thành danh sách. Điều này sẽ phá hủy bất kỳ lưu bộ nhớ tiềm năng nào từ việc sử dụng phương pháp máy phát/iterator.

Chuyển đổi định dạng tệp

Giả sử bạn có một tệp GenBank mà bạn muốn biến thành một tệp FASTA. Ví dụ: hãy xem xét tệp

from Bio import SeqIO

first_record = next(SeqIO.parse("example.fasta", "fasta"))
1 được bao gồm trong các thử nghiệm đơn vị Biopython trong thư mục GenBank.

Bạn có thể đọc tệp như thế này, sử dụng hàm

from Bio import SeqIO

record_dict = SeqIO.to_dict(SeqIO.parse("example.fasta", "fasta"))
print(record_dict["gi:12345678"])  # use any record ID
8:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
0

Lưu ý rằng tập tin này chứa sáu bản ghi. Bây giờ thay vì in các bản ghi, hãy để Lành chuyển trình lặp

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
9 vào hàm
from Bio import SeqIO

record = SeqIO.read("single.fasta", "fasta")
7, để biến tệp GenBank này thành tệp FASTA:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
1

Hoặc sử dụng chính xác hơn chức năng

from Bio import SeqIO

first_record = next(SeqIO.parse("example.fasta", "fasta"))
5 (trong Biopython 1.52 trở lên), chỉ:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
2

Trong ví dụ này, tệp GenBank bắt đầu như thế này:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
3

Tệp Fasta kết quả trông như thế này:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
4

Lưu ý rằng tất cả các tệp FASTA có thể lưu trữ là định danh, mô tả và trình tự.

Bằng cách thay đổi chuỗi định dạng, mã đó có thể được sử dụng để chuyển đổi giữa bất kỳ định dạng tệp được hỗ trợ nào.

Ví dụ

Ví dụ đầu vào/đầu ra - Lọc theo độ dài chuỗi

Mặc dù bạn có thể chỉ đơn giản muốn chuyển đổi một tệp (như được hiển thị ở trên), một ví dụ thực tế hơn là thao tác hoặc lọc dữ liệu theo một cách nào đó.

Ví dụ, hãy để Lừa lưu tất cả các chuỗi ngắn của người Viking dưới 300 nucleotide vào tệp FASTA:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
5

Nếu bạn biết về toàn bộ danh sách thì bạn có thể đã viết ví dụ trên như thế này: thay vào đó:list comprehensions then you could have written the above example like this instead:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
6

Tôi không tin rằng điều này thực sự dễ hiểu hơn, nhưng nó ngắn hơn.

Tuy nhiên, nếu bạn đang xử lý các tệp rất lớn với hàng ngàn hồ sơ, bạn có thể hưởng lợi từ việc sử dụng biểu thức máy phát thay thế. Điều này tránh việc tạo toàn bộ danh sách các bản ghi mong muốn trong bộ nhớ:generator expression instead. This avoids creating the entire list of desired records in memory:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
7

Hãy nhớ rằng đối với các định dạng tệp tuần tự như Fasta hoặc GenBank,

from Bio import SeqIO

record = SeqIO.read("single.fasta", "fasta")
7 sẽ chấp nhận trình lặp
from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
9. Ưu điểm của mã trên là chỉ có một bản ghi sẽ có trong bộ nhớ bất cứ lúc nào.

Tuy nhiên, như được giải thích trong phần đầu ra, đối với các định dạng tệp không theo trình tự như Clustal

from Bio import SeqIO

record = SeqIO.read("single.fasta", "fasta")
7 bị buộc phải tự động biến trình lặp thành một danh sách, do đó, lợi thế này bị mất.

Nếu điều này là tất cả khó hiểu, thì đừng hoảng sợ và bỏ qua những thứ lạ mắt. Đối với các bộ dữ liệu có kích thước vừa phải có quá nhiều bản ghi trong bộ nhớ cùng một lúc (ví dụ: trong danh sách) có lẽ sẽ không phải là một vấn đề.

Sử dụng tổng kiểm tra seguid

Trong ví dụ này, chúng tôi sẽ sử dụng

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
5 với mô -đun
from Bio import SeqIO

sequences = ...  # add code here
with open("example.fasta", "w") as output_handle:
    SeqIO.write(sequences, output_handle, "fasta")
0 (trong Biopython 1.44 trở lên). Trước hết, chúng tôi sẽ chỉ in ra tổng kiểm tra cho từng chuỗi trong tệp GenBank
from Bio import SeqIO

sequences = ...  # add code here
with open("example.fasta", "w") as output_handle:
    SeqIO.write(sequences, output_handle, "fasta")
1:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
8

Bạn sẽ nhận được đầu ra này:

from Bio import SeqIO

with open("example.fasta") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)
9

Bây giờ chúng ta hãy sử dụng chức năng kiểm tra và

from Bio import SeqIO

record_dict = SeqIO.index("example.fasta", "fasta")
print(record_dict["gi:12345678"])  # use any record ID
6 để xây dựng từ điển
from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
9 bằng cách sử dụng seguid làm khóa. Bí quyết ở đây là sử dụng cú pháp Python Lambda để tạo chức năng tạm thời để lấy seguid cho mỗi
from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
9 - chúng ta có thể sử dụng chức năng
from Bio import SeqIO

sequences = ...  # add code here
with open("example.fasta", "w") as output_handle:
    SeqIO.write(sequences, output_handle, "fasta")
5 trực tiếp vì nó chỉ hoạt động trên các đối tượng hoặc chuỗi
from Bio import SeqIO

sequences = ...  # add code here
with open("example.fasta", "w") as output_handle:
    SeqIO.write(sequences, output_handle, "fasta")
6.

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
0

Cho đầu ra này:

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
1

Trại sau ngẫu nhiên

Kịch bản này sẽ đọc một tệp GenBank với toàn bộ bộ gen ty thể (ví dụ: ty thể thuốc lá, ty thể Nicotiana Tabacum

from Bio import SeqIO

sequences = ...  # add code here
with open("example.fasta", "w") as output_handle:
    SeqIO.write(sequences, output_handle, "fasta")
7), tạo 500 bản ghi chứa các đoạn ngẫu nhiên của bộ gen này và lưu chúng dưới dạng tệp FASTA. Các chuỗi đôi này được tạo bằng cách sử dụng một điểm bắt đầu ngẫu nhiên và độ dài cố định là 200.

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
2

Điều đó sẽ cung cấp một cái gì đó như thế này là tệp đầu ra,

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
3

Ghi vào một chuỗi

Đôi khi, bạn đã thắng muốn viết (các) đối tượng

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
9 của mình vào một tệp, nhưng vào một chuỗi. Ví dụ: bạn có thể chuẩn bị đầu ra để hiển thị như một phần của trang web. Nếu bạn muốn viết nhiều bản ghi vào một chuỗi, hãy sử dụng
from Bio import SeqIO

sequences = ...  # add code here
with open("example.fasta", "w") as output_handle:
    SeqIO.write(sequences, output_handle, "fasta")
9 để tạo tay cầm dựa trên chuỗi. Hướng dẫn (PDF) có một ví dụ về điều này trong chương
from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
6.

Đối với trường hợp đặc biệt mà bạn muốn có một bản ghi dưới dạng chuỗi ở định dạng tệp đã cho, Biopython 1.48 đã thêm một phương thức định dạng mới:

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
4

Phương thức định dạng sẽ có bất kỳ định dạng đầu ra nào được hỗ trợ bởi

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
5 trong đó định dạng tệp có thể được sử dụng cho một bản ghi duy nhất (ví dụ:
from Bio import SeqIO

record_dict = SeqIO.index("example.fasta", "fasta")
print(record_dict["gi:12345678"])  # use any record ID
4,
from Bio import SeqIO

sequences = ...  # add code here
SeqIO.write(sequences, "example.fasta", "fasta")
3 hoặc
from Bio import SeqIO

sequences = ...  # add code here
SeqIO.write(sequences, "example.fasta", "fasta")
4).

Lưu ý rằng chúng tôi không khuyên bạn nên sử dụng điều này cho đầu ra tệp - sử dụng

from Bio import SeqIO

record = SeqIO.read("single.fasta", "fasta")
7 nhanh hơn và tổng quát hơn.

Help!

Nếu bạn gặp vấn đề với

from Bio import SeqIO

with open("opuntia.aln") as handle:
    for record in SeqIO.parse(handle, "clustal"):
        print(record.id)
5, vui lòng tham gia danh sách gửi thư thảo luận (xem danh sách gửi thư).

Nếu bạn nghĩ rằng bạn đã tìm thấy một lỗi, vui lòng báo cáo nó trên trang Github dự án.