在linux中将tab转换为fasta格式

在linux中将tab转换为fasta格式,linux,bash,awk,sed,bioinformatics,Linux,Bash,Awk,Sed,Bioinformatics,我有一个文本(infle table.txt)文件,其中两列由如下制表符分隔: TRINITY_DN5561_c0_g1_i1 len=391 path=[369:0-390] [-1, 369, -2] TTGGCTGGAATTCAAAAGCTTTCGATT TRINITY_DN15396_c0_g1_i1 len=235 path=[213:0-234] [-1, 213, -2] CGAGCTTGGGTAAATGGGATCAAACTAGATTA len=298 path=[1:0-297

我有一个文本(
infle table.txt
)文件,其中两列由如下制表符分隔:

TRINITY_DN5561_c0_g1_i1 len=391 path=[369:0-390] [-1, 369, -2]  TTGGCTGGAATTCAAAAGCTTTCGATT
TRINITY_DN15396_c0_g1_i1 len=235 path=[213:0-234] [-1, 213, -2] CGAGCTTGGGTAAATGGGATCAAACTAGATTA
len=298 path=[1:0-297] [-1, 1, -2]  GCTGTGATTTCTGCCATCGGAGAGGGCACAGACGGC
>TRINITY_DN5561_c0_g1_i1 len=391 path=[369:0-390] [-1, 369, -2] 
TTGGCTGGAATTCAAAAGCTTTCGATT
>TRINITY_DN15396_c0_g1_i1 len=235 path=[213:0-234] [-1, 213, -2]    
CGAGCTTGGGTAAATGGGATCAAACTAGATTA
>len=298 path=[1:0-297] [-1, 1, -2] 
GCTGTGATTTCTGCCATCGGAGAGGGCACAGACGGC
我想这样转换它们:

TRINITY_DN5561_c0_g1_i1 len=391 path=[369:0-390] [-1, 369, -2]  TTGGCTGGAATTCAAAAGCTTTCGATT
TRINITY_DN15396_c0_g1_i1 len=235 path=[213:0-234] [-1, 213, -2] CGAGCTTGGGTAAATGGGATCAAACTAGATTA
len=298 path=[1:0-297] [-1, 1, -2]  GCTGTGATTTCTGCCATCGGAGAGGGCACAGACGGC
>TRINITY_DN5561_c0_g1_i1 len=391 path=[369:0-390] [-1, 369, -2] 
TTGGCTGGAATTCAAAAGCTTTCGATT
>TRINITY_DN15396_c0_g1_i1 len=235 path=[213:0-234] [-1, 213, -2]    
CGAGCTTGGGTAAATGGGATCAAACTAGATTA
>len=298 path=[1:0-297] [-1, 1, -2] 
GCTGTGATTTCTGCCATCGGAGAGGGCACAGACGGC
我尝试过的命令无效:

awk '{printf ">%s\n%s\n",$1,$2}' infile-table.txt > outfile.fasta
您只是缺少“制表符分隔”位:

如果您愿意,可以将awk程序简化一点:将输出字段分隔符设置为换行符,然后:

awk -F'\t' -v OFS='\n' '{$1 = ">" $1} 1' infile-table.txt 
当您更改第一个字段时,awk将使用OFS重新创建$0,后面的“1”将打印记录

而且,由于您添加了标记:


使用python!创建一个名为“extract.py”的文件:


然后,在终端中运行:“python extract.py”。

太棒了!谢谢你的解释。为什么你认为它不起作用?@ghoti当然,我不知道如何在awk中选择
\t
功能。
lines = open("infile-table.txt").readlines()

for line in lines:
    cols = line.split("\t")
    print(">"+cols[0]+"\n"+cols[1])