Biopython - ลำดับ
ลำดับคือชุดของตัวอักษรที่ใช้แทนโปรตีน DNA หรือ RNA ของสิ่งมีชีวิต แสดงโดยคลาส Seq คลาส Seq ถูกกำหนดไว้ในโมดูล Bio.Seq
มาสร้างลำดับง่ายๆใน Biopython ดังที่แสดงด้านล่าง -
>>> from Bio.Seq import Seq
>>> seq = Seq("AGCT")
>>> seq
Seq('AGCT')
>>> print(seq)
AGCT
ที่นี่เราได้สร้างลำดับโปรตีนอย่างง่าย AGCT และแต่ละตัวอักษรแสดงถึง Aลานีน Gไลซีน Cysteine และ Threonine
วัตถุ Seq แต่ละชิ้นมีคุณลักษณะที่สำคัญสองประการ -
ข้อมูล - สตริงลำดับจริง (AGCT)
ตัวอักษร - ใช้เพื่อแสดงประเภทของลำดับ เช่นลำดับดีเอ็นเอลำดับอาร์เอ็นเอเป็นต้นโดยค่าเริ่มต้นจะไม่แสดงลำดับใด ๆ และเป็นลักษณะทั่วไป
โมดูลตัวอักษร
วัตถุ Seq มีแอตทริบิวต์ Alphabet เพื่อระบุประเภทลำดับตัวอักษรและการดำเนินการที่เป็นไปได้ ถูกกำหนดไว้ในโมดูล Bio Alphabet ตัวอักษรสามารถกำหนดได้ดังต่อไปนี้ -
>>> from Bio.Seq import Seq
>>> myseq = Seq("AGCT")
>>> myseq
Seq('AGCT')
>>> myseq.alphabet
Alphabet()
โมดูลตัวอักษรมีคลาสด้านล่างเพื่อแสดงลำดับประเภทต่างๆ Alphabet - คลาสพื้นฐานสำหรับตัวอักษรทุกประเภท
SingleLetterAlphabet - ตัวอักษรทั่วไปที่มีตัวอักษรขนาดหนึ่ง มันมาจากตัวอักษรและประเภทตัวอักษรอื่น ๆ ทั้งหมดมาจากมัน
>>> 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 - ตัวอักษรโปรตีนตัวอักษรเดี่ยวทั่วไป
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_protein
>>> test_seq = Seq('AGTACACTGGT', generic_protein)
>>> test_seq
Seq('AGTACACTGGT', ProteinAlphabet())
NucleotideAlphabet - อักษรนิวคลีโอไทด์ตัวอักษรเดี่ยวทั่วไป
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_nucleotide
>>> test_seq = Seq('AGTACACTGGT', generic_nucleotide) >>> test_seq
Seq('AGTACACTGGT', NucleotideAlphabet())
DNAAlphabet - ตัวอักษร DNA ตัวเดียวทั่วไป
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_dna
>>> test_seq = Seq('AGTACACTGGT', generic_dna)
>>> test_seq
Seq('AGTACACTGGT', DNAAlphabet())
RNAAlphabet - ตัวอักษร RNA ตัวอักษรเดี่ยวทั่วไป
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_rna
>>> test_seq = Seq('AGTACACTGGT', generic_rna)
>>> test_seq
Seq('AGTACACTGGT', RNAAlphabet())
โมดูล Biopython, Bio Alphabet IUPAC จัดเตรียมประเภทลำดับพื้นฐานตามที่กำหนดโดยชุมชน IUPAC ประกอบด้วยคลาสต่อไปนี้ -
IUPACProtein (protein) - ตัวอักษรโปรตีน IUPAC ของกรดอะมิโนมาตรฐาน 20 ชนิด
ExtendedIUPACProtein (extended_protein) - ขยายตัวอักษรตัวพิมพ์ใหญ่โปรตีน IUPAC ตัวอักษรตัวเดียวรวมทั้ง X
IUPACAmbiguousDNA (ambiguous_dna) - ตัวพิมพ์ใหญ่ IUPAC DNA ที่คลุมเครือ
IUPACUnambiguousDNA (unambiguous_dna) - ตัวพิมพ์ใหญ่ IUPAC DNA ที่ไม่ชัดเจน (GATC)
ExtendedIUPACDNA (extended_dna) - อักษร DNA IUPAC แบบขยาย
IUPACAmbiguousRNA (ambiguous_rna) - ตัวพิมพ์ใหญ่ IUPAC RNA คลุมเครือ
IUPACUnambiguousRNA (unambiguous_rna) - ตัวพิมพ์ใหญ่ IUPAC RNA (GAUC) ที่ไม่ชัดเจน
ลองพิจารณาตัวอย่างง่ายๆสำหรับคลาส IUPACProtein ดังที่แสดงด้านล่าง -
>>> from Bio.Alphabet import IUPAC
>>> protein_seq = Seq("AGCT", IUPAC.protein)
>>> protein_seq
Seq('AGCT', IUPACProtein())
>>> protein_seq.alphabet
นอกจากนี้ Biopython ยังเปิดเผยข้อมูลการกำหนดค่าที่เกี่ยวข้องกับชีวสารสนเทศศาสตร์ทั้งหมดผ่านโมดูล Bio.Data ตัวอย่างเช่น IUPACData.protein_letters มีตัวอักษร IUPACProtein ที่เป็นไปได้
>>> from Bio.Data import IUPACData
>>> IUPACData.protein_letters
'ACDEFGHIKLMNPQRSTVWY'
การทำงานขั้นพื้นฐาน
ส่วนนี้อธิบายสั้น ๆ เกี่ยวกับการใช้งานพื้นฐานทั้งหมดที่มีในคลาส Seq ลำดับจะคล้ายกับสตริง python เราสามารถดำเนินการสตริง python เช่นการแบ่งส่วนการนับการต่อกันการค้นหาการแยกและการสตริปตามลำดับ
ใช้รหัสด้านล่างเพื่อรับเอาต์พุตต่างๆ
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())
ที่นี่วัตถุสองลำดับข้างต้น seq1, seq2 เป็นลำดับดีเอ็นเอทั่วไปดังนั้นคุณสามารถเพิ่มและสร้างลำดับใหม่ได้ คุณไม่สามารถเพิ่มลำดับด้วยตัวอักษรที่เข้ากันไม่ได้เช่นลำดับโปรตีนและลำดับดีเอ็นเอตามที่ระบุด้านล่าง -
>>> dna_seq = Seq('AGTACACTGGT', generic_dna)
>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> dna_seq + protein_seq
.....
.....
TypeError: Incompatible alphabets DNAAlphabet() and ProteinAlphabet()
>>>
ในการเพิ่มลำดับสองลำดับขึ้นไปอันดับแรกให้เก็บไว้ในรายการ python จากนั้นดึงข้อมูลโดยใช้ 'for loop' และสุดท้ายรวมเข้าด้วยกันดังที่แสดงด้านล่าง -
>>> 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())
ในส่วนด้านล่างนี้จะมีการกำหนดรหัสต่างๆเพื่อให้ได้ผลลัพธ์ตามความต้องการ
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')