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ìnhCà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
my_seq = Seq["GATCGATGGGCCTATATAGGATCGAAAATCGC"]
print[my_seq.reverse_complement[]]
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ừ BiopythonBây giờ chúng ta có thể tạo một đối tượng
my_seq = Seq["GATCGATGGGCCTATATAGGATCGAAAATCGC"]
print[my_seq.reverse_complement[]]
8my_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"]
0Và 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"]
1my_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ãymy_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"]
4from 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[]]
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”
9from Bio.Seq import MutableSeq mutable_seq = MutableSeq["GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA"]
- Bản thân trình tự, điển hình là một đối tượng Seq
0from Bio.SeqRecord import SeqRecord simple_seq = Seq["GATC"] simple_seq_r = SeqRecord[simple_seq]
- 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
1from Bio.SeqRecord import SeqRecord simple_seq = Seq["GATC"] simple_seq_r = SeqRecord[simple_seq]
- 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
2from Bio.SeqRecord import SeqRecord simple_seq = Seq["GATC"] simple_seq_r = SeqRecord[simple_seq]
- 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
3from Bio.SeqRecord import SeqRecord simple_seq = Seq["GATC"] simple_seq_r = SeqRecord[simple_seq]
- 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]
4from Bio.SeqRecord import SeqRecord simple_seq = Seq["GATC"] simple_seq_r = SeqRecord[simple_seq]
- 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ự
5from Bio.SeqRecord import SeqRecord simple_seq = Seq["GATC"] simple_seq_r = SeqRecord[simple_seq]
- 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]
6from Bio.SeqRecord import SeqRecord simple_seq = Seq["GATC"] simple_seq_r = SeqRecord[simple_seq]
- 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[]]
8from 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ệpChú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]
9from 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
9 để lấy độ dài của chuỗi và tên loàimy_seq = Seq["GATCGATGGGCCTATATAGGATCGAAAATCGC"] print[my_seq.reverse_complement[]]
Giải pháp
Lấy độ dài bằng cách sử dụng
1from Bio.Seq import MutableSeq mutable_seq = MutableSeq["GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA"]
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àymy_seq = Seq["AGTACACTGGT"]
my_seq
0Vớ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àymy_seq = Seq["AGTACACTGGT"]
my_seq
1my_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 fileTruy 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 GenBankTrướ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']
2my_seq = Seq["AGTACACTGGT"]
my_seq
3Bây giờ chúng ta có thể lấy một bản ghi Genbank
my_seq = Seq["AGTACACTGGT"]
my_seq
4my_seq = Seq["AGTACACTGGT"]
my_seq
5vụ 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']
4my_seq = Seq["AGTACACTGGT"]
my_seq
6Bạ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ìnhTiế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']
8my_seq = Seq["AGTACACTGGT"]
my_seq
7Biế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ôimy_seq = Seq["AGTACACTGGT"]
my_seq
8Lư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
9Khi 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[]]
0Chú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"]
5my_seq = Seq["GATCGATGGGCCTATATAGGATCGAAAATCGC"]
print[my_seq.reverse_complement[]]
1Bâ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[]]
2my_seq = Seq["GATCGATGGGCCTATATAGGATCGAAAATCGC"]
print[my_seq.reverse_complement[]]
3Chú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[]]
4my_seq = Seq["GATCGATGGGCCTATATAGGATCGAAAATCGC"]
print[my_seq.reverse_complement[]]
5Thườ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ấtmy_seq = Seq["GATCGATGGGCCTATATAGGATCGAAAATCGC"]
print[my_seq.reverse_complement[]]
6my_seq = Seq["GATCGATGGGCCTATATAGGATCGAAAATCGC"]
print[my_seq.reverse_complement[]]
7Tì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
9 mà chúng tôi đã tải từID: AC12345 Name: Description: This sequence is pretend. Number of features: 0 Seq['GATC']
8ID: AC12345 Name: Description: This sequence is pretend. Number of features: 0 Seq['GATC']
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.