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')