从 fasta 文件中删除多个序列

2024-01-15

我有一个字符序列的文本文件,由两行组成:标题和下一行中的序列本身。该文件的结构如下:

>header1
aaaaaaaaa
>header2
bbbbbbbbbbb
>header3
aaabbbaaaa
[...]
>headerN
aaabbaabaa

在另一个文件中,我有一个要删除的序列标题列表,如下所示:

>header1
>header5
>header12
[...]
>header145

我们的想法是从第一个文件中删除这些序列,因此所有这些标头+以下行。我使用 sed 执行此操作,如下所示,

while read line; do sed -i "/$line/,+1d" first_file.txt; done < second_file.txt

它可以工作,但需要很长时间,因为我使用 sed 多次加载整个文件,而且它很大。关于如何加快这个过程的任何想法?


您遇到的问题很容易回答,但在处理通用 fasta 文件时不会对您有帮助。 Fasta 文件有一个序列头,后面跟着一行或多行,可以将这些行连接起来表示序列。 Fasta 文件格式大致遵循以下规则:

  • 描述行 (defline) 或标题/标识符行,以 字符 (>),给出序列的名称和/或唯一标识符,并且还可以包含附加信息。
  • 描述行后面是标准单字母字符串中的实际序列本身。除有效字符之外的任何内容都将被忽略(包括空格、制表符、星号等)。
  • 该序列可以跨越多行。
  • 多序列 FASTA 格式可以通过在一个公共文件中连接几个单序列 FASTA 文件来获得,通常是在两个后续序列之间留一个空行。

大多数提出的方法在具有多行序列的多 fasta 上都会失败

以下内容将始终有效:

awk '(NR==FNR) { toRemove[$1]; next }
     /^>/ { p=1; for(h in toRemove) if ( h ~ $0) p=0 }
    p' headers.txt file.fasta

这与答案非常相似EdMorton https://stackoverflow.com/a/55636520/8344060 and 阿努巴胡瓦 https://stackoverflow.com/a/55636635/8344060但这里的区别在于文件headers.txt可以仅包含标头的一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 fasta 文件中删除多个序列 的相关文章

  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • Virtualenv 激活脚本不会在带有 set -euo 的 bash 脚本中运行

    我正在尝试创建一个激活 virtualenv 的 bash 脚本 pip 安装 requests txt 并继续 这将是我的 init sh 脚本 供以后使用 usr bin env bash set euo pipefail DIR sc
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • sed - 删除行尾的句点

    我正在尝试删除文本文件中行尾的句点 有些行末尾有句点 有些则没有 cat textfile sometexthere 123 22 no period moretext with period lt remove this period n
  • 使用 awk 如何组合两个文件中的数据并将第二个文件中的值替换到第一个文件中?

    有什么想法如何使用 awk 进行以下操作吗 两个输入文件 data txt和keys txt data txt 包含一些数据 A 1 B 2 A 3 keys txt 包含 键 值 对 本例中的 C 不是 data txt 的一部分 但 a
  • 使用 sed 将每行多个字段拆分为单独的行,保留行前缀

    上周五我遇到了一个问题 要将文本转换为另一种格式 在那台机器上 只有 gnu sed 可用 没有 awk 奇怪 我知道 而且我对 perl 一无所知 所以我正在寻找一个仅限 sed 的解决方案 文件内容是 a yao com sina co
  • Grep 搜索带有换行符的字符串

    如何使用 grep 输出下面给出的输入文件中出现的字符串 export to excel 具体来说 如何处理搜索字符串之间发生的换行符 grep 中是否有一个开关可以执行此操作或其他命令 输入文件 文件a txt 等等 导出到优秀 巴拉巴拉
  • sed 和 rev shell 命令转换为 Python 脚本 [重复]

    这个问题在这里已经有答案了 有一个shell命令 我正在尝试将逻辑转换为python 但我不知道该怎么办 我需要一些帮助 shell命令是这样的 cd tests src main test ls find name vrlp while
  • 从预提交挂钩中排除某些文件类型

    我想要一个预提交 git 钩子来检查 如果可能的话 自动删除 尾随空格 In 让 git 在提交之前自动删除尾随空格 https stackoverflow com questions 591923 make git automatical
  • 通过 ssh 运行 Bash 脚本

    我正在尝试编写一个 Bash 脚本 它将通过 SSH 连接到计算机并创建一个目录 长期目标有点复杂 但现在我从简单的开始 然而 虽然很简单 但我似乎不太明白 这是我的代码 bin bash ssh T email protected cdn
  • rsync --include 选项不排除其他文件

    尝试rsync某些扩展名 sh 的文件 但下面的bash脚本仍然传输所有文件 为什么 from home xxx rsync zvr include sh from root host home tmp 您需要添加 exclude all
  • 使用biopython写入fasta文件时出错

    我使用以下代码将 fasta 序列写入文件 from Bio import SeqIO sequences KKPPLLRR add code here output handle open example fasta w SeqIO wr
  • 如何隐藏显示终端命令输出

    当我运行这个命令时 sudo htpasswd b home reynolds htpasswd admin admin 我正在得到输出Updating password for user admin在终端中 但我不想显示该输出 所以我在谷
  • 如何在bash中进行二进制加法

    我正在尝试将两个 32 位二进制数相加 其中之一是常数 address range in binary 另一个是数组的元素 IPinEachSubnet val 我正在尝试按照说明进行操作here https www linuxquesti
  • 在bash中用其他文件过滤一个文件

    我有一个带有数字的文件 例如 cat file 31038467 32048169 33058564 34088662 35093964 31018168 31138061 31208369 31538163 31798862 和其他例如
  • 使用 sed 使用另一个文件的内容替换文件内的文本块

    我希望用另一个文件的内容替换标记之间的文本块 我遇到了这个解决方案 但它只适用于一行 sed n foo p a N bar ba s n REPLACEMENT n p file line 1 line 2 foo REPLACEMENT
  • 在 Bash 中拆分 csv 文件中的列

    我想从 csv 文件的第二列中提取值并将提取的值存储在新列中 我的数据集示例 page name post id page id A 86680728811 272953252761568 86680728811 A 86680728811
  • awk 每个文件后换行

    使用此脚本 每个字段都会根据当前文件的最长单词打印出来 但需要每个文件都有一个换行符 如何才能实现这一目标 awk BEGIN ORS n FNR NR a i 0 if length 0 gt length max max 0 l len
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么
  • AWK 错误:尝试在标量上下文中使用数组

    我正在学习AWK 这是一个简单的代码片段 我尝试将字符串拆分为数组并迭代它 BEGIN split a b c a for i 1 i lt length a i print a i 运行此代码时 我收到以下错误 awk awk txt 4

随机推荐

  • 检查 API 是否受到监控(挂钩?)

    我的应用程序使用一些 API 例如GetProcAddress and CreateProcess这有时会导致防病毒软件将其标记为恶意软件 即使它不是恶意软件 我想做的是检查特定的 API 是否正在被监视或挂钩 如果是 那么我不会调用该部分
  • 远程登录亚马逊(KDP)

    我想自动化 KDP Kindle 桌面出版 的摘要 由于他们似乎没有任何电子邮件通知系统 至少我不知道 我需要通过curl 登录 但这让我发疯 我在用着简单的htmldom http simplehtmldom sourceforge ne
  • 从 .fits 文件构造 pandas 数据框

    我有一个包含数据的 fits 文件 我想从这个特定文件构建一个 pandas 数据框 但我不知道该怎么做 data fits open datafile data info gives No Name Type Cards Dimensio
  • 使用 h5py 压缩现有文件

    我目前正在开展一个有关 HDF5 数据集压缩的项目 最近开始使用 h5py 我遵循了基本教程 并且能够在创建文件时打开 创建和压缩文件 然而 在压缩现有文件时我一直不成功 这是我工作的目的 我尝试使用 r 打开文件 然后压缩分块数据集 但文
  • 使用 Atmosphere 仅向一位客户端广播

    如何使用 Atmosphere Meteor 将消息从一个客户端广播到另一个客户端 我目前有一个基于 Meteor 教程的实现 Override public void doGet HttpServletRequest req HttpSe
  • 允许进程自动继续的消息框

    我希望显示一个消息框 并且程序继续运行 而不是等待我在此消息框中单击 确定 能做到吗 else Debug or messagebox the line that fails MessageBox Show Cols columns Len
  • Botframework v4:Stepcontext 选项

    您好 有人可以解释一下如何使用瀑布stepcontext Option吗 我一直在示例中看到它 但我不太明白如何使用它 以下是来自的示例 and 我计划重构我的整个代码 并且如果可能的话希望使用此选项 感谢 private static a
  • python threading.Timer立即启动而不是在指定时间

    我想每 3 秒执行一个函数 如果我调用一个不带参数的函数 代码将有效 如下所示 def mytempfunc print this is timer threading Timer 5 mytempfunc start 但是如果我调用一个带
  • 如何在无需用户干预的情况下启用 Chrome 扩展(以编程方式)

    我制作了一个 chrome 扩展 并希望将其安装作为使用 Windows 注册表的软件安装设置的一部分来完成 它安装了 chrome 扩展 但处于禁用状态 扩展程序列在 chrome extensions 中已安装的扩展程序列表中 如何使用
  • python跨不同文件的多处理

    试图更好地理解这一点 https pymotw com 2 multiprocessing basics html https pymotw com 2 multiprocessing basics html 我有 20 多个 大 日志 每
  • RabbitMQ“确认”模式下通道的行为

    我在理解 RabbitMQ 的确认时遇到了一些困难 我看到 RabbitMQ 的以下解释 Notes 如果代理在上述之前崩溃 则会丢失持久消息 消息被写入磁盘 在某些条件下 这会导致 经纪人的行为方式令人惊讶 例如 考虑这个 设想 客户端将
  • PHP 异或字符串

    我看到这段代码来自PPCG 上的回答 https codegolf stackexchange com a 53633 22867 echo BeeABBeeoBodBaBdOdPQBBgDQgDdp n n t8b n n t nb nb
  • 如何指定 Html.TextBox 帮助程序的属性,同时维护从 ViewData 检索值?

    我正在使用 Html TextBox 助手来创建文本框 我想在文本框上设置属性 据我所知 这是使用以下重载完成的 Html TextBox string name object value object htmlAttributes 但是
  • ASP.NET MVC 5 不渲染 jQuery UI CSS 包

    我正在尝试将 jQuery UI CSS 主题包包含在我的项目中 我的文件夹里有所有需要的文件 Content themes目录 并设置我的BundleConfig cs如下 public class BundleConfig For mo
  • Apache CXF Web 服务问题

    我有一个使用 Maven 的多模块项目 在其中一个模块上 我有几个使用 Apache CXF Framework 2 5 4 开发的 Web 服务 目前我有两个 问题 或疑问 首先 如果我调用应返回列表的 Web 服务之一的方法 如果列表为
  • “this”关键字似乎不起作用

    我试图理解如何this关键字在 JavaScript 中有效 我制作了这个脚本 function click this innerHTML changed 在此 HTML 中使用
  • 在 R 中将多个 XML 文件合并到一个数据框中

    我有许多 XML 文件 大约 100 000 个 它们都如下所示 每个文件大约有 100 个点节点 我只展示其中五个以供说明
  • 在 F# 元组中使用 CustomComparison 和 CustomEquality 实现自定义比较

    我来这里是为了询问一个特定的主题 我确实在网上找到了一些有关此问题的信息 我正在实现 Minimax 算法的 F 版本 我现在遇到的问题是我想比较我的树的叶子 下面的数据结构 搜索 VS 给我的错误 我得到了这样的结果 我曾经拥有的树类型
  • 将 bash 环境变量发送回 python Fabric

    我正在尝试将 bash 环境变量传递回我的结构函数 如下所示 from fabric api import env def env localhost All the environment variables relating to yo
  • 从 fasta 文件中删除多个序列

    我有一个字符序列的文本文件 由两行组成 标题和下一行中的序列本身 该文件的结构如下 gt header1 aaaaaaaaa gt header2 bbbbbbbbbbb gt header3 aaabbbaaaa gt headerN a