Biopython sắp xếp nhiều trình tự

Căn chỉnh trình tự là quá trình sắp xếp hai hoặc nhiều trình tự (của trình tự DNA, RNA hoặc protein) theo một thứ tự cụ thể để xác định vùng tương đồng giữa chúng

Việc xác định khu vực tương tự cho phép chúng ta suy ra nhiều thông tin như đặc điểm nào được bảo tồn giữa các loài, mức độ gần gũi của các loài khác nhau về mặt di truyền, cách các loài tiến hóa, v.v. Biopython cung cấp hỗ trợ rộng rãi cho việc căn chỉnh trình tự

Hãy để chúng tôi tìm hiểu một số tính năng quan trọng do Biopython cung cấp trong chương này –

Sắp xếp trình tự phân tích cú pháp

Biopython cung cấp một mô-đun, Bio. AlignIO để đọc và viết sắp xếp trình tự. Trong tin sinh học, có rất nhiều định dạng có sẵn để chỉ định dữ liệu căn chỉnh trình tự tương tự như dữ liệu trình tự đã học trước đó. sinh học. AlignIO cung cấp API tương tự như Bio. SeqIO ngoại trừ Bio. SeqIO hoạt động trên dữ liệu trình tự và Bio. AlignIO hoạt động trên dữ liệu căn chỉnh trình tự

Trước khi bắt đầu tìm hiểu, chúng ta hãy tải xuống tệp căn chỉnh trình tự mẫu từ Internet

Để tải xuống tệp mẫu, hãy làm theo các bước dưới đây -

Bước 1 - Mở trình duyệt yêu thích của bạn và truy cập http. //pfam. xfam. org/gia đình/duyệt trang web. Nó sẽ hiển thị tất cả các họ Pfam theo thứ tự bảng chữ cái

Bước 2 - Chọn bất kỳ một họ nào có ít giá trị hạt giống hơn. Nó chứa dữ liệu tối thiểu và cho phép chúng tôi làm việc dễ dàng với căn chỉnh. Ở đây, chúng tôi đã chọn/nhấp vào PF18225 và nó sẽ mở ra, truy cập http. //pfam. xfam. org/family/PF18225 và hiển thị đầy đủ chi tiết về nó, bao gồm cả việc sắp xếp trình tự

Bước 3 - Chuyển đến phần căn chỉnh và tải xuống tệp căn chỉnh trình tự ở định dạng Stockholm (PF18225_seed. txt)

Hãy để chúng tôi thử đọc tệp căn chỉnh trình tự đã tải xuống bằng Bio. AlignIO như bên dưới -

nhập khẩu sinh học. mô-đun AlignIO

>>> from Bio import AlignIO

Đọc căn chỉnh bằng phương pháp đọc. phương thức read được sử dụng để đọc dữ liệu căn chỉnh đơn có sẵn trong tệp đã cho. Nếu tệp đã cho chứa nhiều căn chỉnh, chúng ta có thể sử dụng phương pháp phân tích cú pháp. phương thức phân tích cú pháp trả về đối tượng căn chỉnh có thể lặp lại tương tự như phương thức phân tích cú pháp trong Bio. mô-đun SeqIO

>>> alignment = AlignIO.read(open("PF18225_seed.txt"), "stockholm")

In đối tượng căn chỉnh

>>> print(alignment)
SingleLetterAlphabet() alignment with 6 rows and 65 columns
MQNTPAERLPAIIEKAKSKHDINVWLLDRQGRDLLEQRVPAKVA...EGP B7RZ31_9GAMM/59-123 
AKQRGIAGLEEWLHRLDHSEAIPIFLIDEAGKDLLEREVPADIT...KKP A0A0C3NPG9_9PROT/58-119 
ARRHGQEYFQQWLERQPKKVKEQVFAVDQFGRELLGRPLPEDMA...KKP A0A143HL37_9GAMM/57-121 
TRRHGPESFRFWLERQPVEARDRIYAIDRSGAEILDRPIPRGMA...NKP A0A0X3UC67_9GAMM/57-121 
AINRNTQQLTQDLRAMPNWSLRFVYIVDRNNQDLLKRPLPPGIM...NRK B3PFT7_CELJU/62-126 
AVNATEREFTERIRTLPHWARRNVFVLDSQGFEIFDRELPSPVA...NRT K4KEM7_SIMAS/61-125
>>>

Chúng tôi cũng có thể kiểm tra các chuỗi (SeqRecord) có sẵn trong căn chỉnh cũng như bên dưới -

>>> for align in alignment: 
.. print(align.seq) 
.. 
MQNTPAERLPAIIEKAKSKHDINVWLLDRQGRDLLEQRVPAKVATVANQLRGRKRRAFARHREGP 
AKQRGIAGLEEWLHRLDHSEAIPIFLIDEAGKDLLEREVPADITA---RLDRRREHGEHGVRKKP 
ARRHGQEYFQQWLERQPKKVKEQVFAVDQFGRELLGRPLPEDMAPMLIALNYRNRESHAQVDKKP 
TRRHGPESFRFWLERQPVEARDRIYAIDRSGAEILDRPIPRGMAPLFKVLSFRNREDQGLVNNKP 
AINRNTQQLTQDLRAMPNWSLRFVYIVDRNNQDLLKRPLPPGIMVLAPRLTAKHPYDKVQDRNRK 
AVNATEREFTERIRTLPHWARRNVFVLDSQGFEIFDRELPSPVADLMRKLDLDRPFKKLERKNRT 
>>>

nhiều căn chỉnh

Nói chung, hầu hết các tệp căn chỉnh trình tự chứa dữ liệu căn chỉnh đơn lẻ và chỉ cần sử dụng phương thức đọc để phân tích cú pháp là đủ. Trong khái niệm căn chỉnh nhiều trình tự, hai hoặc nhiều trình tự được so sánh để tìm các trình tự con phù hợp nhất giữa chúng và dẫn đến căn chỉnh nhiều trình tự trong một tệp

Nếu định dạng căn chỉnh trình tự đầu vào chứa nhiều hơn một căn chỉnh trình tự, thì chúng ta cần sử dụng phương thức phân tích cú pháp thay vì phương thức đọc như được chỉ định bên dưới -

>>> from Bio import AlignIO 
>>> alignments = AlignIO.parse(open("PF18225_seed.txt"), "stockholm") 
>>> print(alignments) 
 
>>> for alignment in alignments: 
.. print(alignment) 
.. 
SingleLetterAlphabet() alignment with 6 rows and 65 columns 
MQNTPAERLPAIIEKAKSKHDINVWLLDRQGRDLLEQRVPAKVA...EGP B7RZ31_9GAMM/59-123 
AKQRGIAGLEEWLHRLDHSEAIPIFLIDEAGKDLLEREVPADIT...KKP A0A0C3NPG9_9PROT/58-119 
ARRHGQEYFQQWLERQPKKVKEQVFAVDQFGRELLGRPLPEDMA...KKP A0A143HL37_9GAMM/57-121 
TRRHGPESFRFWLERQPVEARDRIYAIDRSGAEILDRPIPRGMA...NKP A0A0X3UC67_9GAMM/57-121 
AINRNTQQLTQDLRAMPNWSLRFVYIVDRNNQDLLKRPLPPGIM...NRK B3PFT7_CELJU/62-126 
AVNATEREFTERIRTLPHWARRNVFVLDSQGFEIFDRELPSPVA...NRT K4KEM7_SIMAS/61-125
>>>

Ở đây, phương thức phân tích cú pháp trả về đối tượng căn chỉnh có thể lặp lại và nó có thể được lặp lại để có được sự sắp xếp thực tế

Sắp xếp trình tự theo cặp

Căn chỉnh trình tự theo cặp chỉ so sánh hai trình tự tại một thời điểm và cung cấp khả năng sắp xếp trình tự tốt nhất có thể. Pairwise rất dễ hiểu và đặc biệt để suy ra từ sự liên kết trình tự kết quả

Biopython cung cấp một mô-đun đặc biệt, Bio. pairwise2 để xác định trình tự căn chỉnh bằng phương pháp pairwise. Biopython áp dụng thuật toán tốt nhất để tìm trình tự căn chỉnh và nó ngang ngửa với các phần mềm khác

Hãy để chúng tôi viết một ví dụ để tìm sự liên kết trình tự của hai trình tự đơn giản và giả thuyết bằng cách sử dụng mô-đun cặp. Điều này sẽ giúp chúng tôi hiểu khái niệm căn chỉnh trình tự và cách lập trình nó bằng Biopython

Bước 1

Nhập mô-đun pairwise2 bằng lệnh dưới đây -

>>> from Bio import pairwise2

Bước 2

Tạo hai chuỗi, seq1 và seq2 −

>>> from Bio.Seq import Seq 
>>> seq1 = Seq("ACCGGT") 
>>> seq2 = Seq("ACGT")

Bước 3

Gọi phương thức pairwise2. căn chỉnh. globalxx cùng với seq1 và seq2 để tìm sự sắp xếp bằng cách sử dụng dòng mã bên dưới -

>>> alignments = pairwise2.align.globalxx(seq1, seq2)

Ở đây, phương thức globalxx thực hiện công việc thực tế và tìm tất cả các cách sắp xếp tốt nhất có thể trong các chuỗi đã cho. Trên thực tế, sinh học. pairwise2 cung cấp khá nhiều phương thức tuân theo quy ước bên dưới để tìm sự sắp xếp trong các tình huống khác nhau

________số 8

Ở đây, kiểu căn chỉnh trình tự đề cập đến kiểu căn chỉnh có thể là toàn cục hoặc cục bộ. loại toàn cầu đang tìm sự liên kết trình tự bằng cách xem xét toàn bộ trình tự. loại cục bộ đang tìm sự liên kết trình tự bằng cách xem xét tập hợp con của các trình tự đã cho. Điều này sẽ tẻ nhạt nhưng cung cấp ý tưởng tốt hơn về sự giống nhau giữa các chuỗi đã cho

  • X đề cập đến điểm phù hợp. Các giá trị có thể là x (khớp chính xác), m (điểm dựa trên các ký tự giống hệt nhau), d (từ điển do người dùng cung cấp có ký tự và điểm khớp) và cuối cùng là c (hàm do người dùng xác định để cung cấp thuật toán chấm điểm tùy chỉnh)

  • Y đề cập đến hình phạt khoảng cách. Các giá trị có thể là x (không có hình phạt khoảng cách), s (hình phạt giống nhau cho cả hai trình tự), d (hình phạt khác nhau cho mỗi trình tự) và cuối cùng là c (hàm do người dùng xác định để cung cấp hình phạt khoảng cách tùy chỉnh)

Vì vậy, localds cũng là một phương pháp hợp lệ, tìm thấy sự liên kết trình tự bằng cách sử dụng kỹ thuật căn chỉnh cục bộ, từ điển do người dùng cung cấp cho các kết quả khớp và hình phạt khoảng cách do người dùng cung cấp cho cả hai trình tự

>>> test_alignments = pairwise2.align.localds(seq1, seq2, blosum62, -10, -1)

Ở đây, blosum62 đề cập đến một từ điển có sẵn trong mô-đun pairwise2 để cung cấp điểm số phù hợp. -10 đề cập đến hình phạt mở rộng khoảng cách và -1 đề cập đến hình phạt mở rộng khoảng cách

Bước 4

Lặp lại đối tượng căn chỉnh lặp lại và lấy từng đối tượng căn chỉnh riêng lẻ và in nó

>>> alignment = AlignIO.read(open("PF18225_seed.txt"), "stockholm")
0

Bước 5

sinh học. mô-đun pairwise2 cung cấp một phương thức định dạng, format_alignment để trực quan hóa kết quả tốt hơn -

>>> alignment = AlignIO.read(open("PF18225_seed.txt"), "stockholm")
1

Biopython cũng cung cấp một mô-đun khác để thực hiện căn chỉnh trình tự, Align. Mô-đun này cung cấp một bộ API khác để đơn giản là cài đặt tham số như thuật toán, chế độ, tỷ số trận đấu, hình phạt chênh lệch, v.v. , Một cái nhìn đơn giản về đối tượng Align như sau -

>>> alignment = AlignIO.read(open("PF18225_seed.txt"), "stockholm")
2

Hỗ trợ các công cụ căn chỉnh trình tự

Biopython cung cấp giao diện cho rất nhiều công cụ căn chỉnh trình tự thông qua Bio. Căn chỉnh. mô-đun ứng dụng. Một số công cụ được liệt kê dưới đây –

  • ClustalW
  • BẮP THỊT
  • EMBOSS kim và nước

Hãy để chúng tôi viết một ví dụ đơn giản trong Biopython để tạo căn chỉnh trình tự thông qua công cụ căn chỉnh phổ biến nhất, ClustalW

Bước 1 - Tải xuống chương trình Clustalw từ http. //www. quần thể. org/download/current/ và cài đặt nó. Ngoài ra, hãy cập nhật PATH hệ thống với đường dẫn cài đặt “clustal”

Bước 2 - nhập ClustalwCommanLine từ mô-đun Bio. Căn chỉnh. Các ứng dụng

>>> alignment = AlignIO.read(open("PF18225_seed.txt"), "stockholm")
3

Bước 3 - Đặt cmd bằng cách gọi ClustalwCommanLine với tệp đầu vào, opuntia. fasta có sẵn trong gói Biopython. https. // thô. githubusercontent. com/biopython/biopython/master/Doc/examples/opuntia. nhịn ăn

>>> alignment = AlignIO.read(open("PF18225_seed.txt"), "stockholm")
4

Bước 4 - Gọi cmd() sẽ chạy lệnh clustalw và đưa ra đầu ra của tệp căn chỉnh kết quả, opuntia. aln