Biopython - Trình tự
Trình tự là một loạt các chữ cái được sử dụng để đại diện cho protein, DNA hoặc RNA của một sinh vật. Nó được đại diện bởi lớp Seq. Lớp Seq được định nghĩa trong mô-đun Bio.Seq.
Hãy tạo một chuỗi đơn giản trong Biopython như hình dưới đây -
>>> from Bio.Seq import Seq
>>> seq = Seq("AGCT")
>>> seq
Seq('AGCT')
>>> print(seq)
AGCT
Ở đây, chúng tôi đã tạo ra một chuỗi protein đơn giản AGCT và mỗi chữ cái đại diện cho Alanine, Glycine, Cysteine và Threonine.
Mỗi đối tượng Seq có hai thuộc tính quan trọng:
dữ liệu - chuỗi trình tự thực tế (AGCT)
bảng chữ cái - được sử dụng để thể hiện loại trình tự. ví dụ như trình tự DNA, trình tự RNA, v.v ... Theo mặc định, nó không đại diện cho bất kỳ trình tự nào và có tính chất chung chung.
Mô-đun bảng chữ cái
Các đối tượng Seq chứa thuộc tính Bảng chữ cái để chỉ định kiểu trình tự, các chữ cái và các phép toán có thể. Nó được định nghĩa trong mô-đun Bio.Alphabet. Bảng chữ cái có thể được định nghĩa như sau:
>>> from Bio.Seq import Seq
>>> myseq = Seq("AGCT")
>>> myseq
Seq('AGCT')
>>> myseq.alphabet
Alphabet()
Mô-đun bảng chữ cái cung cấp các lớp bên dưới để đại diện cho các loại trình tự khác nhau. Bảng chữ cái - lớp cơ sở cho tất cả các loại bảng chữ cái.
SingleLetterAlphabet - Bảng chữ cái chung với các chữ cái có kích thước là một. Nó bắt nguồn từ Bảng chữ cái và tất cả các loại bảng chữ cái khác bắt nguồn từ nó.
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import single_letter_alphabet
>>> test_seq = Seq('AGTACACTGGT', single_letter_alphabet)
>>> test_seq
Seq('AGTACACTGGT', SingleLetterAlphabet())
ProteinAlphabet - Bảng chữ cái protein chung chung.
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_protein
>>> test_seq = Seq('AGTACACTGGT', generic_protein)
>>> test_seq
Seq('AGTACACTGGT', ProteinAlphabet())
NucleotideAlphabet - Bảng chữ cái nucleotide chung một chữ cái.
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_nucleotide
>>> test_seq = Seq('AGTACACTGGT', generic_nucleotide) >>> test_seq
Seq('AGTACACTGGT', NucleotideAlphabet())
DNAAlphabet - Bảng chữ cái DNA chữ cái chung.
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_dna
>>> test_seq = Seq('AGTACACTGGT', generic_dna)
>>> test_seq
Seq('AGTACACTGGT', DNAAlphabet())
RNAAlphabet - Bảng chữ cái RNA đơn thông thường.
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_rna
>>> test_seq = Seq('AGTACACTGGT', generic_rna)
>>> test_seq
Seq('AGTACACTGGT', RNAAlphabet())
Mô-đun Biopython, Bio.Alphabet.IUPAC cung cấp các loại trình tự cơ bản theo định nghĩa của cộng đồng IUPAC. Nó chứa các lớp sau:
IUPACProtein (protein) - Bảng chữ cái IUPAC protein gồm 20 loại axit amin tiêu chuẩn.
ExtendedIUPACProtein (extended_protein) - Bảng chữ cái IUPAC protein viết hoa mở rộng bao gồm X.
IUPACAmbiguousDNA (ambiguous_dna) - IUPAC viết hoa không rõ ràng DNA.
IUPACUnambiguousDNA (unambiguous_dna) - Chữ hoa IUPAC DNA rõ ràng (GATC).
ExtendedIUPACDNA (extended_dna) - Bảng chữ cái IUPAC DNA mở rộng.
IUPACAmbiguousRNA (ambiguous_rna) - ARN mơ hồ IUPAC viết hoa.
IUPACUnambiguousRNA (unambiguous_rna) - IUPAC viết hoa rõ ràng RNA (GAUC).
Hãy xem xét một ví dụ đơn giản cho lớp IUPACProtein như hình dưới đây:
>>> from Bio.Alphabet import IUPAC
>>> protein_seq = Seq("AGCT", IUPAC.protein)
>>> protein_seq
Seq('AGCT', IUPACProtein())
>>> protein_seq.alphabet
Ngoài ra, Biopython hiển thị tất cả dữ liệu cấu hình liên quan đến tin sinh học thông qua mô-đun Bio.Data. Ví dụ: IUPACData.protein_letters có các chữ cái có thể có của bảng chữ cái IUPACProtein.
>>> from Bio.Data import IUPACData
>>> IUPACData.protein_letters
'ACDEFGHIKLMNPQRSTVWY'
Hoạt động cơ bản
Phần này giải thích ngắn gọn về tất cả các thao tác cơ bản có sẵn trong lớp Seq. Các chuỗi tương tự như chuỗi python. Chúng ta có thể thực hiện các thao tác với chuỗi python như cắt, đếm, nối, tìm, tách và tách theo chuỗi.
Sử dụng các mã dưới đây để nhận các đầu ra khác nhau.
To get the first value in sequence.
>>> seq_string = Seq("AGCTAGCT")
>>> seq_string[0]
'A'
To print the first two values.
>>> seq_string[0:2]
Seq('AG')
To print all the values.
>>> seq_string[ : ]
Seq('AGCTAGCT')
To perform length and count operations.
>>> len(seq_string)
8
>>> seq_string.count('A')
2
To add two sequences.
>>> from Bio.Alphabet import generic_dna, generic_protein
>>> seq1 = Seq("AGCT", generic_dna)
>>> seq2 = Seq("TCGA", generic_dna)
>>> seq1+seq2
Seq('AGCTTCGA', DNAAlphabet())
Ở đây, hai đối tượng trình tự ở trên, seq1, seq2 là trình tự DNA chung và do đó bạn có thể thêm chúng và tạo ra trình tự mới. Bạn không thể thêm các trình tự có bảng chữ cái không tương thích, chẳng hạn như trình tự protein và trình tự DNA như được chỉ định bên dưới -
>>> dna_seq = Seq('AGTACACTGGT', generic_dna)
>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> dna_seq + protein_seq
.....
.....
TypeError: Incompatible alphabets DNAAlphabet() and ProteinAlphabet()
>>>
Để thêm hai hoặc nhiều chuỗi, trước tiên hãy lưu trữ nó trong một danh sách python, sau đó truy xuất nó bằng cách sử dụng 'vòng lặp for' và cuối cùng thêm nó lại với nhau như được hiển thị bên dưới:
>>> from Bio.Alphabet import generic_dna
>>> list = [Seq("AGCT",generic_dna),Seq("TCGA",generic_dna),Seq("AAA",generic_dna)]
>>> for s in list:
... print(s)
...
AGCT
TCGA
AAA
>>> final_seq = Seq(" ",generic_dna)
>>> for s in list:
... final_seq = final_seq + s
...
>>> final_seq
Seq('AGCTTCGAAAA', DNAAlphabet())
Trong phần dưới đây, các mã khác nhau được đưa ra để nhận kết quả đầu ra dựa trên yêu cầu.
To change the case of sequence.
>>> from Bio.Alphabet import generic_rna
>>> rna = Seq("agct", generic_rna)
>>> rna.upper()
Seq('AGCT', RNAAlphabet())
To check python membership and identity operator.
>>> rna = Seq("agct", generic_rna)
>>> 'a' in rna
True
>>> 'A' in rna
False
>>> rna1 = Seq("AGCT", generic_dna)
>>> rna is rna1
False
To find single letter or sequence of letter inside the given sequence.
>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> protein_seq.find('G')
1
>>> protein_seq.find('GG')
8
To perform splitting operation.
>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> protein_seq.split('A')
[Seq('', ProteinAlphabet()), Seq('GU', ProteinAlphabet()),
Seq('C', ProteinAlphabet()), Seq('CUGGU', ProteinAlphabet())]
To perform strip operations in the sequence.
>>> strip_seq = Seq(" AGCT ")
>>> strip_seq
Seq(' AGCT ')
>>> strip_seq.strip()
Seq('AGCT')