使用Unix命令行工具修改FASTA标头

时间:2013-03-01 10:39:55

标签: unix sed awk grep fasta

我再次被修改了文字。我想改变大文本文件,如:

>hg19_ct_UserTrack_3545_691 range=chr1:8121498-8121502 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATGG
>hg19_ct_UserTrack_3545_690 range=chr1:8121587-8121591 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATAG

>chr1:8121498-8121502 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATGG
>chr1:8121587-8121591 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATAG

我一直在使用sed '/^>/s/[^ ]* />/'删除第一部分(>hg19_ct_UserTrack_3545_690),但我真的不知道如何删除range=。我尝试了//grep的各种组合,但没有快乐。

由于

2 个答案:

答案 0 :(得分:1)

尝试各种shell命令=)

使用

awk -F'range=' '/^>/{print ">" $2}' file

 sed '/^>/s/.*range=(.*)/>\1/' file

答案 1 :(得分:1)

试试这一行:

sed 's/[^=>]*=//' file

测试你的输入:

kent$  echo ">hg19_ct_UserTrack_3545_691 range=chr1:8121498-8121502 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATGG
>hg19_ct_UserTrack_3545_690 range=chr1:8121587-8121591 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATAG"|sed 's/[^=>]*=//'
>chr1:8121498-8121502 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATGG
>chr1:8121587-8121591 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GATAG