آموزش توالی در برنامه نویسی بایوپایتون
آموزش توالی در برنامه نویسی بایوپایتون
در این درس از آموزش های برنامه نویسی سایت سورس باران، با آموزش توالی در برنامه نویسی بایوپایتون در خدمت شما هستیم.
پیشنهاد ویژه : آموزش طراحی وب سایت با پایتون
توالی مجموعه ای از حروف است که برای نشان دادن پروتئین، DNA یا RNA ارگانیسم استفاده می شود. توسط کلاس Seq نشان داده می شود. کلاس Seq در ماژول Bio.Seq تعریف شده است.
بیایید یک توالی ساده در بایوپایتون ایجاد کنیم همانطور که در زیر نشان داده شده است –
1 2 3 4 5 6 |
>>> from Bio.Seq import Seq >>> seq = Seq("AGCT") >>> seq Seq('AGCT') >>> print(seq) AGCT |
در اینجا، ما یک توالی پروتئین ساده AGCT ایجاد کرده ایم و هر حرف آلانین ، گلیسین ، سیستئین و ترئونین را نشان می دهد.
هر شی Seq دارای دو ویژگی مهم است –
- dat – رشته توالی واقعی (AGCT)
- alphabet – برای نشان دادن نوع توالی استفاده می شود. به عنوان مثال، توالی DNA ، توالی RNA و … به طور پیش فرض، هیچ توای ای را نشان نمی دهد و ماهیتی عمومی دارد.
ماژول alphabet
شی Seq حاوی ویژگی Alphabet برای تعیین نوع توالی، حروف و عملکردهای احتمالی هستند. این در ماژول Bio.Alphabet تعریف شده است. alphabet را می توان به صورت زیر تعریف کرد
1 2 3 4 5 6 |
>>> from Bio.Seq import Seq >>> myseq = Seq("AGCT") >>> myseq Seq('AGCT') >>> myseq.alphabet Alphabet() |
ماژول alphabet کلاس های زیر را برای نمایش انواع مختلف توالی ارائه می دهد.
Alphabet – کلاس پایه برای انواع alphabet.
SingleLetterAlphabet : الفبای عمومی با حروف یک اندازه. این از Alphabet و سایر انواع Alphabet از آن گرفته می شود.
1 2 3 4 5 |
>>> 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 – الفبای پروتئین تک حرفی عمومی.
1 2 3 4 5 |
>>> from Bio.Seq import Seq >>> from Bio.Alphabet import generic_protein >>> test_seq = Seq('AGTACACTGGT', generic_protein) >>> test_seq Seq('AGTACACTGGT', ProteinAlphabet()) |
NucleotideAlphabet – الفبای عمومی تک حرف نوکلئوتید.
1 2 3 4 |
>>> from Bio.Seq import Seq >>> from Bio.Alphabet import generic_nucleotide >>> test_seq = Seq('AGTACACTGGT', generic_nucleotide) >>> test_seq Seq('AGTACACTGGT', NucleotideAlphabet()) |
DNAAlphabet – الفبای DNA تک حرفی عمومی.
1 2 3 4 5 |
>>> from Bio.Seq import Seq >>> from Bio.Alphabet import generic_dna >>> test_seq = Seq('AGTACACTGGT', generic_dna) >>> test_seq Seq('AGTACACTGGT', DNAAlphabet()) |
RNAAlphabet – الفبای RNA تک حرف عمومی.
1 2 3 4 5 |
>>> 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.
- ( DNA_ IUPACAmbiguousDNA (ambiguous_dna -مبهم IUPAC بزرگ.
- (DNA _ IUPACUnambiguousDNA (unambiguous_dna بدون ابهام IUPAC بزرگ (GATC).
- ExtendedIUPACDNA (Extended_dna) – الفبای DNA IUPAC توسعه یافته.
- (RNA _IUPACAmbiguousRNA (ambiguous_rna مبهم بزرگ IUPAC.
- (RNA _ IUPACUnambiguousRNA (unambiguous_rna بدون ابهام IUPAC بزرگ (GAUC).
همانطور که در زیر نشان داده شده است، یک مثال ساده برای کلاس پروتئین IUPAC در نظر بگیرید –
1 2 3 4 5 |
>>> from Bio.Alphabet import IUPAC >>> protein_seq = Seq("AGCT", IUPAC.protein) >>> protein_seq Seq('AGCT', IUPACProtein()) >>> protein_seq.alphabet |
همچنین، بایوپایتون تمام داده های پیکربندی مربوط به بیوانفورماتیک را از طریق ماژول Bio.Data در معرض دید قرار می دهد. به عنوان مثال ، IUPACData.protein_letters حروف احتمالی الفبای پروتئین را دارد.
1 2 3 |
>>> from Bio.Data import IUPACData >>> IUPACData.protein_letters 'ACDEFGHIKLMNPQRSTVWY |
عملیات کلی
این بخش به طور خلاصه در مورد تمام عملیات کلی موجود در کلاس Seq توضیح می دهد. توالی ها شبیه رشته های پایتون است. ما می توانیم عملیات رشته پایتون مانند برش، شمارش، الحاق، پیدا کردن، تقسیم و نوار را به ترتیب دنبال کنیم.
برای بدست آوردن بازده های مختلف از کدهای زیر استفاده کنید.
برای بدست آوردن اولین مقدار توالی.
1 2 3 |
>>> seq_string = Seq("AGCTAGCT") >>> seq_string[0] 'A' |
برای چاپ دو مقدار اول.
1 2 |
>>> seq_string[0:2] Seq('AG') |
برای چاپ همه مقادیر.
1 2 |
>>> seq_string[ : ] Seq('AGCTAGCT') |
برای انجام عملیات طول و شمارش.
1 2 3 4 |
>>> len(seq_string) 8 >>> seq_string.count('A') 2 |
برای اضافه کردن دو توالی.
1 2 3 4 5 |
>>> 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 عمومی هستند و بنابراین می توانید آنها را اضافه کرده و توالی جدید تولید کنید. نمی توانید توالی هایی با حروف ناسازگار مانند توالی پروتئین و توالی DNA به شرح زیر اضافه کنید –
1 2 3 4 5 6 7 |
>>> dna_seq = Seq('AGTACACTGGT', generic_dna) >>> protein_seq = Seq('AGUACACUGGU', generic_protein) >>> dna_seq + protein_seq ..... ..... TypeError: Incompatible alphabets DNAAlphabet() and ProteinAlphabet() >>> |
برای افزودن دو یا چند توالی، ابتدا آن را در لیست پایتون ذخیره کنید، سپس با استفاده از ‘for loop’ آن را بازیابی کنید و در آخر همانطور که در زیر نشان داده شده است، با هم اضافه کنید –
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
>>> 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()) |
در بخش زیر، کدهای مختلفی برای بدست آوردن خروجی بر اساس نیاز داده شده است.
برای تغییر مورد توالی.
1 2 3 4 |
>>> from Bio.Alphabet import generic_rna >>> rna = Seq("agct", generic_rna) >>> rna.upper() Seq('AGCT', RNAAlphabet()) |
برای بررسی عضویت و هویت عملگر پایتون.
1 2 3 4 5 6 7 8 |
>>> rna = Seq("agct", generic_rna) >>> 'a' in rna True >>> 'A' in rna False >>> rna1 = Seq("AGCT", generic_dna) >>> rna is rna1 False |
برای پیدا کردن یک حرف یا توالی حرف در داخل توالی داده شده.
1 2 3 4 5 |
>>> protein_seq = Seq('AGUACACUGGU', generic_protein) >>> protein_seq.find('G') 1 >>> protein_seq.find('GG') 8 |
برای انجام عملیات تقسیم.
1 2 3 4 |
>>> protein_seq = Seq('AGUACACUGGU', generic_protein) >>> protein_seq.split('A') [Seq('', ProteinAlphabet()), Seq('GU', ProteinAlphabet()), Seq('C', ProteinAlphabet()), Seq('CUGGU', ProteinAlphabet())] |
برای انجام عملیات نوار به ترتیب.
1 2 3 4 |
>>> protein_seq = Seq('AGUACACUGGU', generic_protein) >>> protein_seq.split('A') [Seq('', ProteinAlphabet()), Seq('GU', ProteinAlphabet()), Seq('C', ProteinAlphabet()), Seq('CUGGU', ProteinAlphabet())] |
دیدگاه شما