删除 FASTA 文件中的换行符

2023-12-20

我有一个 fasta 文件,其中序列用换行符分隔。我想删除换行符。这是我的文件的示例:

>accession1
ATGGCCCATG
GGATCCTAGC
>accession2
GATATCCATG
AAACGGCTTA

我想把它转换成这样:

>accession1
ATGGCCCATGGGATCCTAGC
>accession2
GATATCCATGAAACGGCTTA

我找到了一个潜在的解决方案在这个网站上 http://seqanswers.com/forums/showthread.php?t=27567,看起来像这样:

cat input.fasta | awk '{if (substr($0,1,1)==">"){if (p){print "\n";} print $0} else printf("%s",$0);p++;}END{print "\n"}' > joinedlineoutput.fasta

但是,这会在每个条目之间放置一个额外的换行符,因此文件如下所示:

>accession1
ATGGCCCATGGGATCCTAGC

>accession2
GATATCCATGAAACGGCTTA

我是 awk 菜鸟,但我尝试修改命令。我的猜测是if (p){print "\n";}是罪魁祸首...可能print "\n"正在添加两个换行符。我不知道如何添加一个换行符...这可能很简单,但就像我说的,我是一个菜鸟。这是我的(不成功的)解决方案:

awk '{if (substr($0,1,1)==">"){print "\n"$0} else printf("%s",$0);p++;}END{print "\n"}' input.fasta > joinedoutput.fasta

但是,这会在文件开头添加一个空行,因为它总是在打印第一个入藏号之前打印一个新行:

{empty line} 
>accession1
ATGGCCCATGGGATCCTAGC
>accession2
GATATCCATGAAACGGCTTA

有人有办法让我的文件格式正确吗?谢谢!


This awk程序:

% awk '!/^>/ { printf "%s", $0; n = "\n" } 
/^>/ { print n $0; n = "" }
END { printf "%s", n }
' input.fasta

将产生:

>accession1
ATGGCCCATGGGATCCTAGC
>accession2
GATATCCATGAAACGGCTTA

解释:

在不以 a 开头的行上>,打印没有换行符的行并存储换行符(在变量中n) 为以后。

在以 a 开头的行上>,打印存储的换行符(如果有)和行。重置n,以防这是最后一行。

如果需要,以换行符结尾。

Note:

默认情况下,变量被初始化为空字符串。无需显式“初始化”变量awk /questions/tagged/awk,这就是你要做的c /questions/tagged/c以及大多数其他传统语言。

--6.1.3.1 在程序中使用变量 http://www.gnu.org/software/gawk/manual/gawk.html#Using-Variables, GNU Awk 用户指南 http://www.gnu.org/software/gawk/manual/gawk.html

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

删除 FASTA 文件中的换行符 的相关文章

  • mongodb 正在运行吗?

    我已经在我的 Unix 服务器上安装了 Mongodb 和 PHP 驱动程序 我的问题是如何判断 Mongodb 是否正在运行 是否有一个简单的命令行查询来检查状态 如果我从外壳程序启动一次 如果我退出外壳程序 它会继续运行 情况似乎并非如
  • 打印文件的每第 n 列

    我有一个相当大的文件 有 255 个逗号分隔的列 我只需要打印出每第三列 我正在尝试这样的事情 awk for i 0 i lt NF i 3 print i file 但这似乎不是解决方案 因为它只打印到一长列 有人可以帮忙吗 谢谢 这是
  • 关闭 python 后让进程保持运行

    我希望在终止原始进程后继续运行进程 以下代码在终止原始进程后不会使其进程保持运行 args yes Popen args shell True stdout None stdin None stderror None 我已经尝试了我能想到的
  • 在unix、bash中合并csv文件

    我有一些 csv 文件 其格式如下 测试1 csv field port1 a1 0 2 a2 0 3 a3 0 6 测试2 csv field port2 b1 0 5 b2 0 6 b3 0 7 b4 0 1 b5 0 5 测试3 cs
  • BASH 中带有千位分隔符的数字格式

    我有一个号码12343423455 23353 我想用千位分隔符格式化数字 所以输出将是12 343 423 455 23353 printf 3f n 12345678 901 12 345 678 901
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 在 bash 中快速引用 stdout(即上一个命令的输出)?

    有没有办法快速 例如通过键盘快捷键等 引用写入到 stdout 的上一个命令的输出 例如 如果我这样做 which rails 它回来了 usr local bin rails然后我想在 textmate 中打开该文件 我可以像这样重新输入
  • Golang:从文本文件中替换字符串中的换行符时出现问题

    我一直在尝试读取一个文件 然后将读取的材料放入字符串中 然后字符串将按行分割成多个字符串 absPath filepath Abs Go input txt data err ioutil ReadFile absPath if err n
  • 使用 awk 从文件中提取特定行

    我有两个文件 一个文件是我的数据 另一个文件是我想从数据文件中提取的行号列表 我可以使用 awk 读取行文件 然后提取与行号匹配的行吗 例子 数据文件 This is the first line of my data This is th
  • 使用 Bash 按进程名称检查 Mac 进程是否正在运行

    如何使用 Bash 脚本中的进程名称检查 Mac OS X 上的进程是否正在运行 我正在尝试编写一个 Bash 脚本 如果进程已停止 它将重新启动进程 但如果进程仍在运行 则不执行任何操作 解析这个 ps aux grep v grep g
  • 将 cron 作业配置为在 Jenkins 上每 15 分钟运行一次

    如何在 Jenkins 上每 15 分钟运行一次 cron 作业 这是我尝试过的 在 Jenkins 上 我使用以下 cron 语法设置了每 15 分钟运行一次的作业 14 但该作业每小时执行一次 而不是 15 分钟 我收到有关 cron
  • 如何调用 awk 中的 split 函数来分割“\.”上的字符串?

    我该如何使用split用 分割的函数 例如 首先考虑分割 echo 03 26 12 awk split 0 a print a 3 a 2 a 1 产生以下输出 122603 但如果传入的字符串是 echo 03 26 12 awk sp
  • VMA和ELF段之间的关系

    我需要确定 ELF 可执行文件的可加载段的 VMA VMA 可以从以下位置打印 proc pid maps VMA 之间的关系如下所示maps可加载段对我来说也很清楚 每个段由一个或多个 VMA 组成 内核使用什么方法从 ELF 段形成 V
  • 在浏览器中创建 bash shell 的可行性如何?

    主要是 我是 Unix 机器上的 C C 程序员 但是我会因为基于浏览器的 shell 访问 Linux 机器而放弃 所以 问题是 这有多难 什么方法最适合在网页中构建真正的 shell 级访问 闪光 JavaScript 我知道这确实是所
  • 在 bash 中将 kB 和 GB 转换为 MB

    我使用 awk 和 sed 来获取表中的分区列表及其大小 我想用它来计算各个表的每日增量 这是我的输出 现在我正在努力将所有大小转换为 MB 匹配第二个字段中的数字并根据 MB 或 GB 字符串相乘的最佳 bash 方法是什么 201706
  • String.将 CRLF 替换为 '\n'

    我想知道是否有一种方法可以用 n 替换所有 CRLF 实例 有办法实现吗 你尝试过哪些方法不起作用 回车换行的意思回车 http en wikipedia org wiki Carriage return 换行 http en wikipe
  • 新行命令 (\n) 不适用于 Firebase Firestore 数据库字符串

    我正在使用 Swift 制作一个应用程序 并且正在使用 Firebase Firestore Firestore 是一个数据库 其中有一些我放入的字符串UILabel 对于我的一些字符串 我使用新行命令 或 n 所以我的一些字符串看起来像这
  • shell 脚本中的 Telnet

    如何在 shell 脚本中运行 telnet 并在远程服务器上执行命令 出于安全原因 我没有在我的Solaris 机器上安装expect 我也没有perlnet telnet模块已安装 那么如果不使用expect和perl我该怎么办呢 我尝
  • 如何在 ruby​​ Kernel.exec 之后运行代码

    我有以下红宝石外壳 usr bin env ruby stdin each line do line pid fork exec line puts after exec gt Process pid Process wait pid en
  • linux + ksh + 向下舍入或向上舍入 - 浮点数

    在我的 ksh 脚本中 我只需要计算整数 有时我会得到浮点数 例如 3 49 或 4 8 等 所以我需要根据以下规则将浮点数转换为整数 示例 3 49 will be 3 2 9 will be 3 4 1 will be 4 23 51

随机推荐

  • 在 PHP 中访问大数组

    我一直在对 PHP 中访问大型数据数组的不同方法进行一些分析 用例非常简单 我们的一些工具将数据作为关联数组输出到 PHP 文件中 并且这些文件被应用程序视为静态数据 我们制作游戏 因此数据文件的一些示例将包括目录中的项目 用户必须完成的任
  • FDPhysFBDriverLink 在 VendorLib 路径中表现异常

    我正在使用 FireDAC 和 Firebird 3 0 启动我的第一个应用程序 但遇到了这个奇怪的问题FDPhysFBDriverLink 设置它需要您设置VendorHome and VendorLib使驱动程序链接正常工作 当我设置它
  • 从“Y-m-d H:i:s”格式的日期数组中获取最新日期

    我有日期数组Y m d H i s格式如下 array 5 0 gt string 19 2012 06 11 08 30 49 1 gt string 19 2012 06 07 08 03 54 2 gt string 19 2012
  • 解释一下awakeFromNib和initwithFrame:用法

    我正在 iTunes 上浏览斯坦福 iPhone 开发讲座 并在第 5 讲中遇到了这一点 我们正在努力确保在设备旋转时进行重绘 我有两个与此相关的问题 What is awakeFromNib 其余代码中没有调用此方法 是如何触发的呢 里面
  • 需要 zip 存档条目中的 io.ReaderAt(该条目是嵌套的 .xlsx 文件)

    让我以这样的事实作为这个问题的序言 我已经知道 Excel 2007 文件本身就是一个 zip 文件 已重命名为 xlsx 好吧 既然你知道了 事情就是这样 我正在尝试从内存中的 zip 存档中提取 Excel 2007 文件 我不能 更确
  • 如何创建UNDO按钮,flutter firebase

    在我的项目中 我有一个删除按钮 可以从 firebase firestore 中删除一些数据 我想要做的是显示一个小吃栏undo换句话说 当按下它时 该过程将被取消 并且不会删除任何数据 我还没有找到解决办法 是否可以 您可以使用Timer
  • 解决“类型参数 T 隐藏类型 T”警告

    我在 eclipse 最新版本 中收到以下代码的警告 public interface A
  • 指定的参数超出了有效值的范围参数名称:站点[重复]

    这个问题在这里已经有答案了 我正在使用 Visual Studio 2015 和 Windows 10 hp 笔记本电脑 创建 asp net mvc 应用程序后 构建并运行它 我收到此错误 指定的参数超出了有效值的范围参数名称 site描
  • 捕获一般异常

    根据这篇 MSDN 文章 http msdn microsoft com en us library ms182137 28v vs 80 29 aspx 您不应该捕获一般异常 我确信有一个 stackoverflow 问题可以解决这个问题
  • 从sql导出到excel

    我使用 sqlplus 命令行界面运行查询 该查询将获取大约 3000 万条记录 我需要将结果导出为 csv 或 xls 格式 谁能告诉我这是否可能 任何帮助深表感谢 提前致谢 Try spool myresults csv在 select
  • 无法使用 ContentResolver.openInputStream(Uri) 读取文件

    对于手机内存中存在的文件 路径为 system data recf pic jpg 使用openInputStream 方法构造inputStream会抛出FileNotFoundException 这就是我正在做的事情 ContentRe
  • 如何急切加载与 current_user 的关联?

    我在 Rails 应用程序中使用 Devise 进行身份验证 我想在我的一些控制器中加载一些与用户相关的模型 像这样的东西 class TeamsController lt ApplicationController def show te
  • 无法在 Firefox 中打开 Blob 文件

    我想在 Firefox 上打开从服务器发送的文件 实际上它是在 IE 上运行的 以下是我将如何进行 openFile path fileName this creditPoliciesService openFile path toProm
  • Rails 新建与创建

    为什么需要在 RESTful 控制器中定义一个新方法 并在其后面添加一个 create 方法 谷歌搜索没有为我提供我正在寻找的答案 我理解其中的区别 但需要知道为什么要这样使用它们 Rails 的 REST 实现new and create
  • 将多个域名映射到 Rails 应用程序中的不同资源

    我的 Rails 应用程序允许用户管理度假屋 每个属性都有自己的属性 我的应用程序中的 网站 主页 用户可以调整内容 效果很好 到目前为止很高兴 典型的 Rails 资源方法 因此特定属性的 URL 类似于特定属性的 主页 localhos
  • 具体来说,编译器会做什么来积极优化生成的字节码?

    我一直在阅读各种编译器的功能 并且遇到了许多编译器报告执行的术语 积极优化 例如 LLVM 引用了以下编译时优化功能 内存 指针特定 循环变换 数据流 算术 消除死代码 Inlining 这具体是什么意思呢 假设您有以下代码片段 如何优化生
  • Indexeddb:使用通配符搜索

    我想知道是否可以使用通配符对 indexeddb 对象存储执行搜索 例如 查找键以 555 开头的所有对象会很方便 使用复合键或键片段可以开箱即用地实现这一点 键在 IndexedDB 中的工作方式是生成一个 keyRange 对象并将其传
  • 当任何线程完成任务时终止多个线程

    我对 python 和线程都很陌生 我编写了 python 代码 它充当网络爬虫并在网站中搜索特定关键字 我的问题是 如何使用线程同时运行类的三个不同实例 当其中一个实例找到关键字时 所有三个实例都必须关闭并停止抓取网络 这是一些代码 cl
  • 为什么我的 Visual Studio Win32 项目需要安装 .NET 3.5 SP1?

    使用 Visual Studio 2008 我创建了一个 C Win32 http en wikipedia org wiki Windows API项目 为了发布该程序 我在同一解决方案中创建了一个 Visual Studio 安装项目
  • 删除 FASTA 文件中的换行符

    我有一个 fasta 文件 其中序列用换行符分隔 我想删除换行符 这是我的文件的示例 gt accession1 ATGGCCCATG GGATCCTAGC gt accession2 GATATCCATG AAACGGCTTA 我想把它转