Hướng dẫn biopython seqio - biopython seqio
Trang này mô tả 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 6. Show 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 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 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 9. Có một giao diện chị em 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 5 (và 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ụ, 3 cũng sẽ đọc các chuỗi từ các tệp nexus - nhưng 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ử 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ệpBảng này liệt kê các định dạng tệp mà 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.
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.
Snapgene
Đị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.
Thụy Sĩ
Thụy Sĩ-Prot AKA Định dạng Uniprot. Sử dụng 3 trong nội bộ. Xem thêm Định dạng XML UNIPROT.
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.
Đố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 6:
Đầu ra trình tựĐể ghi các bản ghi vào tệp, hãy sử dụng hàm 7, có trình lặp 9 (hoặc danh sách), tay cầm đầu ra (hoặc tên tệp) và chuỗi định dạng:
or:
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 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 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ệpGiả 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 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 8: 0Lư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 9 vào hàm 7, để biến tệp GenBank này thành tệp FASTA: 1
Hoặc sử dụng chính xác hơn chức năng 5 (trong Biopython 1.52 trở lên), chỉ: 2Trong ví dụ này, tệp GenBank bắt đầu như thế này: 3Tệp Fasta kết quả trông như thế này: 4Lư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ỗiMặ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: 5Nế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: 6Tô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: 7Hãy nhớ rằng đối với các định dạng tệp tuần tự như Fasta hoặc GenBank, 7 sẽ chấp nhận trình lặp 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 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 seguidTrong ví dụ này, chúng tôi sẽ sử dụng 5 với mô -đun 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 1: 8Bạn sẽ nhận được đầu ra này: 9Bây giờ chúng ta hãy sử dụng chức năng kiểm tra và 6 để xây dựng từ điển 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 9 - chúng ta có thể sử dụng chức năng 5 trực tiếp vì nó chỉ hoạt động trên các đối tượng hoặc chuỗi 6. 0Cho đầu ra này: 1Trại sau ngẫu nhiênKị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 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.
2Điều đó sẽ cung cấp một cái gì đó như thế này là tệp đầu ra, 3Ghi vào một chuỗiĐôi khi, bạn đã thắng muốn viết (các) đối tượng 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 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 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: 4Phương thức định dạng sẽ có bất kỳ định dạng đầu ra nào được hỗ trợ bởi 5 trong đó định dạng tệp có thể được sử dụng cho một bản ghi duy nhất (ví dụ: 4, 3 hoặc 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 7 nhanh hơn và tổng quát hơn.Help!Nếu bạn gặp vấn đề với 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. |