biopython 处理序列

Seq 对象和标准的Python字符串有两个明显的不同。首先,它们使用不同的方法。 尽管``Seq``对象支持常规字符串的很多方法,但是它的 translate() 方法在做 生物学翻译时是不同的。相似的还有其他的生物学相关的方法,比如 reverse_complement() 。 其次, Seq 对象具有一个重要的属性– alphabet ,这一对象用于描述由单个 字母构成的序列字符串的 “mean” (意义),以及如何解释这一字符串。例如, AGTACACTGGT 序列是个DNA序列还是一段富含Alanines, Glycines, Cysteines and Threonines 的蛋白质序列?

#指定这条序列的类型是dna序列

>>> from Bio.Seq import Seq

>>> from Bio.Alphabet import IUPAC

>>> my_seq = Seq("AGTACACTGGT", IUPAC.unambiguous_dna)

>>> my_seq

Seq('AGTACACTGGT', IUPACUnambiguousDNA())

>>> my_seq.alphabet

IUPACUnambiguousDNA()

# Seq 对象有一个 .count() 方法,类似于字符串。记住这意味就像Python的 字符串一样进行着非重叠的计数。

>>> from Bio.Seq import Seq

>>> "AAAA".count("AA")

2

>>> Seq("AAAA").count("AA")

2

#Bio.SeqUtils模块内置函数计算GC含量

>>> from Bio.Seq import Seq

>>> from Bio.Alphabet import IUPAC

>>> from Bio.SeqUtils import GC

>>> my_seq = Seq('GATCGATGGGCCTATATAGGATCGAAAATCGC', IUPAC.unambiguous_dna)

>>> GC(my_seq)

46.875

#切分序列,从0开始计数

>>> from Bio.Seq import Seq

>>> from Bio.Alphabet import IUPAC

>>> my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC", IUPAC.unambiguous_dna)

>>> my_seq[4:12]

Seq('GATGGGCC', IUPACUnambiguousDNA())

#将序列对象转换为字符串

>>> str(my_seq)

'GATCGATGGGCCTATATAGGATCGAAAATCGC'

#当你进行Python字符串格式化或者插入操作符( % )时, 可以直接把 Seq 对象和 %s 占位符一起使用,不用担心序列自动换行:

>>> fasta_format_string = ">Name\n%s\n" % my_seq

>>> print fasta_format_string

>Name

GATCGATGGGCCTATATAGGATCGAAAATCGC

#连接序列就像是连接字符串一样使用'+'

#seq对象转换大小写跟字符串一样有upper和lower方法

#seq对象有内置的获得互补和反向互补的函数

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

#seq有内置的函数transcribe,将dna序列转录为rna序列

>>> coding_dna

Seq('ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG', IUPACUnambiguousDNA())

>>> messenger_rna = coding_dna.transcribe()

>>> messenger_rna

Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())

#seq还有逆转录的函数 back_transcribe

#翻译

#translate函数可将seq对象翻译为蛋白质序列,默认遇到终止子不会停止翻译,默认使用ncbi的标准密码子表,

#假设我们需要翻译一个线粒体序列,我们就需要告诉翻译函数使用相关的遗传密码:

>>> coding_dna.translate(table="Vertebrate Mitochondrial")

Seq('MAIVMGRWKGAR*', HasStopCodon(IUPACProtein(), '*'))

#你也可以利用NCBI上表格的标号来指定所使用的遗传密码,这样更简洁一些, 在GenBank文件的特征注释中经常包含表格的标号:

>>> coding_dna.translate(table=2)

Seq('MAIVMGRWKGAR*', HasStopCodon(IUPACProtein(), '*'))

#注意到当你使用 to_stop 参数时,翻译到终止子就停止,终止密码子本身是不翻译的

>>> coding_dna.translate()

Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*'))

>>> coding_dna.translate(to_stop=True)

Seq('MAIVMGR', IUPACProtein())

反向输出dna序列_biopython 处理dna序列,翻译,反向互补。相关推荐

  1. c语言程序三位整数反向输出,编写程序,输入一个3位整数,反向输出该3位整数 答案:#include stdio.h int main() { intx,a,b,c,f,s; printf(请输入...

    田产市调研数之论法有定量析与定性论二种分法.德尔菲法,亦称家按法,是定量析法也:× https口/ / image.zhihuishu.com / / / / zhs onlinexam uedito ...

  2. 【2040】反向输出序列

    Time Limit: 3 second Memory Limit: 2 MB [问题描述] 输入一个正整数序列(1<=个数<=500,所有数据均在整数范围内),遇负数停止,将正整数序列按 ...

  3. 基因组dna,sm,rm序列类型说明

    sequence type(序列类型): 'dna' - unmasked genomic DNA sequences(组装好的未经过处理的基因组). 'dna_rm' - masked genomi ...

  4. boost::spirit模块实现使用单个融合序列来生成不同序列中元素的输出的测试程序

    boost::spirit模块实现使用单个融合序列来生成不同序列中元素的输出的测试程序 实现功能 C++实现代码 实现功能 boost::spirit模块实现使用单个融合序列来生成不同序列中元素的输出 ...

  5. 7-10 先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数 (10 分)

    7-10 先序序列创建二叉树,输出先序序列.中序序列.后序序列并输出叶子结点数 (10 分) 对于给定的二叉树,输出其先序序列.中序序列.后序序列并输出叶子结点数. 输入格式: 二叉树的先序遍历序列. ...

  6. #swust oj978,979,980输出利用先序遍历创建的二叉树的中序遍历序列,后序遍历序列,层次遍历序

    输出利用先序遍历创建的二叉树的中序遍历序列,后序遍历序列,层次遍历序列 ***层次遍历思路: 1.初始化一个队列 2.把根节点指针入队 3.队列非空时:出队列取得一个结点指针,访问该节点,若该节点的左 ...

  7. 深度学习系列 -- 序列模型之循环序列模型(Recurrent Neural Networks)

    目录 1 为什么选择序列模型?(Why Sequence Models?) 2 数学符号(Notation) 3 循环神经网络(Recurrent Neural Network Model) 4 语言 ...

  8. metaProdigal:宏基因组序列中的基因和翻译起始位点预测

    文章目录 metaProdigal:宏基因组序列中的基因和翻译起始位点预测 热心肠日报 摘要 动机 Motivation 结果 Results 可用性 Availability 主要结果 表1. 大肠 ...

  9. bam获取序列_Jbrowse安装和序列、bam、vcf配置

    最近做了一个关于基因开发的项目,要求最终输出的文件可以在专门的基因浏览器上边显示,类似统计图的东西.废话不说上图(表示表达不出来0.0)! 先说下Jbrowse这个东西吧,一句话:一个简单的,便携式依 ...

最新文章

  1. 无法打开文件“python310_d.lib”
  2. CobarClient源码分析
  3. linux 查看内存用量_正确计算linux系统内存使用率
  4. linux mysql 挂马_linux服务器被挂马
  5. timeout 和 deadline
  6. 票据的生命周期与人的灵魂
  7. 2021年茶艺师(初级)试题及解析及茶艺师(初级)作业模拟考试
  8. ECMAScript相关知识介绍
  9. 题源报刊精品阅读-词汇1
  10. Latex初次使用可能用到的小细节
  11. 里氏代换原则(The Liskov Substitution Principle)
  12. C#网络编程(同步传输字符串)
  13. 官僚、傲慢、冷漠的腾讯开放平台
  14. CTA策略及常用代码
  15. 生死狙击为什么无法显示服务器,生死狙击外国服务器越南服注册
  16. Android-相机
  17. 财务自由,财务不自由,人生幸福
  18. 计算机组装和维护教学计划,2014计算机组装和维护教学计划
  19. 简述安卓三种近场通信技术特点和场景应用
  20. v48.05 鸿蒙内核源码分析(信号生产) | 年过半百 活力十足 | 百篇博客分析HarmonyOS源码

热门文章

  1. [数据结构 -- C语言] 堆实现Top-K问题,原来王者荣耀的排名是这样实现的,又涨知识了
  2. 安卓6.0以上机型微信登录时提示Activity did not call finish() prior to onResume() completing
  3. 基于51单片机的噪声测量仪仿真
  4. cad菜单栏快捷键_天正CAD界面“菜单栏”不见了怎么办?教你3招秒解决,实用神技巧...
  5. 网络性能测试仪该买什么品牌
  6. 企业安全—供应链风险管理
  7. python 知乎登录_python3模拟知乎登录
  8. 鸿蒙OS开发sdk,鸿蒙开发之基础环境搭建
  9. callee 和 caller
  10. 脱壳系列_1_UPX壳_详细版