我有一个FASTA文件,其中包含一堆序列,格式如下:

BMRat|XM_008846946.1

ATGAAGAACATCACAGAAGCCACCACCTTCATTCTCAAGGGACTCACAGACAATGTGGAACTACAGGTCA

TCCTCTTTTTTCTCTTTCTAGCGATTTATCTCTTCACTCTCATAGGAAATTTAGGACTTATTATTTTAGT

TATTGGGGATTCAAAACTCCACAACCCTATGTACTGTTTTCTGAGTGTATTGTCTTCTGTAGATGCCTGC

TATTCCTCAGACATCACCCCGAATATGTTAGTAGGCTTCCTGTCAAAAAACAAAGGCATTTCTCTCCATG

GATGTGCAACACAGTTGTTTCTCGCTGTTACTTTTGGAACCACAGAATGCTTTCTGTTGGCGGCAATGGC

TTATGACCGCTATGTAGCCATCCATGACCCACTTCTCTATGCAGTGAGCATGTCACCAAGGATCTATGTG

CCGCTCATCATTGCTTCCTATGCTGGTGGAATTCTGCATGCGATTATCCACACCGTGGCCACCTTCAGCC

TGTCCTTCTGTGGATCTAATGAAATCAGTCATATATTCTGTGACATCCCTCCTCTGCTGGCTATTTCTTG

TTCTGACACTTACATCAATGAGCTCCTGTTGTTCTTCTTTGTGAGCTCCATAGAAATAGTCACTATCCTC

ATCATCCTGGTCTCTTATGGTTTCATCCTTATGGCCATTCTGAAGATGAATTCAGCTGAAGGGAGGAGAA

AAGTCTTCTCTGCATGTGGGTCTCACCTAACTGGAGTGTCCATTTTCTATGGGACAAGCCTTTTCATGTA

TGTGAGACCAAGCTCCAACTATTCCTTGGCACATGACATGGTAGTGTCGACATTTTATACCATTGTGATT

CCCATGCTGAACCCTGTCATCTACAGTCTGAGGAACAAAGATGTGAAAGAGGCAATGAGAAGATTTTTGA

AGAAAAATTTTCAGAAACTTTAA

使用biopython http://biopython.org/wiki/Seq实现的代码使我能够找到FASTA文件中每个序列的最长氨基酸序列,该序列以蛋氨酸开头,以终止密码子结尾。

该功能是find_largest_polypeptide_in_DNA。基本上,它使用3个不同的前向阅读框将DNA序列翻译为氨基酸序列,并在变量allPossibilities中保存以M(特定氨基酸)开头并以终止密码子结尾的片段。然后,它比较可能性的长度并选择最长的可能性,返回该片段的蛋白质序列。

def find_largest_polypeptide_in_DNA(seq, translationTable=1):

allPossibilities = []

for frame in range(3):

trans = str(seq[frame:].translate(translationTable))

framePossibilitiesF = [i[i.find("M"):] for i in trans.split("*") if"M" in i]

allPossibilities += framePossibilitiesF

allPossibilitiesLengths = [len(i) for i in allPossibilities]

if len(allPossibilitiesLengths) == 0:

raise Exception("no candidate ORFs")

proteinAsString = allPossibilities[allPossibilitiesLengths.index(max(allPossibilitiesLengths))]

return Seq(proteinAsString, alphabet=ProteinAlphabet)

它可以完美工作,但是现在我想获得与该功能返回的蛋白质序列相对应的DNA序列。我需要在函数中添加一些行以获取两个序列,但是我真的不知道如何。

我不知道是否有可能跟踪i.find(" M")的每个蛋氨酸的位置,然后使用该位置在核苷酸序列中进行跟踪。

谢谢。

您想修改该函数,以便它返回DNA序列,而不是最长的段的氨基酸序列,该段以Met开始并以STOP结束?

您是否有理由要忽略其他三个阅读框? 您知道您的基因从哪条链转录?

您的问题表明所需的序列必须包含终止密码子。 您提供的代码在FASTA文件中每个序列的末尾都包含该段,该段以M开头且未终止。 您是否要在FASTA序列的末尾包含或排除以Met开头但未终止的片段?

是的,我也应该以相反的方式阅读它,谢谢。 @贝内特·布朗

我想要最长的段,以M开头,以终止密码子@BennettBrown结尾

相关脚本github.com/chris-rands/CR_bioinformatics_utilities/blob/master/

我认为遵循类似的原则编写新函数将是最容易的。 您的想法"跟踪i.find('M')的每个蛋氨酸的位置"基本上是以下操作。 用您开始的代码执行此操作的困难在于,序列被split('*')切碎,因此DNA的起始位置是阅读框偏移量加上序列前面的所有密码子的总和。 关心。 根据您的说明,我添加了一个封闭循环以在向前和向后的方向上进行迭代。

def find_largest_polypeptide_in_DNA(seq, translationTable=1):

# Set the record to start with, then try to beat it

longest_DNA = ''

longest_amino_acid_sequence = 0

for direction in [-1, 1]:

forward_DNA = seq[::direction]

# Check all three reading frames in this direction.

for frame in range(3):

trans = str(forward_DNA[frame:].translate(translationTable))

cut_codons = 0

while 'M' in trans:

codons_before_Met = trans.find('M')

cut_codons += codons_before_Met

trans = trans[codons_before_Met:]

if '*' in trans:

length = trans.find('*') + 1

if length > longest_amino_acid_sequence:

longest_amino_acid_sequence = length

first_bp = frame + 3*cut_codons

last_bp = frame + 3*cut_codons + 3*(length)

longest_DNA = str(forward_DNA[first_bp:last_bp+1])

trans = trans[length:]

else:

# Ignore sequence M... if ORF extends beyond FASTA?

trans = ''

return longest_DNA

怎么使用biopython_关于python:使用Biopython的翻译功能后,如何跟踪核苷酸序列中起始密码子(ATG)的位置?...相关推荐

  1. 文件不能断点 webstorm_详解python使用金山词霸的翻译功能(调试工具断点的使用)...

    这篇文章主要介绍了详解python使用金山词霸的翻译功能(调试工具断点的使用),本文给大家介绍得非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 今天试着用python获取金山 ...

  2. 详解python使用金山词霸的翻译功能(调试工具断点的使用)

    在线翻译实现代码如下 import requests import json import hashlibclass ifanyi:def __init__(self,q):self.headers ...

  3. python微信公众号翻译功能怎么用_使用python一步一步搭建微信公众平台(二)----搭建一个中英互译的翻译工具...

    距离上次写使用python一步一步搭建微信公众平台(一)已经有几个月了,当中自已也搭建了一个中英文互译的小应用,可是由于英文翻中文好弄,中文翻译成英文一直有问题,知道是编码的问题,但是一直搞不定,于是 ...

  4. python微信公众号翻译功能_10分钟教你用Python实现微信翻译机器人

    相信大家在日常学习或者是阅读英文文章的过程中,难免会出现几个不认识的单词,或者想快速翻译某段英文的意思. 今天,利用Python爬虫等知识,教大家打造一个微信下的翻译小助手.好吧,开始干活. 先来看看 ...

  5. python微信公众号翻译功能_使用python在SAE上搭建一个微信应用,使用有道翻译的api进行在线翻译...

    1. 准备,先在使用python一步一步搭建微信公众平台(一)中基本实现自动回复的功能后,接着在有道词典上申请一个key,http://fanyi.youdao.com/openapi?path=da ...

  6. 【小沐学Python】Python实现在线英语翻译功能

    文章目录 1.简介 2.在线翻译接口 2.1 Google Translate API 2.2 Microsoft Translator API 2.2.1 开发简介 2.2.2 开发费用 2.2.3 ...

  7. python微信公众号翻译功能怎么用_Watson使用指南(七)在微信公众号中实现识图作诗功能...

    本文章主要是写一下这个项目开发的过程及之间遇到的问题,作为记录,也希望以此为契机认识志同道合的朋友,一起学习交流. 目录: 概述 环境准备及相关账号申请 部署Python Flask应用到Bluemi ...

  8. python微信公众号翻译功能_自学Python笔记:给微信公众号搭建“成绩查询”功能...

    原标题:自学Python笔记:给微信公众号搭建"成绩查询"功能 期末考试 临近年末,全国各地都在上演一场大戏<期末考试>,考完试无论什么样的结果总想尽快看到自己一个学期 ...

  9. python爬百度翻译-Python爬虫实现百度翻译功能过程详解

    首先,需要简单的了解一下爬虫,尽可能简单快速的上手,其次,需要了解的是百度的API的接口,搞定这个之后,最后,按照官方给出的demo,然后写自己的一个小程序 打开浏览器 F12 打开百度翻译网页源代码 ...

最新文章

  1. basler相机参数简要中文说明_附下载| OpenCV最新中文版官方教程
  2. 宏基因组序列物种分类之kraken 1/2和Bracken的使用
  3. mysql数据库插入图片_向MySql数据库插入与读取图片文件
  4. python怎么安装第三方库-怎样安装Python的第三方库
  5. 【.NET Core项目实战-统一认证平台】第十章 授权篇-客户端授权
  6. groovy java_在java中使用groovy怎么搞
  7. BZOJ 2660 (BJOI 2012) 最多的方案
  8. Visual Studio 常用宏
  9. 如何电脑上怎样查看微信聊天记录
  10. P物质肽[DArg1, DTrp5, 7, 9, Leu11]
  11. 介绍几款在线脑图和流程图制作工具
  12. HTML文本域添加滑杆,Objective-C 自定义UISlider滑杆 分段样式
  13. java调用高德地图API
  14. css颜色和长度简写
  15. IOS 开发 手势使用
  16. Internet Explorer 7+ ,微软的vista IE 浏览器
  17. CTF.show:新春红包题wp
  18. 微信小程序-提交表单成功弹窗提示
  19. bootstrap网格系统
  20. 华软java综合实验二_华软-企业级javaII(第一次作业)

热门文章

  1. 杰理强制升级工具4.0使用和原理解析
  2. Smarty安装教程
  3. ArcGIS教程:根据经验半变异函数拟合模型
  4. 适合计算机ppt的音乐,好不好才能让ppt中的音乐无论的在哪台电脑上都能播放?...
  5. ws2812怎么调亮度_笔记本调节亮度无效!!!!!
  6. 欧盟通用数据保护条例GDPR.docx数据摘要 导读:GDPR通用数据保护条例中文版由中国政法大学互联网金融法律研究院组织翻译, 新法案由11章共99条组成。 GDPR的通过意味着欧盟对个人信息保
  7. 华为云提出云数据灾备解决方案,该方案在数据安全性、稳定性方面具有绝对的可靠性
  8. 信道容量的数值解法(非对称信道)
  9. 潮汕地区1-潮州观感
  10. Glove论文详解及代码分析