Biopython đã xuất bản

Biopython là một gói có sẵn miễn phí để làm việc với dữ liệu sinh học phân tử. Trong bài học này, chúng ta sẽ chỉ đề cập đến một số điều cơ bản khi làm việc với Biopython. Các nhà phát triển của gói này đã viết một hướng dẫn toàn diện và sách dạy nấu ăn

Hướng dẫn chúng tôi đang làm việc với ngày hôm nay được viết bởi Tiến sĩ. Iddo Friedberg và Tiến sĩ. Stuart Brown

Biopython có thể làm gì?

Cung cấp một danh sách nhiều công cụ khác nhau trong gói

  • Khả năng phân tích các tệp tin sinh học thành các cấu trúc dữ liệu có thể sử dụng được của Python, bao gồm hỗ trợ cho các định dạng sau
    • Đầu ra vụ nổ – cả từ vụ nổ độc lập và WWW
    • Clustalw
    • NHANH CHÓNG
    • Ngân hàng gen
    • PubMed và Medline
    • Các tệp ExPASy, như Enzyme và Prosite
    • SCOP, bao gồm các tệp 'dom' và 'lin'
    • UniGene
    • Prot Thụy Sĩ
  • Các tệp ở định dạng được hỗ trợ có thể được lặp lại qua từng bản ghi hoặc được lập chỉ mục và truy cập qua giao diện Từ điển
  • Mã để đối phó với các điểm đến tin sinh học trực tuyến phổ biến như
    • NCBI – Các dịch vụ Blast, Entrez và PubMed
    • ExPASy – mục Swiss-Prot và Prosite, cũng như các tìm kiếm Prosite
  • Giao diện cho các chương trình tin sinh học phổ biến như
    • Vụ nổ độc lập từ NCBI
    • Chương trình căn chỉnh Clustalw
    • Công cụ dòng lệnh EMBOSS
  • Một lớp trình tự tiêu chuẩn liên quan đến trình tự, id trên trình tự và các tính năng trình tự
  • Các công cụ để thực hiện các thao tác phổ biến trên trình tự, chẳng hạn như dịch mã, sao chép và tính toán trọng lượng
  • Mã để thực hiện phân loại dữ liệu bằng k Nearest Neighbors, Naive Bayes hoặc Support Vector Machines
  • Mã xử lý sự sắp xếp, bao gồm cách tiêu chuẩn để tạo và xử lý ma trận thay thế
  • Mã giúp dễ dàng phân chia các tác vụ có thể song song hóa thành các quy trình riêng biệt
  • Các chương trình dựa trên GUI để thực hiện các thao tác trình tự cơ bản, bản dịch, BLASTing, v.v.
  • Tài liệu mở rộng và trợ giúp sử dụng các mô-đun, bao gồm tệp này, tài liệu wiki trực tuyến, trang web và danh sách gửi thư
  • Tích hợp với BioSQL, lược đồ cơ sở dữ liệu trình tự cũng được hỗ trợ bởi các dự án BioPerl và BioJava

Tải xuống tệp ví dụ

Bài học này sẽ sử dụng các tệp ví dụ trong thư mục

GCGATTTTCGATCCTATATAGGCCCATCGATC
0 của các tệp khóa học trong kho lưu trữ
GCGATTTTCGATCCTATATAGGCCCATCGATC
1. Tải xuống các tệp này và đảm bảo rằng chúng nằm trong cùng thư mục mà bạn đang tạo sổ ghi chép Jupyter của mình

Cài đặt Biopython và tạo Notebook Jupyter

Cách dễ nhất để cài đặt các công cụ Biopython là sử dụng

GCGATTTTCGATCCTATATAGGCCCATCGATC
2. Từ thiết bị đầu cuối của bạn, bạn chỉ cần thực hiện như sau

$ conda install biopython

Bây giờ hãy tạo một sổ ghi chép Jupyter mới cho bài học này

Đối tượng my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC") print(my_seq.reverse_complement()) 8

Lớp đối tượng

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
8 đơn giản và cơ bản cho rất nhiều công việc của Biopython. Một đối tượng Seq có thể chứa DNA, RNA hoặc protein. Nó chứa một chuỗi (dãy) và một bảng chữ cái được xác định cho chuỗi đó. Các bảng chữ cái thực sự là các đối tượng được xác định, chẳng hạn như
GCGATTTTCGATCCTATATAGGCCCATCGATC
5 hoặc
GCGATTTTCGATCCTATATAGGCCCATCGATC
6. Đối tượng Seq có bảng chữ cái DNA có một số phương thức khác với đối tượng có bảng chữ cái Axit Amin

Đầu tiên, nhập đối tượng

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
8 từ Biopython

Bây giờ chúng ta có thể tạo một đối tượng

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
8

my_seq = Seq("AGTACACTGGT")
my_seq

Điều thú vị về đối tượng chuỗi là nó có thể được xử lý giống như đối tượng chuỗi Python

Các đối tượng

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
8 cũng có các phương thức chuỗi như
from Bio.Seq import MutableSeq
mutable_seq = MutableSeq("GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA")
0

Và bạn có thể sử dụng các hàm hoạt động trên các chuỗi như

from Bio.Seq import MutableSeq
mutable_seq = MutableSeq("GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA")
1

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
8 đối tượng cũng có các phương thức đặc biệt. Ví dụ: bạn có thể lấy phần bù ngược của một dãy

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())

GCGATTTTCGATCCTATATAGGCCCATCGATC

Cũng giống như chuỗi trong Python, đối tượng

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
8 là bất biến, nghĩa là bạn không thể thay đổi nó. Nếu bạn cố gắng thay đổi một trong các trang web theo trình tự này, bạn sẽ gặp lỗi. Nếu bạn muốn một đối tượng trình tự có thể chỉnh sửa, bạn sẽ cần tạo một đối tượng
from Bio.Seq import MutableSeq
mutable_seq = MutableSeq("GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA")
4

from Bio.Seq import MutableSeq
mutable_seq = MutableSeq("GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA")

Bây giờ bạn có thể thử thay đổi nucleotide ở chỉ số 3 thành

from Bio.Seq import MutableSeq
mutable_seq = MutableSeq("GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA")
5

Đối tượng my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC") print(my_seq.reverse_complement()) 9

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
9 của Biopython là một đối tượng phức hợp chứa đối tượng
my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
8 cũng như các trường khác cho các thuộc tính của chuỗi đó (i. e. , metadata). Các thuộc tính này còn được gọi là “trường chú thích”

  • from Bio.Seq import MutableSeq
    mutable_seq = MutableSeq("GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA")
    
    9
    • Bản thân trình tự, điển hình là một đối tượng Seq
  • from Bio.SeqRecord import SeqRecord
    simple_seq = Seq("GATC")
    simple_seq_r = SeqRecord(simple_seq)
    
    0
    • ID chính được sử dụng để xác định trình tự – một chuỗi. Trong hầu hết các trường hợp, đây giống như một số gia nhập
  • from Bio.SeqRecord import SeqRecord
    simple_seq = Seq("GATC")
    simple_seq_r = SeqRecord(simple_seq)
    
    1
    • Tên/id “chung” cho chuỗi – một chuỗi. Trong một số trường hợp, nó sẽ giống với số gia nhập, nhưng nó cũng có thể là một tên trùng lặp. Tôi nghĩ điều này tương tự như id LOCUS trong bản ghi GenBank
  • from Bio.SeqRecord import SeqRecord
    simple_seq = Seq("GATC")
    simple_seq_r = SeqRecord(simple_seq)
    
    2
    • Một mô tả có thể đọc được của con người hoặc tên biểu cảm cho chuỗi - một chuỗi
  • from Bio.SeqRecord import SeqRecord
    simple_seq = Seq("GATC")
    simple_seq_r = SeqRecord(simple_seq)
    
    3
    • Giữ chú thích cho mỗi chữ cái bằng cách sử dụng từ điển (hạn chế) thông tin bổ sung về các chữ cái trong chuỗi. Các khóa là tên của thông tin và thông tin được chứa trong giá trị dưới dạng chuỗi Python (i. e. một danh sách, bộ dữ liệu hoặc chuỗi) có cùng độ dài với chính chuỗi đó. Điều này thường được sử dụng cho điểm chất lượng (e. g. Phần 20. 1. 6) hoặc thông tin cấu trúc thứ cấp (e. g. từ các tệp căn chỉnh Stockholm/PFAM)
  • from Bio.SeqRecord import SeqRecord
    simple_seq = Seq("GATC")
    simple_seq_r = SeqRecord(simple_seq)
    
    4
    • Một từ điển thông tin bổ sung về trình tự. Các khóa là tên của thông tin và thông tin được chứa trong giá trị. Điều này cho phép bổ sung thêm thông tin “phi cấu trúc” vào trình tự
  • from Bio.SeqRecord import SeqRecord
    simple_seq = Seq("GATC")
    simple_seq_r = SeqRecord(simple_seq)
    
    5
    • Một danh sách các đối tượng SeqFeature với thông tin có cấu trúc hơn về các tính năng trên một chuỗi (e. g. vị trí của các gen trên bộ gen hoặc các miền trên chuỗi protein)
  • from Bio.SeqRecord import SeqRecord
    simple_seq = Seq("GATC")
    simple_seq_r = SeqRecord(simple_seq)
    
    6
    • Danh sách các tham chiếu chéo cơ sở dữ liệu dưới dạng chuỗi

Bạn có thể tạo một

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
9 bằng cách cung cấp cho hàm tạo một đối tượng
my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
8

from Bio.SeqRecord import SeqRecord
simple_seq = Seq("GATC")
simple_seq_r = SeqRecord(simple_seq)

Và bạn có thể cung cấp các thuộc tính

simple_seq_r.id = "AC12345"
simple_seq_r.description = "This sequence is pretend."
print(simple_seq_r)

ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')

Đọc chuỗi từ các tệp FASTA

from Bio.SeqRecord import SeqRecord
simple_seq = Seq("GATC")
simple_seq_r = SeqRecord(simple_seq)
9 cho phép đọc theo trình tự từ các tệp FASTA và lưu trữ dữ liệu trong một
my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
9. Ngoài ra,
from Bio.SeqRecord import SeqRecord
simple_seq = Seq("GATC")
simple_seq_r = SeqRecord(simple_seq)
9 cung cấp các công cụ để ghi dữ liệu trình tự vào một tệp

Chúng tôi sẽ đọc trong tệp ví dụ

simple_seq_r.id = "AC12345"
simple_seq_r.description = "This sequence is pretend."
print(simple_seq_r)
2 bằng cách sử dụng
from Bio.SeqRecord import SeqRecord
simple_seq = Seq("GATC")
simple_seq_r = SeqRecord(simple_seq)
9

from Bio import SeqIO
record = SeqIO.read("NC_005816.fna", "fasta")

Tìm hiểu thêm về trình tự này

Sử dụng các phương thức chuỗi và thuộc tính

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
9 để lấy độ dài của chuỗi và tên loài

Giải pháp

Lấy độ dài bằng cách sử dụng

from Bio.Seq import MutableSeq
mutable_seq = MutableSeq("GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA")
1

Tên loài được đưa ra trong phần mô tả của tệp FASTA này

'gi|45478711|ref|NC_005816.1| Yersinia pestis biovar Microtus str. 91001 plasmid pPCP1, complete sequence'

Sử dụng

from Bio.SeqRecord import SeqRecord
simple_seq = Seq("GATC")
simple_seq_r = SeqRecord(simple_seq)
9 chúng ta có thể đọc theo một số trình tự từ một tệp và lưu trữ chúng trong danh sách các đối tượng
my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
9 từ một tệp. Tệp
simple_seq_r.id = "AC12345"
simple_seq_r.description = "This sequence is pretend."
print(simple_seq_r)
8 trông như thế này

my_seq = Seq("AGTACACTGGT")
my_seq
0

Với Biopython, chúng ta có thể sử dụng hàm

simple_seq_r.id = "AC12345"
simple_seq_r.description = "This sequence is pretend."
print(simple_seq_r)
9 để lấy ba chuỗi trong tệp này

my_seq = Seq("AGTACACTGGT")
my_seq
1

my_seq = Seq("AGTACACTGGT")
my_seq
2

Ở ví dụ trên ta mở file và gán cho biến

ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
0 đóng vai trò là con trỏ tới nội dung file

Truy cập trực tiếp vào GenBank

BioPython có các mô-đun có thể truy cập trực tiếp cơ sở dữ liệu qua Internet bằng mô-đun

ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
1. Điều này sử dụng dịch vụ NCBI Efetch, hoạt động trên nhiều cơ sở dữ liệu NCBI bao gồm các trích dẫn tài liệu về protein và PubMed. Với một vài điều chỉnh, mã này có thể được sử dụng để tải xuống danh sách ID GenBank và lưu chúng dưới dạng tệp FASTA hoặc GenBank

Trước khi sử dụng các tài nguyên NCBI trực tuyến, điều quan trọng là phải biết các yêu cầu của người dùng. Nếu bạn lạm dụng hệ thống của họ (dù cố ý hay vô tình), họ sẽ chặn quyền truy cập của bạn trong một thời gian. Bạn có thể tìm thấy các yêu cầu trong

Trước tiên, bạn được yêu cầu cung cấp cho NCBI danh tính của mình để chúng tôi có thể liên hệ với bạn nếu có vấn đề. Điều này cũng hạn chế việc lạm dụng hệ thống này để máy chủ của họ không bị quá tải. Nếu bạn được xác định là người sử dụng quá nhiều Tiện ích điện tử, NCBI sẽ liên hệ với bạn trước khi bạn bị chặn

Đoạn trích dẫn dưới đây cho bạn biết điều gì cấu thành việc sử dụng hợp lý các máy chủ Tiện ích điện tử

Để không làm quá tải các máy chủ của Tiện ích điện tử, NCBI khuyến nghị người dùng không đăng quá ba yêu cầu URL mỗi giây và giới hạn các công việc lớn vào cuối tuần hoặc từ 9. 00 giờ tối và 5. 00 giờ sáng theo giờ miền Đông vào các ngày trong tuần

Nhập địa chỉ email của riêng bạn thay cho

ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
2

my_seq = Seq("AGTACACTGGT")
my_seq
3

Bây giờ chúng ta có thể lấy một bản ghi Genbank

my_seq = Seq("AGTACACTGGT")
my_seq
4

my_seq = Seq("AGTACACTGGT")
my_seq
5

vụ nổ

BioPython giúp dễ dàng làm việc với BLAST của NCBI. Để chạy blast qua internet, chúng ta có thể sử dụng

ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
3. Đối với điều này, chúng ta phải nhập mô-đun
ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
4

my_seq = Seq("AGTACACTGGT")
my_seq
6

Bạn có thể gọi hàm

ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
5 trên
ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
6 để kiểm tra cách thức hoạt động của hàm này. Điều này sẽ trả về tất cả các tham số của
ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
7 để bạn có thể hiểu cách chỉ định chính xác truy vấn của mình

Tiếp theo, chúng ta có thể đọc theo trình tự được lưu trữ trong tệp FASTA có tên là

ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
8

my_seq = Seq("AGTACACTGGT")
my_seq
7

Biến chúng ta đã tạo có tên là

ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
9 là một chuỗi được lưu trữ trong một đối tượng
my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
9

Để chạy tìm kiếm BLAST trên chuỗi từ tệp FASTA của chúng tôi, chúng tôi chỉ cần chỉ định chương trình tìm kiếm (

from Bio import SeqIO
record = SeqIO.read("NC_005816.fna", "fasta")
1) và cơ sở dữ liệu (
from Bio import SeqIO
record = SeqIO.read("NC_005816.fna", "fasta")
2). Đối số cuối cùng là đối tượng
my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
8 được lưu trữ trong
ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
9 của chúng tôi

my_seq = Seq("AGTACACTGGT")
my_seq
8

Lưu ý rằng điều này có thể không hiệu quả với mọi người trong lớp. NCBI có thể điều tiết người dùng không tương tác

Khi chúng tôi có kết quả của BLAST, chúng tôi có thể lưu trữ chúng trong tệp XML

my_seq = Seq("AGTACACTGGT")
my_seq
9

Khi chúng tôi đã lưu trữ kết quả, tốt nhất là đóng tất cả các xử lý tệp đang mở của chúng tôi

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
0

Chúng tôi đã tạo một tệp XML chứa kết quả BLAST của chúng tôi. Giờ đây, việc phân tích cú pháp này trở nên dễ dàng bằng cách sử dụng công cụ

from Bio import SeqIO
record = SeqIO.read("NC_005816.fna", "fasta")
5

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
1

Bây giờ chúng tôi đã đọc trong tệp, chúng tôi có thể in từng lần truy cập

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
2

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
3

Chúng tôi cũng có thể xem sự sắp xếp cho từng lần truy cập BLAST

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
4

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
5

Thường thì tìm kiếm BLAST sẽ trả về nhiều kết quả phù hợp cho một truy vấn, như trường hợp của ví dụ này. Đây là lý do tại sao tốt nhất nên lưu chúng trong tệp XML. Sử dụng

from Bio import SeqIO
record = SeqIO.read("NC_005816.fna", "fasta")
6 cho phép chúng tôi đánh giá từng bản ghi BLAST. Chúng tôi có thể chỉ định một ngưỡng để chúng tôi có thể dễ dàng kiểm tra các trận đấu gần nhất

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
6

my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
print(my_seq.reverse_complement())
7

Tìm kiếm BLAST của chúng tôi khớp với trình tự của chúng tôi với Vitis vinifera. Hãy kiểm tra xem nó có đúng không

Thử thách mang về nhà. Trăn sinh học

Thử nghiệm với các tính năng của biopython bằng cách sử dụng trình tự trong biến

ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
9 mà chúng tôi đã tải từ
ID: AC12345
Name: 
Description: This sequence is pretend.
Number of features: 0
Seq('GATC')
8

Biopython dùng để làm gì?

Biopython là một giao diện lập trình ứng dụng (API) nguồn mở lớn được sử dụng trong cả phát triển phần mềm tin sinh học và trong các tập lệnh hàng ngày cho các tác vụ tin sinh học phổ biến . Trang chủ www. trăn sinh học. org cung cấp quyền truy cập vào mã nguồn, tài liệu và danh sách gửi thư.

Biopython Công cụ Python cho sinh học tính toán là gì?

Biopython bao gồm các mô-đun để đọc và ghi các định dạng tệp trình tự khác nhau và sắp xếp nhiều trình tự, xử lý các cấu trúc phân tử vĩ mô 3D, tương tác với các công cụ phổ biến như BLAST, ClustalW và EMBOSS, truy cập cơ sở dữ liệu trực tuyến chính, cũng như cung cấp các phương pháp số để thống kê

Biopython có phải là một mô-đun không?

Về cơ bản, Biopython là tập hợp các mô-đun python cung cấp các chức năng xử lý các hoạt động của chuỗi DNA, RNA & protein chẳng hạn như bổ sung ngược của .

Cơ sở dữ liệu Entrez là gì?

Entrez là một hệ thống cơ sở dữ liệu sinh học phân tử cung cấp quyền truy cập tích hợp vào dữ liệu trình tự nucleotide và protein, thông tin lập bản đồ gen và tập trung vào gen, dữ liệu cấu trúc 3D, PubMed MEDLINE, v.v.