我有一个包含序列 Headers 及其相应序列的fasta文件,如下所示:
>ID101_hg19 ATGGGTGTATCGTACCC >ID102_hg19 AGCTTTAGCGGGGTACA
我想将 Headers 行更改为序列旁边的另一个制表符分隔列 . 这是所需的输出:
关于如何完成这项任务的任何想法?
使用Sed,你可以这样做:
sed 'N;s/\n/\t/' file.txt
使用awk,您可以执行以下操作:
awk '{getline a; printf("%s\t%s", $0, a);}' file.txt
略微纠正了SMA的答案......
awk'{getline a; printf(“%s \ t%s \ n”,$ 0,a);}'file.txt
添加换行符
通常,FASTA文件中的每个 Headers 行后面都可以跟有多行数据,因此可能需要处理这种情况 . 如果目标是将所有连续数据行串在一起,那么以下内容将完成工作:
awk '/^>/ {if (prev) {print prev;}; prev=$0 "\t"; next} {prev=prev $0;} END {print prev}'
另一方面,如果 Headers 只附加到一行数据,那么假设$'...'语法可用,则使用的sed命令为:
sed $'/^>/ {N;s/\\n/\t/;}'
3 回答
使用Sed,你可以这样做:
使用awk,您可以执行以下操作:
略微纠正了SMA的答案......
awk'{getline a; printf(“%s \ t%s \ n”,$ 0,a);}'file.txt
添加换行符
通常,FASTA文件中的每个 Headers 行后面都可以跟有多行数据,因此可能需要处理这种情况 . 如果目标是将所有连续数据行串在一起,那么以下内容将完成工作:
另一方面,如果 Headers 只附加到一行数据,那么假设$'...'语法可用,则使用的sed命令为: