首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Python中解析FASTA文件时出错

在Python中解析FASTA文件时出错
EN

Stack Overflow用户
提问于 2020-06-23 04:20:06
回答 1查看 164关注 0票数 3
代码语言:javascript
运行
AI代码解释
复制
dict = {}
tag = ""
with open('/storage/emulated/0/Download/sequence.fasta.txt','r') as sequence:
    seq = sequence.readlines()
    for line in seq:
        if line.startswith(">"):
            tag = line.replace("\n", "")
        else:
            seq = "".join(seq[1:])
            dict[tag] = seq.replace("\n", "")   
    print(dict)

那些不熟悉FASTA文件的人的背景。此格式包含一个或多个DNA、RNA或蛋白质序列,其中带有以">“开头的序列的一行描述标记,然后以以下行(Ex)中的序列开始。对于DNA来说,A、T、G和C会重复很多次。它还附带了许多不必要的换行符。到目前为止,当我每个文件只有一个序列时,这段代码可以工作,但是如果存在多个序列,它似乎忽略了if条件。例如,每当它注意到">“时,它都应该将每个新标记:序列对添加到字典中,但它只运行一次,并将第一个描述作为字典中的键,并加入文件的其余部分,而不考虑">”字符,并将其用作值。在第一次出现之后,如何让这个循环注意到一个新的">“?

我有意识地离开了生物工程模块。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-23 04:31:06

更新:下面的代码现在适用于多行序列。

下面的代码对我来说很好:

代码语言:javascript
运行
AI代码解释
复制
import re
from collections import defaultdict

sequences = defaultdict(str)

with open('fasta.txt') as f:
    lines = f.readlines()

current_tag = None
for line in lines:
    m = re.match('^>(.+)', line)

    if m:
        current_tag = m.group(1)
    else:
        sequences[current_tag] += line.strip()

for k, v in sequences.items():
    print(f"{k}: {v}")

它使用了许多您可能不熟悉的特性,例如正则表达式(在生物信息学中可能非常有用)和f-字符串格式。如果有什么事情让你困惑,那就去问吧。我要补充的一点是,您不希望将变量定义为dict,因为这将破坏Python在启动时定义的内容。我选择了sequences,它不这样做,而且信息更丰富。

作为参考,这是我在这个实例中使用的示例FASTA文件fasta.txt的内容:

代码语言:javascript
运行
AI代码解释
复制
>seq0
FQTWEEFSRAAEKLYLADPMKVRVVLKYRHVDGNLCIKVTDDLVCLVYRTDQAQDVKKIEKF
>seq1
KYRTWEEFTRAAEKLYQADPMKVRVVLKYRHCDGNLCIKVTDDVVCLLYRTDQAQDVKKIEKFHSQLMRLME LKVTDNKECLKFKTDQAQEAKKMEKLNNIFFTLM
>seq2
EEYQTWEEFARAAEKLYLTDPMKVRVVLKYRHCDGNLCMKVTDDAVCLQYKTDQAQDVKKVEKLHGK
>seq3
MYQVWEEFSRAVEKLYLTDPMKVRVVLKYRHCDGNLCIKVTDNSVCLQYKTDQAQDVK
>seq4
EEFSRAVEKLYLTDPMKVRVVLKYRHCDGNLCIKVTDNSVVSYEMRLFGVQKDNFALEHSLL
>seq5
SWEEFAKAAEVLYLEDPMKCRMCTKYRHVDHKLVVKLTDNHTVLKYVTDMAQDVKKIEKLTTLLMR
>seq6
FTNWEEFAKAAERLHSANPEKCRFVTKYNHTKGELVLKLTDDVVCLQYSTNQLQDVKKLEKLSSTLLRSI
>seq7
SWEEFVERSVQLFRGDPNATRYVMKYRHCEGKLVLKVTDDRECLKFKTDQAQDAKKMEKLNNIFF
>seq8
SWDEFVDRSVQLFRADPESTRYVMKYRHCDGKLVLKVTDNKECLKFKTDQAQEAKKMEKLNNIFFTLM
>seq9
KNWEDFEIAAENMYMANPQNCRYTMKYVHSKGHILLKMSDNVKCVQYRAENMPDLKK
>seq10
FDSWDEFVSKSVELFRNHPDTTRYVVKYRHCEGKLVLKVTDNHECLKFKTDQAQDAKKMEK
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62534586

复制
相关文章
部署一个Sinatra应用程序到Heroku
该文章介绍了如何部署一个Sinatra应用程序到Heroku。首先,需要设置一个Gemfile和一个config.ru文件,使用Git将应用程序部署到Heroku。然后,需要安装Heroku gem,生成SSH密钥并将其添加到Heroku。最后,通过运行`heroku keys:add`命令将SSH密钥添加到Heroku。
Seven塞文
2018/01/05
5.2K0
部署一个Sinatra应用程序到Heroku
该文章介绍了如何部署一个基于Sinatra的应用程序到Heroku。首先介绍了Heroku是什么,然后描述了如何利用Sinatra和Heroku创建应用程序,接着给出了部署应用程序的步骤,最后说明了如何通过SSH密钥在Heroku上部署应用程序。
Techeek
2018/01/05
2.7K0
将Spring Boot应用程序部署到Bluemix
在之前的博客文章中,我介绍了如何通过Swagger在Spring Boot应用程序中记录REST API。下面我将介绍如何将这些应用程序作为Docker容器部署到IBM Bluemix。作为例子,我再次使用Spring REST示例。在之前的博客文章中,我介绍了如何通过Swagger在Spring Boot应用程序中记录REST API。下面我将介绍如何将这些应用程序作为Docker容器部署到IBM Bluemix。作为例子,我再次使用Spring REST示例。
FLYMOTH
2018/01/15
2.5K0
将Spring Boot应用程序部署到Bluemix
将Spring Boot应用程序部署到Bluemix
在之前的博客文章中,我介绍了如何通过Swagger在Spring Boot应用程序中记录REST API。下面我将介绍如何将这些应用程序作为Docker容器部署到IBM Bluemix。我会再次使用S
johnniang
2018/01/08
2.5K0
将Spring Boot应用程序部署到Bluemix
将Spring Boot应用程序部署到Bluemix
在之前的博客文章中,我介绍了如何通过Swagger在Spring Boot应用程序中记录REST API。下面我将介绍如何将这些应用程序作为Docker容器部署到IBM Bluemix。我将再次使用S
电工昌威
2018/01/05
2.4K0
将Spring Boot应用程序部署到Bluemix
Spring Boot 项目部署到heroku爬坑
​ 背景:最近小组进行一个环境比较恶劣的项目,由于没有真实的测试环境,决定上云,最终选择国外的heroku,折腾半天,其中有一些坑在这里记录下来,方便网友及个人。
吐吐吐吐吐葡萄皮
2019/04/04
3.2K0
Spring Boot 项目部署到heroku爬坑
在Heroku中部署一个Sinatra应用程序
在Heroku中部署一个Sinatra应用程序。首先需要在Heroku上注册一个账号,然后创建一个应用程序。接着通过在Gemfile中添加必要的Ruby gems来配置你的应用程序。最后,使用Git将你的应用程序推送到Heroku,并在Heroku上启动该应用程序。
Techeek
2018/01/05
2.6K0
在Heroku中部署一个Sinatra应用程序
将Java EE应用程序部署到Docker Swarm集群
Techeek
2018/01/04
1.9K0
将Java EE应用程序部署到Docker Swarm集群
将基于MicroProfile的Java应用程序部署到Bluemix
本文介绍了如何将基于MicroProfile的Java应用程序部署到Bluemix上。首先介绍了如何通过Microservice Builder创建新的基于Java的Microservices,然后介绍了如何将它们部署到Bluemix上的Kubernetes集群。最后,提供了部署Java应用程序到Bluemix的详细步骤和示例代码。
亦非demo
2018/01/05
1.8K0
将基于MicroProfile的Java应用程序部署到Bluemix
将基于MicroProfile的Java应用程序部署到Bluemix
本文介绍如何将基于MicroProfile的Java应用程序部署到Bluemix上。首先介绍了MicroProfile的基本概念,然后描述了如何利用Bluemix的Microservice Builder构建新的微服务。接着,本文详细说明了如何将微服务部署到Kubernetes,并提供了示例代码。最后,本文提供了将服务部署到Kubernetes的步骤和示例代码。
Techeek
2018/01/05
1.3K0
将基于MicroProfile的Java应用程序部署到Bluemix
将Java EE应用程序部署到Docker Swarm集群
Docker Swarm 为Docker提供本地集群。Docker Swarm 0.2.0版本的集群 提供了Docker Swarm 的基本介绍,以及如何创建一个简单的具有三节点的集群。作为复习,在这里展示一下Docker Swarm的关键组件:
李志伟
2019/12/17
1.3K0
将Java EE应用程序部署到Docker Swarm集群
将Java EE应用程序部署到Docker Swarm集群
Docker Swarm为Docker提供本地集群。 使用Docker Swarm 0.2.0的集群一文提供了对Docker Swarm的基本介绍,以及如何创建一个简单的三节点集群。作为一个回顾,Docker Swarm的关键组件如下所示:
lemoon1993
2018/01/10
2.5K0
heroku快速部署node应用
试了一下heroku,简直碉堡了,下面介绍如何简单几步实现弄得应用的部署访问: 1、首先https://dashboard.heroku.com/进行账号注册 2、github上push一个最新的no
用户1141560
2017/12/26
1.3K0
heroku快速部署node应用
Rails 部署总结
学 Ruby 和 Rails 有一段时间了,后面准备也准备把站点换了。不过开始开发之前,我先把 Rails 部署的坑先踩了。之所以部署先行是因为之前 Django 部署把我坑惨了,导致之前写的 Django 代码还是 Github 静静地躺着。 忽悠妹子给我在腾讯云买了服务器后,马不停蹄的就开始了填坑之旅。这里我选择的系统是 Ubuntu 16.04 ,所以下面的命令以此为准。
BigNerdCoding
2018/03/20
7K4
Rails 部署总结
将基于MicroProfile的应用程序部署到IBM Cloud Private
本文介绍了如何将基于MicroProfile的应用程序部署到IBM Cloud Private上,并提供了相关步骤和命令。同时,还讨论了在部署过程中可能遇到的问题和解决方法。
Techeek
2018/01/08
1.6K0
将基于MicroProfile的应用程序部署到IBM Cloud Private
在 Heroku 上部署 Django 应用
Heroku是一个很棒的平台,它有很多的控件,并且搭建环境相对来说也比较容易。本指南中,我将一步一步指导你在Heroku平台上部署一个简单地Django应用。
星哥玩云
2022/07/03
1.6K0
将基于MicroProfile的应用程序部署到IBM Cloud Private上
本文介绍如何将基于MicroProfile的应用程序部署到IBM Cloud Private上。首先介绍了IBM Cloud Private和Kubernetes的基本概念,然后详细描述了将示例应用程序部署到IBM Cloud Private的具体步骤。包括配置Docker、部署示例应用程序、配置Kubernetes和部署应用程序的详细步骤。最后,介绍了如何通过命令行和Web界面访问示例应用程序。","author":"Sammy Xu","source":"https://www.ibm.com/cloud/blog/2022/09/02/deploying-microprofile-applications-on-ibm-cloud-private/
用户9527
2018/01/08
2.7K0
将基于MicroProfile的应用程序部署到IBM Cloud Private上
使用Helm将应用程序部署到IBM Cloud上的Kubernetes
本文介绍了如何使用Helm将应用程序部署到IBM Cloud上的Kubernetes,包括详细的步骤和示例。
Techeek
2018/01/08
1.7K0
使用Helm将应用程序部署到IBM Cloud上的Kubernetes
Helm是Kubernetes的包管理器。借助Helm,您可以非常方便地将应用程序,工具和数据库(如MongoDB,PostgreSQL,WordPress和Apache Spark)部署到您自己的Kubernetes集群中。以下简要介绍如何将Helm用于IBM Cloud Container服务。
johnniang
2018/01/15
2K0
通过 CircleCi 2.1 和 TravisCI 将应用程序部署到 Elastic Beanstalk
在互联网上搜索了一种通过circleCI将我的应用程序部署到Elastic beanstalk的直接方法之后,我想我可以帮助其他试图通过这篇文章做同样的事情的人。在github上签出ryansimms,因为这种方法是基于他在CircleCI 2.0上的方法,这是我让它工作的起点。
腾龙
2022/06/02
1.2K0

相似问题

无法将rails应用程序部署到heroku

40

无法将rails应用程序部署到heroku

24

无法将Rails 4.1.0应用程序部署到Heroku

13

由于scss,无法将Rails应用程序部署到Heroku

30

无法将rails测试应用部署到Heroku

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文