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

下面来看看如何在Biopython中创建一个简单的序列,如下所示:

>>> from Bio.Seq import Seq

>>> seq = Seq("AGCT")

>>> seq

Seq('AGCT')

>>> print(seq)

AGCT

在这里,我们创建了一个简单的蛋白质序列AGCT,每个字母代表丙氨酸,甘氨酸,半胱氨酸和苏氨酸。

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

data - 实际序列字符串(AGCT)

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

1. Alphabet模块

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

>>> from Bio.Seq import Seq

>>> myseq = Seq("AGCT")

>>> myseq

Seq('AGCT')

>>> myseq.alphabet

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

2. 基本操作

本节简要说明了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

要添加两个序列:

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

>>> dna_seq = Seq('AGTACACTGGT', generic_dna)

>>> protein_seq = Seq('AGUACACUGGU', generic_protein)

>>> dna_seq + protein_seq

.....

.....

TypeError: Incompatible alphabets DNAAlphabet() and ProteinAlphabet()

>>>

要添加两个或多个序列,请先将其存储在python列表中,然后使用for循环进行检索,最后将其添加在一起,如下所示:

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

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

python给定dna等分成两个序列_Biopython序列相关推荐

  1. python给定dna等分成两个序列_分析DNA序列中的串联重复序列

    解决问题的一个好方法是使用regex.正则表达式是编程中解析strings的常用方法. 使用regex,您可以定义要在字符串中搜索的模式(就像您所做的那样),这是问题的核心. 这意味着regex有自己 ...

  2. numpy序列预处理dna序列_使用机器学习和Python揭开DNA测序神秘面纱

    "脱氧核糖核酸(DNA)是一种分子,其中包含每个物种独特的生物学指令.DNA及其包含的说明在繁殖过程中从成年生物传给其后代." 简介 基因组是生物体中DNA的完整集合.所有生物物种 ...

  3. Python每日一练第5天——将一组数尽可能均匀地分成两堆,使两个堆中的数的和尽可能相等

    每日一练-做题 麦克叔叔去世了,他在遗嘱中给他的两个孙子阿贝和鲍勃留下了一堆珍贵的口袋妖怪卡片.遗嘱中唯一的方向是"尽可能均匀地分配纸牌的价值".作为Mike遗嘱的执行人,你已经为 ...

  4. Python使用matplotlib可视化时间序列自回归ACF图和偏自回归PACF图、ACF图显示了时间序列与其自身滞后的相关性、PACF显示了任何给定的滞后(时间序列)与当前序列的自相关性

    Python使用matplotlib可视化时间序列自回归ACF图和偏自回归PACF图.ACF图显示了时间序列与其自身滞后的相关性.PACF显示了任何给定的滞后(时间序列)与当前序列的自相关性,但消除了 ...

  5. chatgpt赋能python:Python如何分成两栏写入Word文档

    Python如何分成两栏写入Word文档 在进行文本排版时,有些时候我们需要将文字分成两栏来排版,这样可以让文章更加美观,易读. 本文将介绍一种使用Python将文本分成两栏写入Word文档的方法.在 ...

  6. python中csv文件通过什么表示字符_python_写入csv文件时候无法进行原样写入(写入字符串中出现逗号,时候,csv文件自动分成两个单元格)...

    问题描述: 写入csv文件时候无法进行原样写入(写入字符串中出现逗号","时候,csv文件自动分成两个单元格) with open("test.csv",&qu ...

  7. python数组分成两个和相等的子集_javascript,_动态规划——把一个整数数组分成两个和相等的子集,怎么写,javascript - phpStudy...

    动态规划--把一个整数数组分成两个和相等的子集,怎么写 当数组nums=[2,3,5]时,测试通过,但当nums=[5,3,2]时,测试就不能通过,这是为什么? window.onload = fun ...

  8. Python的简单代码:两天肝出画函数图像(散点图)的程序(不用matplotlib)(含白菜也能看懂的超超超详细讲解和源代码哦)

    [ 原创作者:小康2021 ](12.08已更新) 该程序(玩具)基本上支持任何普通函数和 math 模块中的函数,具体操作说明见下面的效果图.博主能力有限(所以初学者百分之百也能看懂我的代码),爆肝 ...

  9. python给定字符串显示奇数_字符串基础练习题80+道(原文及代码见文尾链接)

    Python 字符串基础练习题80+道 1.编写一个Python程序来计算字符串的长度. 2.编写一个Python程序来计算字符串中的字符数(字符频率). Sample String:google.c ...

  10. 习题2.5 两个有序链表序列的合并 (15 分)

    习题2.5 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L ...

最新文章

  1. android小技巧(二)
  2. 目标检测 | 盘点目标检测中的特征融合技巧(根据YOLO v4总结)
  3. 文献记录(part61)--基于不完备数据聚类的缺失数据填补方法
  4. windows系统上openssh client的离线安装
  5. 学习全球最火编程语言Python,要读哪些书?
  6. UI实用|素材APP启动图标设计模板
  7. 傅里叶滤波音频文件(笔记05)
  8. Matplotlib作业3
  9. element-ui的input加单位符号
  10. UVa 12657 双向链表
  11. ElasticSearch入门详解
  12. 使用Spring实现AOP(XML+注解)
  13. 快书编标让标书制作更高效、更规范、更轻松
  14. MySQL 如何使用show processlist进行过滤
  15. 怎么网上兼职赚钱?盘点5个互联网赚钱的方法!
  16. 流利阅读12.28 Seriously, Prada, what were you thinking? Why the fashion industry keeps bumbling into rac
  17. 利用命令行实现图片转换等操作--ImageMagick
  18. 1期精彩推荐:如何应对工作中的冲突?
  19. Jbrowse中的BigWig Tracks配置
  20. 面试前端程序员想拿 10K,面试官说你只值8K,如何应付?

热门文章

  1. python——txt文本处理
  2. 爱快路由,通过域名分流解决QQ网吧特权不生效的问题
  3. android qq隐藏功能,90﹪的人都不知道QQ这些隐藏的功能!
  4. 安装VMware-打开时显示文件包含病毒
  5. 咪咕音乐客户端免费版
  6. 罗克露计算机组成,罗克露计算机组成原理课件(一)
  7. idea p3c 自定义_扩展阿里p3c实现自定义代码规范检查
  8. 程序设计入门c语言代码,C语言程序设计 入门源代码代码集合
  9. Android Studio ADB 环境变量配置
  10. ISO15693协议RFID读卡器模块HX829的韦根66(WG66)通信协议说明