Biopython 高级序列操作

Biopython 高级序列操作

在本章中,我们将讨论Biopython提供的一些高级序列功能。

补体和反补体

核苷酸序列可以被反向互补以得到新的序列。同时,补足的序列也可以通过反向补足来获得原始序列。Biopython提供了两种方法来实现这个功能 - 补全反向补全 这方面的代码给出如下

>>> from Bio.Alphabet import IUPAC 
>>> nucleotide = Seq('TCGAAGTCAGTC', IUPAC.ambiguous_dna) 
>>> nucleotide.complement() 
Seq('AGCTTCAGTCAG', IUPACAmbiguousDNA()) 
>>>

这里,complement()方法允许对DNA或RNA序列进行补充。reverse_complement()方法对结果序列从左到右进行补全和反转。它显示如下 –

>>> nucleotide.reverse_complement() 
Seq('GACTGACTTCGA', IUPACAmbiguousDNA())

Biopython使用Bio.Data.IUPACData提供的ambiguous_dna_complement变量来进行补全操作。

>>> from Bio.Data import IUPACData 
>>> import pprint 
>>> pprint.pprint(IUPACData.ambiguous_dna_complement) {
   'A': 'T',
   'B': 'V',
   'C': 'G',
   'D': 'H',
   'G': 'C',
   'H': 'D',
   'K': 'M',
   'M': 'K',
   'N': 'N',
   'R': 'Y',
   'S': 'S',
   'T': 'A',
   'V': 'B',
   'W': 'W',
   'X': 'X',
   'Y': 'R'} 
>>>

GC含量

预测基因组DNA碱基组成(GC含量)会显著影响基因组功能和物种生态学。GC含量是GC核苷酸的数量除以总核苷酸。

为了获得GC核苷酸含量,请导入以下模块并执行以下步骤 −

>>> from Bio.SeqUtils import GC 
>>> nucleotide = Seq("GACTGACTTCGA",IUPAC.unambiguous_dna) 
>>> GC(nucleotide) 
50.0

转录

转录是将DNA序列变为RNA序列的过程。实际的生物转录过程是进行反补(TCAG→CUGA)以获得mRNA,考虑到DNA作为模板链。然而,在生物信息学和Biopython中,我们通常直接使用编码链,我们可以通过将字母T改为U来获得mRNA序列。

上述的简单例子如下

>>> from Bio.Seq import Seq 
>>> from Bio.Seq import transcribe 
>>> from Bio.Alphabet import IUPAC 
>>> dna_seq = Seq("ATGCCGATCGTAT",IUPAC.unambiguous_dna) >>> transcribe(dna_seq) 
Seq('AUGCCGAUCGUAU', IUPACUnambiguousRNA()) 
>>>

为了逆转转录,T被改为U,如下面的代码所示-

>>> rna_seq = transcribe(dna_seq) 
>>> rna_seq.back_transcribe() 
Seq('ATGCCGATCGTAT', IUPACUnambiguousDNA())

为了得到DNA模板链,按照下面的方法对反转录的RNA进行反补。

>>> rna_seq.back_transcribe().reverse_complement() 
Seq('ATACGATCGGCAT', IUPACUnambiguousDNA())

翻译

翻译是一个将RNA序列翻译成蛋白质序列的过程。考虑一个RNA序列,如下图所示

>>> rna_seq = Seq("AUGGCCAUUGUAAU",IUPAC.unambiguous_rna) 
>>> rna_seq 
Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())

现在,将translate()函数应用于上面的代码–

>>> rna_seq.translate() 
Seq('MAIV', IUPACProtein())

上述RNA序列很简单。考虑RNA序列,AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGA并应用translate() –

>>> rna = Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGA', IUPAC.unambiguous_rna) 
>>> rna.translate() 
Seq('MAIVMGR*KGAR', HasStopCodon(IUPACProtein(), '*'))

这里,停止密码子用星号 *表示。

在translate()方法中,有可能在第一个终止密码子处停止。要做到这一点,你可以在translate()中指定to_stop=True,如下所示

>>> rna.translate(to_stop = True) 
Seq('MAIVMGR', IUPACProtein())

这里,终止密码子不包括在结果序列中,因为它不包含一个密码子。

翻译表

NCBI的遗传代码页面提供了Biopython使用的翻译表的完整列表。让我们来看看一个标准表的例子,以直观地了解代码 —

>>> from Bio.Data import CodonTable 
>>> table = CodonTable.unambiguous_dna_by_name["Standard"] 
>>> print(table) 
Table 1 Standard, SGC0
   | T       | C       | A       | G       | 
 --+---------+---------+---------+---------+-- 
 T | TTT F   | TCT S   | TAT Y   | TGT C   | T
 T | TTC F   | TCC S   | TAC Y   | TGC C   | C
 T | TTA L   | TCA S   | TAA Stop| TGA Stop| A
 T | TTG L(s)| TCG S   | TAG Stop| TGG W   | G 
 --+---------+---------+---------+---------+--
 C | CTT L   | CCT P   | CAT H   | CGT R   | T
 C | CTC L   | CCC P   | CAC H   | CGC R   | C
 C | CTA L   | CCA P   | CAA Q   | CGA R   | A
 C | CTG L(s)| CCG P   | CAG Q   | CGG R   | G 
 --+---------+---------+---------+---------+--
 A | ATT I   | ACT T   | AAT N   | AGT S   | T
 A | ATC I   | ACC T   | AAC N   | AGC S   | C
 A | ATA I   | ACA T   | AAA K   | AGA R   | A
 A | ATG M(s)| ACG T   | AAG K   | AGG R   | G 
 --+---------+---------+---------+---------+--
 G | GTT V   | GCT A   | GAT D   | GGT G   | T
 G | GTC V   | GCC A   | GAC D   | GGC G   | C
 G | GTA V   | GCA A   | GAA E   | GGA G   | A
 G | GTG V   | GCG A   | GAG E   | GGG G   | G 
 --+---------+---------+---------+---------+-- 
>>>

Biopython使用这个表格将DNA翻译成蛋白质,并找到停止密码子。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程