Biopython 模块处理Seq序列 方法

Biopython 模块
1.序列 赋值
Bio.Alphabet.IUPAC 提供蛋白质、DNA和RNA的基本定义,并提供扩展和定制基本定义的功能。
1.1 DNA 字母表

基本字母:IUPACUnambiguousDNA
每种可能下的歧义字母:IUPACAmbiguousDNA
修饰后的碱基:ExtendedIUPACDNA

1.2 蛋白字母表
基本的IUPACProtein类 包含常见的20中氨基酸
ExtendedIUPACProtein类 包含除20种常见氨基酸外的其他氨基酸元素

如:
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> my_seq = Seq("AGTACACTGGT", IUPAC.unambiguous_dna) #基本的DNA字母表
>>> my_seq
Seq(‘AGTACACTGGT‘, IUPACUnambiguousDNA())
>>> my_seq.alphabet
IUPACUnambiguousDNA()

2 序列Seq方法
1)字符串方法
len(my_seq)
迭代 如:
>>> for index, letter in enumerate(my_seq):
... print index, letter
lower()
upper() 改变带小写
count() 如: Seq("AAAA").count("AA")
切片 如: my_seq[0::3] 取密码子第一的碱基
str() 转换序列对象成字符串 如:
>>> str(my_seq)
‘GATCGATGGGCCTATATAGGATCGAAAATCGC

2)互补,方向互补
complement() #互补
reverse_complement() #反向互补方法
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC", IUPAC.unambiguous_dna)
>>> my_seq
Seq(‘GATCGATGGGCCTATATAGGATCGAAAATCGC‘, IUPACUnambiguousDNA())
>>> my_seq.complement() #互补
Seq(‘CTAGCTACCCGGATATATCCTAGCTTTTAGCG‘, IUPACUnambiguousDNA())
>>> my_seq.reverse_complement() #反向互补方法
Seq(‘GCGATTTTCGATCCTATATAGGCCCATCGATC‘, IUPACUnambiguousDNA())

3)转录
transcribe()#将序列的T换成U,并调整字母表为RNA, 所以需是编码链用这方法
模板链需先反向互补再转录 如: template_dna.reverse_complement().transcribe()
>>> coding_dna
Seq(‘ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG‘, IUPACUnambiguousDNA())
>>> messenger_rna = coding_dna.transcribe() #将
>>> messenger_rna
Seq(‘AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG‘, IUPACUnambiguousRNA())

4)逆转录 即换U为T,转换字母表为DNA
back_transcribe()

5)translate() 将DNA/RNA翻译成蛋白序列,并转换蛋白字母表
标准遗传密码 table id 1 ,默认使用1
线粒体序列密码 table id 2

注:终止密码子翻译成*
仅翻译到阅读框的第一个终止密码子,然后停止 (这更符合自然现象)则to_stop=True。
>>> coding_dna.translate()
Seq(‘MAIVMGR*KGAR*‘, HasStopCodon(IUPACProtein(), ‘*‘))
>>> coding_dna.translate(to_stop=True)
Seq(‘MAIVMGR‘, IUPACProtein())
>>> coding_dna.translate(table=2)
Seq(‘MAIVMGRWKGAR*‘, HasStopCodon(IUPACProtein(), ‘*‘))
>>> coding_dna.translate(table=2, to_stop=True)
Seq(‘MAIVMGRWKGAR‘, IUPACProtein())

3.Seq对象不可变即不可再次更改或删除,如需要则需要先转换成str或MutableSeq对象
如:
>>> mutable_seq = my_seq.tomutable()
>>> mutable_seq
MutableSeq(‘GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA‘, IUPACUnambiguousDNA())
>>> new_seq = mutable_seq.toseq()
>>> new_seq
Seq(‘AGCCCGTGGGAAAGTCGCCGGGTAATGCACCG‘, IUPACUnambiguousDNA())

4.字符串其实也可以应用Seq的方法,只是用Seq更规范数据格式。
>>> from Bio.Seq import reverse_complement, transcribe, back_transcribe, translate
>>> my_string = "GCTGTTATGGGTCGTTGGAAGGGTGGTCGTGCTGCTGGTTAG"
>>> reverse_complement(my_string)
‘CTAACCAGCAGCACGACCACCCTTCCAACGACCCATAACAGC‘
>>> transcribe(my_string)
‘GCUGUUAUGGGUCGUUGGAAGGGUGGUCGUGCUGCUGGUUAG‘
>>> back_transcribe(my_string)
‘GCTGTTATGGGTCGTTGGAAGGGTGGTCGTGCTGCTGGTTAG‘
>>> translate(my_string)
‘AVMGRWKGGRAAG*‘

参考 Biopython Doc URL: http://biopython-cn.readthedocs.io/zh_CN/latest/cn/chr03.html

原文地址:https://www.cnblogs.com/koujiaodahan/p/8443508.html

时间: 2024-07-31 01:11:12

Biopython 模块处理Seq序列 方法的相关文章

Node.js -- Router模块中有一个param方法

这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方: Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的: 1 Map logic to route parameters. 大概意思就是路由参数的映射逻辑 这个可能一时半会也不明白其作用,尤其是不知道get和param的执行顺序 再看看源码里面的介绍: 1 2 3 Map the given param placeholder `name`(s) to the given

Node.js process 模块常用属性和方法

Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.maiziedu.com/course/694/有所帮助. 如果不是和命令行工具打交道,可能我们很少有机会去用到process模块中的一些方法或者属性.不过如果你要做类似于webpack或者gulp等较为复杂的构建工具,由于bash界面就是和用户直接交流的工具,因此友好的输入输出,完整的提示都非常有必

导入monkeyrunner模块失败的处理方法

因为工作的需要,想学学自动化测试的一些东西,于是开始接触 monkeyrunner,后来在写python脚本的时候发现导入monkeyrunner模块时总是失败,很纳闷,在cmd中测试的时候发现也会有各种各样的问题,于是各种搜索资料,总算搞定. 导入monkeyrunner时,所碰到的问题,大致有下列几种: a . Could not initia lize classcom.android.monkeyrunner.MonkeyDevice b . noclassdeffounderror:c

import 和 from … import 模块的变量、方法引用差异

import 和 from - import 模块的变量.方法引用差异 还是上面例子中的模块 support.py: def print_func( par ): print "Hello : ", par return 使用 import 引入并调用 support 模块的正确方法: #!/usr/bin/python # -*- coding: UTF-8 -*- # 导入模块 import support # 现在可以调用模块里包含的函数了 support.print_func(

介绍nodejs中的path模块的几个方法

webpack中常用的: var path = require('path') 是nodejs中的path模块,介绍一下webpack中常用的几个path模块的方法: 应用node环境的时候,这个path模块的方法经常被用到,处理路径的方法. Nodejs的path模块介绍: 网址:http://nodejs.cn/api/path.html path 模块提供了一些工具函数,用于处理文件与目录的路径.可以通过以下方式使用: const path = require('path'); 或 var

sys模块的几种方法

sys模块 sys模块是与python解释器交互的一个接口 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 import sys try: sys.exit(1) except SystemExit

自定Python模块路径及调用方法

今天自己跟着教材写好了一个函数,添加好注释后保存,准备用来作模块使用. 就在自己满怀激情准备使用一下这个模块的时候,却发现不知道自己的模块要放在哪里,怎么调用…… 经过网上一轮百度后,在其他老鸟的博客里终于找到了相关的方法,在这里小记一下: 临时指定路径可用:impor sys;sys.path.append('/home/XXXX') 添加默认模块搜索路径(我的python为2.7版):在/usr/local/lib/python2.7/dist-packages目录里新建一个.pth文件,把

scikit-learn主要模块和基本使用方法

从网上看到一篇总结的很不错的sklearn使用文档,备份勿忘. 引言 对于一些开始搞机器学习算法有害怕下手的小朋友,该如何快速入门,这让人挺挣扎的. 在从事数据科学的人中,最常用的工具就是R和Python了,每个工具都有其利弊,但是Python在各方面都相对胜出一些,这是因为scikit-learn库实现了很多机器学习算法. 加载数据(Data Loading) 我们假设输入时一个特征矩阵或者csv文件. 首先,数据应该被载入内存中. scikit-learn的实现使用了NumPy中的array

python 动态调用模块、类、方法(django项目)

需求:近一段时间基于django框架,开发各业务层监控代码,每个业务的监控逻辑不同,因此需要开发监控子模块,动态的导入调用. 项目名称:demo_django App:common_base.monitor_master 监控子模块:demo_django/common_base/modules/classname.py # -*- coding: utf-8 -*- class classname(object): def mod1(self): print "mod1" def m