2016-06-06 3 views
0

У меня есть Fasta файл + 20k интронных последовательностей со следующими заголовками можно описать как:Как я могу переместить шаблоны внутри строки с помощью sed?

>ENSG[0-9] | ENST[0-9] | start_position | end_position | name | 

Я хотел бы изменить положение ENSG [0-9] и ENST [0-9] и добавьте «НАСЦЕНТ» - ENST [0-9].

Я пробовал:

sed 's/\(ENSG\d*\) *| *\(ENST\d*\) */\2 | \1/' 

сначала сосредоточиться только на репозиционирование, но безрезультатно. Вероятно, это бегство, я смутился.

Любые подсказки или лучшее решение?

+2

Пожалуйста, покажите [mcve], чтобы мы могли играть с ним. – fedorqui

+0

Ваше регулярное выражение не принимает квадратные скобки в учетную запись. –

+0

@MichaelVehrs Я думаю, что описание заголовка уже подразумевается как своего рода шаблон, но это не совсем ясно из вопроса. –

ответ

0

Не 100% уверен, что если бы я получил свой формат ввода правильно, но если файл примера хотел бы это:

>ENSG1 | ENST1 | 1 | 3 | name1 | 
ATG 
>ENSG2 | ENST2 | 4 | 9 | name2 | 
ATGATG 
>ENSG12 | ENST12 | 10 | 17 | name12 | 
ATGATGATG 

вызова СЕПГ со следующими параметрами:

sed 's/\(ENSG[0-9]\+\).*\(ENST[0-9]\+\)\(.*\)/NASCENT_\2 | \1\3/g' 

даст вам

>NASCENT_ENST1 | ENSG1 | 1 | 3 | name1 | 
ATG 
>NASCENT_ENST2 | ENSG2 | 4 | 9 | name2 | 
ATGATG 
>NASCENT_ENST12 | ENSG12 | 10 | 17 | name12 | 
ATGATGATG 
Смежные вопросы