删除 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 文件中的换行符 的相关文章

  • 如何使用管道字符分隔符分隔字段

    我知道这个问题已经被问过 但我发现没有一个解决方案对我有用 我有一个程序 其输出如下 COUNT 293 1 lps 我对第二个字段感兴趣 但是这些尝试都没有成功 spawn 1 cut d f2 spawn 1 cut d f2 spaw
  • String.将 CRLF 替换为 '\n'

    我想知道是否有一种方法可以用 n 替换所有 CRLF 实例 有办法实现吗 你尝试过哪些方法不起作用 回车换行的意思回车 http en wikipedia org wiki Carriage return 换行 http en wikipe
  • awk 数组输出行数和平均值

    感谢以下 karakfaawk输出结果为数组 我正在尝试添加 2到数组并输出它 2基本上是唯一条目出现的次数 正如我正在学习的awk数组我不知道我的尝试是否接近 Input chr1 955542 955763 AGRN exon 1 1
  • 在Unix下,判断执行该程序的用户是否是root?

    我正在编写一个 rake 脚本 并希望检测 如果可能的话 使用 Ruby 而不是 bash 执行 rake 脚本的用户是否具有 root 权限 如果它不是 root 那么我想终止脚本 Use uid http www ruby doc or
  • 如何使用 netcat 发送文件并保持连接?

    我发出命令 netcat serveraddress myport lt MY FILE 问题是 一旦文件发送完毕 netcat 就会发送一条消息来关闭连接 发送该文件后 我需要从控制台写入消息 我记得对标准输入做了一些事情 是这样的吗 n
  • 在 C 中读取字符时打印

    我正在尝试编写一个简单的小代码片段来响应箭头键按下 我知道 up 由 A 表示 并且我有以下代码来检查该序列 while 1 input char fgetc stdin if input char EOF input char n bre
  • 如果文件没有行尾字符,则 wc -l 不计算文件的最后一个

    我需要计算 unix 文件的所有行数 该文件有 3 行 但是wc l仅给出 2 个计数 我知道它不计算最后一行 因为它没有行尾字符 任何人都可以告诉我如何计算这一行吗 grep c返回匹配行的数量 只需使用一个空字符串 作为您的匹配表达式
  • 基于 Unix ASCII 的命令行图表/绘图工具

    有没有好的命令行 UNIX 图表 绘图 绘图工具 我正在寻找能够在 ASCII 图表上绘制 xy 点的东西 澄清一下 我正在寻找能够以 ASCII 格式输出图形 如 ascii art 风格 的东西 这样我就可以在交互式 shell 会话中
  • 如何在没有 __hash__ 的情况下删除对象列表中的重复项

    我有一个自定义对象列表 我想从中删除重复项 通常 您可以通过定义两者来做到这一点 eq and hash 为你的对象 然后采取set的对象列表 我已经定义了 eq 但我想不出一个好的实现方法 hash 这样它对于相等的对象返回相同的值 更具
  • 如何绘制沿染色体图形的位置

    我想生成一个图 描绘我所研究的生物体的 14 条线性染色体 按比例绘制 并在每条染色体的指定位置上用彩色条表示 理想情况下 我想使用 R 因为这是我有经验的唯一编程语言 我探索了多种方法来做到这一点 例如使用 GenomeGraphs 但我
  • 如何使用 Bash 编写二进制文件?

    我的问题是我需要创建一个包含以下确切字节的文件 48 00 49 00 我不能使用C perl 其他脚本语言 目标是嵌入式设备 我使用 awk 尝试过 在桌面上它确实有效 awk BEGIN printf c c c c 48 00 49
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • AWK:递归下降 CSV 解析器

    响应一个BASH 中的递归下降 CSV 解析器 https codereview stackexchange com questions 11727 need some advice or help with translation and
  • 如何根据标签将单个 XML 文件拆分为多个

    我有一个带有标签的 XML 文件 我想像这样分割文件
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • AWK数组初始化

    是否可以使用常见的方法在AWK中初始化数组list syntax array val1 val2 val3 或者是否必须使用索引值 syntax array 0 val1 array 1 val2 array 2 val3 不 不 您可以这
  • 从实时 tcpdump 捕获中提取唯一的 IP

    我使用以下命令从实时 tcpdump 捕获中输出 IP sudo tcpdump nn q ip l awk print 3 fflush stdout gt gt ips txt 我得到以下输出 192 168 0 100 50771 1
  • 合并两个非常大的文件,忽略第一句

    我想将两个巨大的文件 每个几百兆字节 合并成一个文件 同时忽略第一行 我想使用 awk 因为我认为它应该是最优化的方式 我这样做的方式只忽略第二个文件的第一行 知道如何做工作或者是否有更快的方法 awk FNR NR FNR 1 next

随机推荐

  • 在 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 我想把它转