开发手册 欢迎您!
软件开发者资料库

Biopython - 序列

Biopython序列 - 从简单和简单的步骤学习Biopython,从基本到高级概念,包括简介,安装,创建简单应用程序,序列,高级序列操作,序列I / O操作,序列比对,BLAST概述,Entrez数据库,PDB模块,Motif对象,BioSQL模块,群体遗传学,基因组分析,表型微阵列,绘图,聚类分析,机器学习,测试技术。

序列是用于表示生物体蛋白质,DNA或RNA的一系列字母.它由Seq类表示. Seq类在Bio.Seq模块中定义.

让我们在Biopython中创建一个简单的序列,如下所示 :

>>> from Bio.Seq import Seq >>> seq = Seq("AGCT") >>> seq Seq('AGCT') >>> print(seq) AGCT

在这里,我们创建了一个简单的蛋白质序列 AGCT ,每个字母代表 A lanine, G lycine, C ysteine和 T hreonine.

每个Seq对象有两个重要的属性 :

  • data : 实际的序列字符串(AGCT)

  • alphabet : 用于表示序列的类型.例如DNA序列,RNA序列等.默认情况下,它不代表任何序列,本质上是通用的.

字母模块

Seq对象包含Alphabet属性,用于指定序列类型,字母和可能的操作.它在Bio.Alphabet模块中定义.字母可以定义为低于 :

>>> from Bio.Seq import Seq >>> myseq = Seq("AGCT") >>> myseq Seq('AGCT') >>> myseq.alphabet Alphabet()

Alphabet模块提供以下类来表示不同类型的序列.字母 - 所有类型字母的基类.

SingleLetterAlphabet  - 字母大小为1的通用字母.它源自Alphabet,所有其他字母表类型都源于它.

>>> 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(蛋白质) :  IUPAC 20种标准氨基酸的蛋白质字母表.

  • ExtendedIUPACProtein(extended_protein) : 扩展的大写IUPAC蛋白单字母字母包括X.

  • IUPACAmbiguousDNA(ambiguous_dna) : 大写的IUPAC模糊DNA.

  • IUPACUnambiguousDNA(unambiguous_dna) : 大写IUPAC明确DNA(GATC).

  • ExtendedIUPACDNA(extended_dna) : 扩展的IUPAC DNA字母表.

  • 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字符串操作,如切片,计数,连接,查找,拆分和删除序列.

使用以下代码获取各种输出.

按顺序获取第一个值.

>>> seq_string = Seq("AGCTAGCT") >>> seq_string[0] 'A'

打印前两个值.

 >>> seq_string [0:2]  Seq('AG')

打印所有值.

 >>> seq_string [:]  Seq('AGCTAGCT')

执行长度和计数操作.

 >>> len(seq_string) 8 >>> seq_string.count('A') 2

添加两个序列.

 >>>来自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序列 :

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

在下面的部分中,根据要求给出了各种代码来获得输出.

改变序列的情况.

>>> from Bio.Alphabet import generic_rna >>> rna = Seq("agct", generic_rna) >>> rna.upper() Seq('AGCT', RNAAlphabet())

检查python成员资格和身份运营商.

>>> rna = Seq("agct", generic_rna) >>> 'a' in rna True >>> 'A' in rna False >>> rna1 = Seq("AGCT", generic_dna) >>> rna is rna1 False

在给定序列中查找单个字母或字母序列.

 >>> protein_seq = Seq('AGUACACUGGU',generic_protein)>>> protein_seq.find('G') 1 >>> protein_seq.find('GG') 8

执行拆分操作.

 >>> protein_seq = Seq('AGUACACUGGU',generic_protein)>>> protein_seq.split('A') [Seq('',ProteinAlphabet()),Seq('GU',ProteinAlphabet()), Seq('C',ProteinAlphabet()),Seq ('CUGGU',ProteinAlphabet())]

在序列中执行条带操作.

>>> strip_seq = Seq(" AGCT ") >>> strip_seq Seq(' AGCT ') >>> strip_seq.strip() Seq('AGCT')